该资料是面向 vvvv gamma / Stride 的 SDSL 着色器编写指南。SDSL 是 Stride 的着色器语言,为 HLSL 的超集,增加着色器类与继承、多继承(mixins)、streams 自动跨阶段数据流、override 方法替换,着色器定义在 .sdsl 文件中。streams 用于替代手写 VS_INPUT/VS_OUTPUT 结构,声明一次即可在各阶段读写,如 streams.MyData;内置 streams 包括 ShadingPosition、ColorTarget、Position、TexCoord、normalWS。基础层级方面,Stride 核心提供 ShaderBase(VSMain/PSMain)、Texturing、Transformation、PositionStream4、NormalStream、ComputeShaderBase、ComputeColor、ComputeVoid、Global 等;vvvv 专有 ShaderBase 类型包括 VS_PS_Base、FilterBase、MixerBase、TextureFX,其中 VS_PS_Base 已包含 Transformation、NormalStream、PositionStream4,不应重复继承。vvvv 根据文件名后缀自动生成节点:_TextureFX、_DrawFX、_ComputeFX、_ShaderFX 分别生成 TextureFX、DrawFX、ComputeFX、ShaderFX 节点。基本 TextureFX 结构为继承 FilterBase 并实现 Filter(float4 tex0col),注意闭合大括号后需加分号。语法关键字包括 shader、override、base、stage、stream、static、compose、clone、abstract。支持单继承与多继承 mixins,也可通过静态函数调用如 ColorUtils.LinearToGamma。枚举绑定需用 [EnumType] 指定已预编译程序集,DLL 变更后需重启 vvvv。GPU 实践建议对 log2、除法、pow 做安全保护,并说明 TextureFX 中 tex0col 已采样、可再用 Texture1.Sample 采样其他纹理。ShaderFX / ComputeColor 通过 compose 关键字组合并为 TextureFX 的 compose 输入串接。还支持虚方法分派、模板/泛型着色器(参数类型 float、int、float2-4、Texture2D、SamplerState)、组合数组(compose ComputeColor lights[])以及跨 emit/simulate/draw 共享结构体类型。限制:资料未提供收费、价格、平台与具体使用步骤;枚举 DLL 必须预编译,vvvv 重启是硬性要求;部分基类仅限 vvvv,普通 Stride 中不可用。
vvvv-shaders
通用与其它
更新于 10-16 01:26