Tôi đang cố gắng sử dụng Three.js để hiển thị hình lập phương có 6 hình ảnh khác nhau trên khuôn mặt.Làm thế nào để sử dụng nhiều tài liệu trong một khối ba.js?
Các constructor của THREE.CubeGeometry trông như thế này:
THREE.CubeGeometry = function (width, height, depth, segmentsWidth, segmentsHeight, segmentsDepth, materials, sides)
tôi có thể nhìn thấy từ mã mà "vật liệu" được kỳ vọng sẽ là một trong hai loại vật liệu, hoặc một mảng của 6 vật liệu khác nhau, nhưng vật liệu thông qua ở đây dường như không bao giờ được sử dụng khi dựng hình.
Thay vào đó, tài liệu đơn lẻ được cung cấp cho kiến trúc Mesh được sử dụng cho tất cả 6 khuôn mặt.
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
Thậm chí nếu tôi bỏ qua hoặc không xác định là "some_material", có vẻ như ghi đè lên face_materials và không hiển thị gì cả.
Có cách nào để thực hiện công việc này bằng CubeGeometry không? Hay tôi phải tạo riêng 6 khuôn mặt và thêm chúng vào cảnh?
Thật tuyệt vời! Cảm ơn bạn. MeshFaceMaterial là thành phần bị thiếu - thay vì không trực quan, vì định nghĩa của nó là: BA.MeshFaceMaterial() = function() {}; Có thể một ngày nào đó tôi sẽ tìm ra lý do tại sao hoạt động đó ... –
Không hiệu quả đối với tôi trong năm R53. – mpso
Xem http://stackoverflow.com/questions/13795354/verification-of-using-multiple-textures-with-three-js-cubes để biết thông tin về cách thực hiện điều này trong các phiên bản ba.js gần đây hơn. – mpso