【问题标题】:HLSL Passing a single float to PS?HLSL 将单个浮点数传递给 PS?
【发布时间】:2012-04-14 19:58:05
【问题描述】:

我正在阅读 Frank Luna 的“DirectX 9.0c: A Shader Approach”一书,并且在第 10 章的练习 2 中遇到问题。我应该计算一个浮点值 s 和将它传递给像素着色器,以便我可以计算“卡通照明”。我了解计算工作原理背后的理论,但我似乎无法弄清楚如何将单个浮点值从我的顶点着色器传递到像素着色器。当我在 MSDN 上搜索时,我只找到了让你传递 3d 向量等的语义。

看起来我可能需要以某种方式修改我的输入和输出结构,但是到目前为止的练习除了单个“outputVS”结构之外还没有任何结构。

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

提前谢谢你。

【问题讨论】:

    标签: directx shader hlsl


    【解决方案1】:

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

    没有规定向量的每个分量必须包含实际数据;)

    【讨论】:

    • 这就是答案。我回去了,Luna 在第一章使用着色器时简要提到了它。基本上,您向顶点着色器输出结构和像素着色器的输入参数添加一个浮点数,使其具有语义“TEXCOORD”,但没有什么能阻止您将该值用于您想要的任何东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    相关资源
    最近更新 更多