リモート サーバーからバイナリ アセットを読み取って、実行時に作成されたジオメトリにテクスチャを適用しようとしています。UV (geometry.faceVertexUvs = uvs;)、法線 (face.vertexNormals.push(...))、接線 (face.vertexTangents.push(...)) を割り当てるジオメトリを作成します。
基本的なマテリアルを使用してメッシュを作成しようとすると問題はありませんが、そのジオメトリを使用してメッシュを作成し、テクスチャを適用しようとすると、webgl にジオメトリが表示されず、次の警告が表示されます。
[.WebGLRenderingContext]GL エラー:GL_INVALID_OPERATION:glDrawElements:属性 1 の範囲外の頂点にアクセスしようとしています
何が起こっているのか誰か知っていますか?THREE.Sphere を使用すると、実際にテクスチャを適用できるため、ジオメトリに問題があると思います。
しかし、テクスチャを適用するには UV が必要だとみんなに言われ、UV を持っています。
faceVertexUvs が間違っていると思います。
本当の問題は、geometry.faceVertexUvs.length が geometry.vertices.length と等しくなければならないか、または geometry.faces.length と等しくなければならないかということです。
どうもありがとうございました。
PS: 私はすでに次の投稿を読みました
3 つの JS マップ マテリアルにより WebGL 警告が発生する