1

那是关于 DirectX 9。

在使用顶点着色器进行渲染的典型情况下,设备中设置了一个或多个流源,并且源数据的格式使用顶点声明来定义。

现在,如果使用的顶点着色器需要某个属性(例如,具有 D3DDECLUSAGE_NORMAL 和 UsageIndex 1 或 2 的属性),但提供的顶点声明不包含该属性(即流源中提供的数据不包含该属性),然后调用 DrawPrimitive,DirectX 在哪里获取该属性的值?

4

2 回答 2

0

DirectX 9 规范为未声明的属性定义了“默认”值,通常是 (0,0,0,1)。设备驱动程序或 GPU 创建它们。

于 2009-07-10T17:58:25.113 回答
0

“如果顶点流中的数据包含的组件比对应的着色器数据类型少,则缺失的组件将被初始化为0(w除外,它被初始化为1)。”

摘自“Windows DirectX 图形文档(2009 年 8 月)”

内容 > HLSL > 编程指南 > 在 Direct3D 9 中编写 HLSL 着色器 > 改变着色器输入和语义

于 2010-10-25T01:05:56.300 回答