directx/HLSL 输入和输出语义有什么用?
我想知道 HLSL 中的那些输入和输出语义是做什么用的? 即为什么我必须写 TEXCOORD0;
struct VS_OUTPUT
{
float2 tc : TEXCOORD0;
};
当类型和名称已经给出时?
i was wondering what those input and output semantics in HLSL are for?
i.e. why do i have to write that TEXCOORD0;
struct VS_OUTPUT
{
float2 tc : TEXCOORD0;
};
when the type and the name are already given?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
语义让着色器知道从哪里读取或写入数据。它们对应于顶点结构的部分或某些值。
在上面的示例中,
tc
的值来自第一个纹理坐标组件。有关语义及其含义的信息,请查看此处: http://msdn.microsoft.com/en-us/library/bb509647(v=vs.85).aspx
在顶点着色器中,数据将来自 FVF 或 顶点声明。
Semantics let the shader know where to read or write data from. They correspond to parts of the vertex structure or certain values.
In your example above, the value of
tc
comes from the first texture coordinate component.For info on semantics and what they mean, check here: http://msdn.microsoft.com/en-us/library/bb509647(v=vs.85).aspx
In the vertex shader, the data will be coming from the FVF or vertex declaration.