顶点着色器阶段
顶点着色器 (VS) 阶段处理输入汇编程序的顶点,执行每个顶点作,例如转换、皮肤、平滑和每顶点照明。 顶点着色器始终在单个输入顶点上运行,并生成单个输出顶点。 顶点着色器阶段必须始终处于活动状态,才能执行管道。 如果不需要顶点修改或转换,则必须创建直通顶点着色器并将其设置为管道。
顶点着色器
每个顶点着色器输入顶点最多可包含 16 32 位向量(每个矢量最多 4 个组件),每个输出顶点可以包含多达 16 个 32 位 4 分量向量。 所有顶点着色器必须至少具有一个输入和一个输出,其量值只能是一个标量值。
顶点着色器阶段可以使用输入汇编程序生成的两个系统值:VertexID 和 InstanceID(请参阅 系统值语义)。 由于顶点 ID 和 InstanceID 在顶点级别都有意义,并且硬件生成的 ID 只能馈送到理解它们的第一阶段,因此这些 ID 值只能馈送到顶点着色器阶段。
顶点着色器始终在所有顶点上运行,包括在具有相邻的输入基元拓扑中的相邻顶点。 可以使用 VSInvocations 管道统计信息从 CPU 查询顶点着色器执行的次数。
顶点着色器可以执行加载和纹理采样作(使用 HLSL 内部函数:示例(DirectX HLSL 纹理对象)、SampleCmpLevelZero (DirectX HLSL 纹理对象),以及 SampleGrad (DirectX HLSL 纹理对象))。