我正在尝试将纹理应用于运行时创建的几何图形,从远程服务器读取二进制资产。我创建了几何分配 UV (geometry.faceVertexUvs = uvs;)、法线 (face.vertexNormals.push(...)) 和切线 (face.vertexTangents.push(...))。
如果我尝试使用基本材质创建网格,则没有问题,但是当我使用该几何创建网格并尝试应用我的纹理时,webgl 不显示任何几何并且我收到以下警告:
[.WebGLRenderingContext]GL 错误:GL_INVALID_OPERATION:glDrawElements:尝试访问属性 1 中超出范围的顶点
有人知道发生了什么吗?我认为我的几何形状有问题,因为如果我使用 THREE.Sphere,我实际上可以应用纹理。
但是每个人都告诉我,为了应用纹理,我需要 UV,而且我有。
我认为我的 faceVertexUvs 是错误的。
真正的问题是:geometry.faceVertexUvs.length 应该等于 geometry.vertices.length,还是应该等于 geometry.faces.length?
非常感谢。
PS:我已经阅读了以下帖子