我对GLKBaseEffect
的理解是它带有某种通用的顶点和片段着色器,当调用[baseEffect prepareToDraw]
时,效果会传递其属性值,如transform
和fog
到OpenGL制服和属性,以便默认着色器接收他们期望的制服。
有人知道这些制服和属性是如何命名的吗?更好的是,是否有人拥有GLKBaseEffect
标准着色器的源代码?
答案 0 :(得分:1)
您可以使用Xcode 4中的Frame Debugger来查看生成的GLSL。如果要修改这些着色器的用法,最好将着色器源复制到自己的应用程序中,而不是依赖GLKit在运行时生成它们。
统一名称特别是GLKit的私有实现细节,并且可以随时更改,这将破坏尝试直接设置这些字段的任何应用程序。如果您自己对着色器文本进行快照,则不存在此类问题。