题
有没有办法找出如果光在GLSL启用不涉及通过属性或创建吨不同的着色器?
关于使用NVidia的下图形(CG)什么?我可以用CG做呢?
我现在确信,你不能做到这一点。但现在我要问:为什么不呢?
解决方案
根据我的“启用或不启用” GLSL常见错误的一部分理解一>这是一个哲学道理:着色器被写入覆盖固定管道,因此他们不应该依靠固定管道的状态。你必须使用一个不同的着色器为每个需要的能力。
此外,我想这可能是基于这样的事实,分支是昂贵的GPU和别人一定认为你不应该做这样的事情。
设计选择if (gl_LightSource[0].enabled)
{ ... }
在首位。
其他提示
unforgiven3是正确的 - GLSL不提供访问固定管启用状态。你必须在将它作为一个均匀的。
如果GLSL像HLSL(的DirectX的等价物),我怀疑它是什么,我觉得你被卡住传球属性。
: - (
您可以设置光颜色为(0,0,0,0),要么在该分支,还是让它在现在无贡献灯回路。
不隶属于 StackOverflow