2012-04-14 29 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