3

シーンを texture にレンダリングする Three.js のこのデモをいじった後、私は自分のプロジェクトでその本質をうまく複製しました: 私のメイン シーンの中に球体があり、THREE.WebGLRenderTargetバッファを介してセカンダリ シーンがその上に描画されます。

とはいえ、実際には球体は必要ありません。ここで、巨大なレンガの壁にぶつかりました。バッファーを単純なカスタム メッシュにマップしようとすると、次のエラーの無限ストリームが発生します。

three.js:23444 WebGL: INVALID_VALUE: pixelStorei: invalid parameter for  alignment
three.js:23557 Uncaught TypeError: Cannot read property 'width' of undefined

環状形状を近似する私のジオメトリは、このコードを使用して作成されます。マテリアル オプションcanvasを渡してUV マッピングに成功しましたが、使用すると上記のエラーが発生します。{map: new THREE.Texture(canvas)}{map: myWebGLRenderTarget}

コール スタックをざっと見てみると、three.js がtexture.imageon 属性の存在を想定してそれmyWebGLRenderTargetを呼び出そうとしているように見えますclampToMaxSize

これは three.js のバグですか、それとも単に間違っているのでしょうか? フラット レンダリング ( を使用MeshBasicMaterial) のみが必要なので、上記のレンダリングからテクスチャへのデモを適応させたときに最初にしたことの 1 つは、シェーダーのすべてのトレースを削除することでした。球体だけでうまく機能しました。UV マッピングとカスタム メッシュを使用するには、これらのシェーダーを元に戻す必要がありますか?

4

1 に答える 1