シーンを 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.image
on 属性の存在を想定してそれmyWebGLRenderTarget
を呼び出そうとしているように見えますclampToMaxSize
。
これは three.js のバグですか、それとも単に間違っているのでしょうか? フラット レンダリング ( を使用MeshBasicMaterial
) のみが必要なので、上記のレンダリングからテクスチャへのデモを適応させたときに最初にしたことの 1 つは、シェーダーのすべてのトレースを削除することでした。球体だけでうまく機能しました。UV マッピングとカスタム メッシュを使用するには、これらのシェーダーを元に戻す必要がありますか?