Pau*_*get 7 opengl attributes glsl ati vertex
我要送顶点使用glVertexAttribPointer属性来着色期待他们作为内置(gl_Vertex,gl_Color,等).
该glVertexAttribPointer函数需要指定每个内置属性的索引(或位置).我可以在NVidia实现上做到这一点,因为每个属性的位置都是固定的(请参阅http://www.opengl.org/sdk/docs/tutorials/ClockworkCoders/attributes.php "自定义属性"部分),不过我是不确定ATI实施中的位置.
此外,glGetAttribLocation当尝试获取以"gl_"开头的任何属性的位置时,该函数将返回-1.
我想我错过了一些东西,这是一个微不足道的问题,但是我没有为ATI找到正确的解决方案.
内建的属性数组不设定glVertexAttribPointer,而是用类似的功能glVertexPointer,glColorPointer....并通过调用启用这些glEnableClientState与像常量GL_VERTEX_ARRAY,GL_COLOR_ARRAY......,而不是glEnableVertexAttribArray.
虽然nVidia glVertexAttribPointer可能有效,但由于它们具有内置属性的自定义属性索引的别名,这不符合标准,我相信你不能指望任何其他硬件供应商.因此,请确保使用glVertexAttribPointer自定义属性和glVertexPointer/glNormalPointer/...bultin属性的函数,以及匹配的启用/禁用功能.
请记住,无论如何都不推荐使用内置属性以及上述功能.因此,如果您想编写现代OpenGL代码,您应该定义自己的属性.但也许您必须支持传统着色器或者不关心前向兼容性.
| 归档时间: |
|
| 查看次数: |
2231 次 |
| 最近记录: |