使用 EffectCustomTool 为 Xna 创建自定义 Shader 特效(二)

变量映射

      EffectCustomTool 1.2支持基本的HLSL数据类型到Xna数据类型的自动映射,包括:

HLSL Xna
floatNxN float[]
float4x4 Matrix
string string
int int
bool bool
texture Texture2D
texture2D Texture2D
texture3D Texture3D
textureCube TextureCube
float2 Vector2
float3 Vector3
float4 Vector4

      不支持生成Sampler,struct及technique的C#属性。

控制属性访问级别

      生成的C#属性的访问级别有两种:如果HLSL中变量的首字母为大写,则生成public属性;如果为小写,则生成internal属性。下划线属于小写。

生成Xml文档

      为HLSL中的变量加入SasUiDescription标注可以自动为C#属性增加Xml文档,如:

float Saturation <string SasUiDescription = "Gets or sets saturation amount.";> = 0.5f;

      将会生成:

/// <summary>
/// Gets or sets saturation amount.
/// </summary>
public float Saturation
{
    get { return _Saturation.GetValueSingle(); }
    set { _Saturation.SetValue(value); }
}

HLSL编译错误报告

      当修改.fx文件并保存时,Visual Studio会重新生成新的代码。如果.fx文件中出现了语法错误,将会直接在Visual Studio的输出窗口中输出,方便修改调试:

image

自定义C#类的功能

      如果需要扩展自动生成的类的功能:比如增加属性,实现接口,重载OnApply方法等,可以直接修改生成的.cs文件。当下一次代码生成器运行的时候,不会覆盖对于.cs文件的任何修改。

posted @ 2010-08-15 16:29  Yufei Huang  阅读(1238)  评论(1编辑  收藏  举报