0

我想玩三个 lod 系统,我在我的网格上应用了法线贴图材质,但它因 GL 错误而失败:

WebGLRenderingContext:GL 错误:GL_INVALID_OPERATION:glDrawElements:尝试访问属性 2 中超出范围的顶点

我认为任何人都可以很容易地复制它,只需编辑 webgl_lod 示例,而不是应用 MeshLambertMaterial 使用 misc_control_fly 示例中提供的法线贴图 ShaderMaterial。

我错过了什么吗,法线贴图着色器不应该与 LOD 网格一起使用吗?

编辑:这里是查看问题的链接。

正在工作的原始示例 webgl_lod:http: //typedef.byethost8.com/examples/webgl_lod.html

使用来自shaderLib的法线贴图着色器而不是web_lod示例的原始meshLambertMateriel:http: //typedef.byethost8.com/examples/failing_webgl_lod.html

4

1 回答 1

0

您必须为几何图形生成切线。添加:

geometry[ 0 ][ 0 ].computeTangents();
geometry[ 1 ][ 0 ].computeTangents();

这将摆脱错误:

WebGLRenderingContext:GL 错误:GL_INVALID_OPERATION:glDrawElements:尝试访问属性 2 中超出范围的顶点

另外,我不得不使用sheres而不是平面来查看显示的东西=>也许没有为平面生成纹理坐标?或者法线贴图材质不适用于平面?

于 2013-03-31T10:04:16.070 回答