2012-09-27 42 views
7

Tôi đang xây dựng một công cụ giáo dục bằng cách sử dụng các mặt phẳng , splines được ép đùn,hình học hình trụ. Máy bay có bản đồ kết cấu và phần còn lại là vật liệu cơ bản hoặc Lambert.Kênh alpha không nhất quán trong ba.js

  • Bản đồ kết cấu trên máy bay trong bản đồ duy nhất và nó có kênh alpha .
  • đồ Texture đã được thử nghiệm như .GIF và PNG
  • Tất cả các đối tượng có "minh bạch: true"
  • renderer = new THREE.WebGLRenderer ({antialias: true});

LƯU Ý: đây chính là vấn đề tương tự được liệt kê tại liên kết sau. Nó chưa được giải quyết và Đại diện của tôi không đủ cao để bình luận.

in three.js, alpha channel works inconsistently

Như mmaclaurin ghi chú khác, nó có thể là một sự thay đổi dựa theo thứ tự bốc thăm và vị trí camera. Tôi đang sử dụng BA.TrackballControls và hạn chế chuyển động của máy ảnh thành hai trục.

Thêm hoặc xóa BasicMaterial cho wireframe không làm thay đổi sự cố.

Cảm ơn bạn đã dành thời gian đọc sách này và mọi trợ giúp bạn có thể cung cấp!

Ví dụ về đối tượng máy bay:

var T4map = new THREE.ImageUtils.loadTexture('medium_T4.png'); 
    var T4Material = new THREE.MeshBasicMaterial({ opacity: .96, transparent:true, map: T4map }); 
    var T4Geometry = new THREE.PlaneGeometry(810, 699, 10, 10); 
    var T4 = new THREE.Mesh(T4Geometry, T4Material); 
    T4.position.y = -CNspacing; 
    T4.doubleSided = true; 
    scene.add(T4); 

Ví dụ về hình học spline đùn nơi vấn đề là đáng chú ý nhất:

var mesh = THREE.SceneUtils.createMultiMaterialObject(geometry, [ 
new THREE.MeshLambertMaterial({ color: 0xaaff00, opacity: 0.5, transparent: true }),   
     mesh.position.set(x, y, z); 
     mesh.scale.set(s, s, s); 
     parent.add(mesh); 
+0

quan sát mới: nó chỉ có thể xảy ra dưới đây y = 0 – ChrisTalbot

+0

Di chuyển tất cả các đối tượng để y> 0 không giúp được gì. Tuy nhiên, nếu tôi di chuyển máy ảnh qua tất cả các vị trí y để quan sát sự thiếu alpha, hiệu ứng cuối cùng sẽ dừng lại. Nghe có vẻ như vấn đề vẽ ... – ChrisTalbot

+0

Sự cố dừng nhưng độ trong suốt bị mất và biến mất vĩnh viễn (cho đến khi làm mới) – ChrisTalbot

Trả lời

3

Cố gắng chơi xung quanh với depthTest. Thông thường điều này sẽ giúp:

new THREE.MeshBasicMaterial({ side:THREE.BackSide,map:texture,transparency:true, opacity:0.9, depthWrite: false, depthTest: false }); 

Có rất nhiều câu hỏi khác liên quan đến chủ đề của bạn, cho ex .: transparent bug

Các vấn đề liên quan