2012-04-23 27 views
5

Tôi có một đối tượng với một lưới sử dụng kết cấu png bán trong suốt.Có tương đương với khả năng hiển thị mặt sau cho ba.js không?

Có cờ hoặc tùy chọn cho MeshBasicMaterial sao cho mặt sau của đối tượng có thể nhìn thấy qua mặt trước không?

Dưới đây là một số mẫu mã:

var texture = THREE.ImageUtils.loadTexture('world.png'); 

// create the sphere's material 
var sphereMaterial = new THREE.MeshBasicMaterial({ 
    map: texture, 
    transparent: true, 
    blending: THREE.AdditiveAlpha 
}); 

sphereMaterial.depthTest = false; 

// set up the sphere vars 
var radius = 50, segments = 20, rings = 20; 

// create a new mesh with sphere geometry - 
var sphere = new THREE.SceneUtils.createMultiMaterialObject(
    new THREE.SphereGeometry(radius, segments, rings),[ 
    sphereMaterial, 
    new THREE.MeshBasicMaterial({ 
     color: 0xa7f1ff, 
     opacity: 0.6, 
     wireframe: true 
     }) 
    ]); 

Điều này sẽ làm cho chính xác lĩnh vực nhưng lại vẫn vô hình.

Trả lời

20

Cách mới để làm điều này là sử dụng tài sản của sidematerial.

Ví dụ:

new THREE.MeshPhongMaterial({ map: texture, side: THREE.BackSide }) 

Giá trị có thể là THREE.FrontSide, THREE.BackSideTHREE.DoubleSide.

Xem: https://github.com/mrdoob/three.js/wiki/Migration

7

Thuộc tính backface được thiết lập trong lưới riêng của mình:

sphere.doubleSided = true; 
Các vấn đề liên quan