当前位置:  开发笔记 > 编程语言 > 正文

glVertexAttrib*:预定义了哪些属性索引?

如何解决《glVertexAttrib*:预定义了哪些属性索引?》经验,为你挑选了1个好方法。

glVertexAttrib函数系列允许向每个顶点添加通用属性.您可以设置与数据关联的索引.但是,您无法任意选择索引,因为我发现使用低于4的索引将破坏标准(Normal/TexCoord)属性,加上0是顶点位置.我怎样才能找到,这将是第一个用于自定义属性的真正免费索引?



1> heeen..:

我找到了一个列出nvidia硬件预定义索引的网站:

http://www.opengl.org/sdk/docs/tutorials/ClockworkCoders/attributes.php

不幸的是,在NVidia硬件上使用它时存在某些限制.根据NVidia的说法:"GLSL试图消除顶点属性的混叠,但这是NVIDIA硬件方法的组成部分,也是维持与NVIDIA客户所依赖的现有OpenGL应用程序兼容所必需的.因此,NVIDIA的GLSL实现不允许内置顶点属性发生冲突使用glBindAttribLocation分配给特定顶点属性索引的通用顶点属性.例如,不应使用gl_Normal(内置顶点属性)并使用glBindAttribLocation将名为"whatever"的通用顶点属性绑定到顶点属性索引2因为gl_Normal别名为索引2"

换句话说,NVidia硬件索引保留用于内置属性:

gl_Vertex 0

gl_Normal 2

gl_Color 3

gl_SecondaryColor 4

gl_FogCoord 5

gl_MultiTexCoord0 8

gl_MultiTexCoord1 9

gl_MultiTexCoord2 10

gl_MultiTexCoord3 11

gl_MultiTexCoord4 12

gl_MultiTexCoord5 13

gl_MultiTexCoord6 14

gl_MultiTexCoord7 15

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有