我想玩三个lod系统,我在网格物体上应用了法线贴图材质,但是因GL错误而失败:
WebGLRenderingContext:GL错误:GL_INVALID_OPERATION:glDrawElements:尝试访问属性2中超出范围的顶点
任何人都可以很容易地重现它,我想,只需编辑webgl_lod示例,而不是应用MeshLambertMaterial,而是使用misc_control_fly示例中提供的normalmap ShaderMaterial。
我错过了什么,是不是普通地图着色器应该与LOD网格一起使用?
编辑: 这里是查看问题的链接。
正在运行的原始示例webgl_lod:http://typedef.byethost8.com/examples/webgl_lod.html
使用shaderLib中的normalmap着色器而不是web_lod的原始meshLambertMateriel示例:http://typedef.byethost8.com/examples/failing_webgl_lod.html
答案 0 :(得分:0)
您必须为几何生成切线。 添加:
geometry[ 0 ][ 0 ].computeTangents();
geometry[ 1 ][ 0 ].computeTangents();
这将消除错误:
WebGLRenderingContext:GL错误:GL_INVALID_OPERATION:glDrawElements:尝试访问属性2中超出范围的顶点
另外,我不得不使用sheres而不是飞机来查看显示的内容=>也许没有为飞机生成纹理坐标?或者普通地图材料不适用于飞机?