2012-04-14 44 views
3

我正在通过Frank Luna的“DirectX 9.0c:着色器方法”一书,我在第10章的练习2中被卡住了。我应该计算一个浮点值s并将它传递给像素着色器所以我可以计算“香椿照明”。我理解计算如何工作的理论,但我似乎无法弄清楚如何将顶点着色器中的单个浮点值传递给像素着色器。当我在MSDN上搜索时,我只发现允许你传递3D向量等的语义。HLSL将单个浮点值传递给PS?

看起来也许我需要修改我的输入和输出结构,但迄今为止的练习没有任何结构一个“outputVS”结构。

简而言之,如何将顶点着色器中的单个浮点值传递给HLSL中的像素着色器?

预先感谢您。

回答

1

将浮点数放入矢量的一个分量中。然后你的像素着色器只读取一个组件。

有没有法律规定说,一个矢量必须的每个组件包含实际数据)

+1

这就是答案。我回去了,在第一章使用着色器的时候,Luna简单地提到了它。基本上,你可以在顶点着色器输出结构和像素着色器的输入参数中添加一个浮点,使其具有语义“TEXCOORD”,但没有任何东西可以阻止你将该值用于任何你想要的。 – Aztal 2012-04-15 01:09:09