我正在嘗試使用Three.js來渲染一個面上有6個不同圖像的立方體。如何在Three.js立方體中使用多種材質?
THREE.CubeGeometry的構造是這樣的:
THREE.CubeGeometry = function (width, height, depth, segmentsWidth, segmentsHeight, segmentsDepth, materials, sides)
我可以從代碼的「材料」預計是任一種材料,或6種不同的材料的陣列看到的,但這些材料在這裏傳遞的時候,似乎永遠不會在渲染時使用。
取而代之的是,給Mesh構造函數提供的單個材質用於所有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
即使我將null或undefined作爲「some_material」傳遞,它似乎會覆蓋face_materials並不會呈現任何內容。
有沒有辦法使用CubeGeometry進行這項工作?或者我必須單獨創建6個面並將它們添加到場景中?
哇,這工作!謝謝。 MeshFaceMaterial是缺少的成分 - 相當不直觀,因爲其定義如下:THREE.MeshFaceMaterial()= function(){}; 也許有一天我會弄清楚爲什麼那些作品... – 2012-02-28 13:43:32
在r53中不適合我。 – mpso 2012-12-10 06:08:47
請參閱http://stackoverflow.com/questions/13795354/verification-of-using-multiple-textures-with-three-js-cubes以獲取有關在更新的three.js版本中執行此操作的信息。 – mpso 2012-12-11 02:45:25