2016-09-09 10 views
0

씬에서는 투명한 오브젝트 만 있으므로 깊이 테스트를 사용하면 오브젝트가 서로 숨어 있습니다. 깊이 테스트에서는 투명도를 고려하지 않고 단지 깊이 버퍼에 값을보고 z을 기록합니다. 그런 다음 올바르게 투명한 두 객체를 렌더링하는 방법은 무엇입니까?투명한 개체에 대한 깊이 테스트를 비활성화하는 방법?

내가이 renderer.context.disable(renderer.context.DEPTH_TEST);했지만 아무것도

내 구체적인 문제의

그림을 변경하지 : enter image description here

큐브 MeshLambertMaterial({color: ..., transparent: true, opacity: 0.6})

하고 비행기가 MeshLambertMaterial({color: ..., transparent: true, opacity: 0.4})

큐브가 비행기 후 렌더링입니다, 그러나 큐브가 불투명하다면 모든 큐브가 버려지 지 않고 올바르게 렌더링됩니다 (점 t 헤이 또한 불투명하다 그러므로 눈에 보인다).

그래서 투명도를 고려하고 렌더링 순서는 신경 쓰지 않으므로 두 투명 오브젝트가 서로를 숨기지 않습니다. 카메라 위치가 변경 될 때 유물이있는 경우 three.js를에서

답변

2

, 당신은 놀라지 마세요

material.depthTest = false; 

를 설정하여 깊이 테스트를 해제 할 수 있습니다.

this answer을 읽고 싶을 수도 있습니다. 하지만 크롬과 장면의 모든 조명과 카메라를 회전 할 때

three.js를

+0

그래 오 R.80, 나 또한 몇 가지 유물을했다. – ampawd