私はThree.jsを使用して、6つの異なるイメージを含むキューブをレンダリングしようとしています。Three.jsキューブで複数の材料を使用するには?
THREE.CubeGeometryのコンストラクタは次のようになります
THREE.CubeGeometry = function (width, height, depth, segmentsWidth, segmentsHeight, segmentsDepth, materials, sides)
Iが「材料」は物質、または6つの異なる材料のアレイのいずれかであることが予想されるコードから見ることができるが、材料ここで渡されたものは、レンダリング時に使用されることはありません。
代わりに、メッシュコンストラクタに与えられた単一の材料が、6つのすべての面に使用されます。
var face_materials = ... <load 6 textures here>...
var cube_g = new THREE.CubeGeometry(400,400,400,1,1,1, face_materials); // <= ignored?
var cube = new THREE.Mesh(cube_g, some_material); // <= this is used instead
「some_material」としてnullまたはundefinedを渡しても、face_materialsをオーバーライドして何も表示されないようです。
CubeGeometryを使用してこの作業を行う方法はありますか?または、6つの顔を別々に作成してシーンに追加する必要がありますか?
うわー、うまくいく!ありがとうございました。 MeshFaceMaterialは欠落していました。その定義は以下の通りです。THREE.MeshFaceMaterial()= function(){}; 多分、私はそれがなぜ機能するかを理解するでしょう... –
r53で私のために働きません。 – mpso
最近のthree.jsバージョンでこれを行う方法については、http://stackoverflow.com/questions/13795354/verification-of-using-multiple-textures-with-three-js-cubesを参照してください。 – mpso