c++ - 顶点着色器输入顺序

标签 c++ directx hlsl

SM 4.0 顶点着色器的输入顺序重要吗?

例如是

struct App2VS
{
    float3 position : POSITION;
    float4 color : COLOR0;
    float3 normal : NORMAL;
        ...
};

相当于

struct App2VS
{
    float4 color : COLOR0;
    float3 position : POSITION;
    float3 normal : NORMAL;
        ...
};

最佳答案

不,应该没关系。映射信息由输入布局执行。

本质上,输入布局将给定的结构元素映射到特定的输入“寄存器”。这些输入寄存器然后用于加载 HLSL 使用的结构。 HLSL 结构不是真正的内存映射,因为那些输入寄存器(即 POSITION 或 COLOR0)不是实际的内存位置。

关于c++ - 顶点着色器输入顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4512669/

相关文章:

c++ - t* 指向什么值

c++ - 尝试从文本文件读取到对象数组

c# - 想学习编写 2d 游戏

c++ - OpenGL 到 DirectX 的转换 - alpha 混合

c++ - 在 DirectX 10/11 中使用无符号字节纹理

c# - 实现 C# 接口(interface)的 C++ header

c++ - 循环时对用户输入的值求和 (C++)

winapi - 如何使用DirectWrite在面向脚本的OpenType功能与其他OpenType功能之间取得平衡?

c++ - DirectX HLSL - 像素着色器中的常量缓冲区为空,但顶点着色器中没有

shader - 使用纹理图集时发生 HLSL 颜色渗色