为什么我不能知道OpenGL的状态灯在GLSL?

有没有办法找出如果光在GLSL启用,不涉及通过属性或创建一吨不同的着色器?

怎么样使用NVIDIA的下图形(CG)? 我能做到这一点与CG?

我现在相信,你不能做到这一点。 但现在我要问:为什么不呢?

--------------解决方案-------------

根据我的GLSL常见错误“启用或不启用”部分的理解,这是一个哲学道理:着色器写入覆盖固定管道,因此他们不应该依赖于固定管道的状态。 你必须使用一个不同的着色器为每个需要的能力。

此外,我想这可能是一个设计选择基于这样的事实,分支是昂贵的GPU,有人一定认为你不应该做这样的事情

if (gl_LightSource[0].enabled)
{ ... }

首先。

unforgiven3是正确的 - GLSL不提供访问固定的管道启用状态。 你必须在把它作为一个统一的。

如果GLSL就像HLSL(的DirectX的当量),我怀疑它是什么,我觉得你被卡住传球属性。

:-(

您可以设置的光色(0,0,0,0),要么分行,还是让它遍历现在无贡献灯。

分类:OpenGL的 时间:2015-03-15 人气:0
本文关键词: 着色器,OpenGL中,GLSL
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.291 (s). 10 q(s)