R. *_*des 3 opengl shader glsl
有没有办法找出GLSL中是否启用了不涉及传递属性或创建大量不同着色器的灯?
那么使用NVidia的C for Graphics(Cg)呢?我可以用Cg做吗?
我现在相信你不能这样做.但现在我问:为什么不呢?
小智 6
根据我对"启用或不启用"部分GLSL常见错误的理解,这是一个哲学原因:着色器被编写为覆盖固定管道,因此它们不应该依赖于固定的管道状态.您必须为所需的每种功能使用不同的着色器.
另外我想这可能是一个设计选择,基于分支在GPU上很昂贵的事实,有人必须认为你不应该这样做
if (gl_LightSource[0].enabled)
{ ... }
Run Code Online (Sandbox Code Playgroud)
首先.