我一直在使用内置顶点索引的 gl_VertexID 时遇到问题,通过使用in
, 与 Three.js 一起使用
我不知道为什么,因为文档说它适用于所有版本的 OpenGL
http://www.opengl.org/sdk/docs/manglsl/xhtml/gl_VertexID.xml http://www.opengl.org/sdk/docs/manglsl/xhtml/gl_VertexID.xml
我正在使用这个顶点着色器:
uniform int freqData[64];
uniform int fftSize;
in int gl_VertexID;
void main() {
vec3 norm = normalize(position);
int modFFT = mod(gl_VertexID, fftSize);
vec3 newPosition = norm * float(freqData[modFFT]);
gl_Position = projectionMatrix * modelViewMatrix * vec4( newPosition, 1.0 );
}
我收到的错误是:
ERROR: 0:68: 'in' : syntax error
似乎有问题in
声明,并且它不会抱怨任何其他内容(错误控制台能够检测多个编译错误)。
我非常感谢您的帮助,我正在使用昨天的 Three.js 构建。
据我所知,在 WebGL 中您无法访问内置顶点索引。
但是,您应该能够通过提供自己的自定义属性流来模拟这一点,并将其设置为与此类内置索引流等效的值。
在 Three.js 中,尚未实现整数自定义属性,因此您需要使用浮点属性。
检查本例中的“displacement”属性:
http://mrdoob.github.com/ Three.js/examples/webgl_custom_attributes.html http://mrdoob.github.com/three.js/examples/webgl_custom_attributes.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)