2012-09-27 2 views
7

저는 평면, 돌출 스플라인,실린더 형상을 사용하여 교육 도구를 구축하고 있습니다. 평면에는 텍스쳐 맵이 있고 나머지는 기본 또는 램버트 자료입니다.three.js의 알파 채널이 일치하지 않습니다

  • 텍스처 맵은 유일한지도의 비행기이고 알파는 채널입니다.
  • 렌더러 = 새로운 THREE.WebGLRenderer ({앤티 앨리어싱 : TRUE}) :
  • 텍스처 맵은 모든 객체는 "진정한 투명"가 .gif 및 .PNG
  • 으로 테스트되었습니다;

참고 : 다음 링크의 문제와 완전히 같습니다. 그것은 해결되지 않았고 나의 의원은 논평하기에 충분히 높지 않습니다. mmaclaurin는 바와 같이

in three.js, alpha channel works inconsistently

, 그것을 그리기 위해 카메라의 위치에 기초하여 변경 될 수있다. 나는 THREE.TrackballControls를 사용하여 카메라 움직임을 두 축으로 제한하고 있습니다.

와이어 프레임 용 BasicMaterial을 추가하거나 제거해도 문제가 변경되지 않습니다.

시간을내어 주셔서 감사 드리며 제공 할 수있는 도움을 보내 주셔서 감사합니다. 평면 객체의

예 : 압출 스플라인 형상의

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); 

예 문제가 가장 눈에 띄는 : depthTest에 놀러

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

새로운 관찰학과와 관련된 많은 질문이 있습니다 : 그것은 단지 Y> 0으로 모든 객체를 이동 Y 아래 = 0 – ChrisTalbot

+0

을 일이 될 수있다 도움이되지 않았다. 그러나 알파가없는 것을 관찰하기 위해 카메라를 모든 y 위치로 이동하면 결국 효과가 멈 춥니 다. 그림 문제와 같은 소리가납니다 ... – ChrisTalbot

+0

문제는 중지되지만 투명도는 사라지고 영원히 사라집니다 (새로 고침까지). – ChrisTalbot

답변

3

보십시오. 보통이 도움이 될 :

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

예 : transparent bug

관련 문제