|
发表于 2010-11-24 16:07:00
|
显示全部楼层
Re:关于D3D内用GetConstantByName获取Shader常量句柄的问题
呃,你没明白我的意思
这三行代码
_LightDir.xyz = LightDirection.xyz; //optimized, redundant code
_LightDir.w = 0.0f; //optimized, redundant code
_LightDir = mul(input.normal, ViewMatrix);
编译后只相当于
_LightDir = mul(input.normal, ViewMatrix);
因为前两行都是冗余代码,没有任何意义,也就是说你这三行代码都不会用到LightDirection。
float s = dot(LightDirection, input.normal); // (1)
float s = dot(_LightDir, input.normal); //(2)
如果你把1注释了,也没有任何代码会用到LightDirection,所以LightDirection编译后被完全优化删除了
你6楼的例子也是一样,如果是
“不使用这个s0,只是为了调用dot中包含LightDirection”
那么同样整个语句是冗余的,没有实际用处,编译之后会优化删除 |
|