0

这是 HLSL 顶点着色器输入的两个版本

结构 VS_INPUTS_0 { float3 位置:位置;浮动2 Tex0:TEXCOORD0;}

结构 VS_INPUTS_1 { float3 位置:位置;浮动3 Tex0:TEXCOORD0;}

唯一的区别是 Tex0 的 float2 和 float3。是否有 DX9 API 来获取正确的 Tex0 类型以指示 Tex0 的类型是 float2 还是 float3?

4

1 回答 1

1

对于 DX9,据我所知,DX9 会自动修补您的着色器。也就是说,如果您的像素着色器期望float2并且您的顶点着色器提供float3,它仍然可以工作。使用 DirectX10/11,您可以使用着色器反射来查询已编译的着色器并找出它所期望的。

问题是:“正确的类型”是什么意思?这完全取决于您的像素着色器,仅靠顶点着色器不足以决定。

于 2011-10-09T07:02:53.137 回答