OpenGL을 사용하여 일부 3D 오브젝트를 렌더링하려합니다. 요구 사항은 다른 투명한 객체 뒤에있는 모든 투명한 객체를 숨길 필요가 있다는 것입니다. 모든 삼각형은 단일 삼각형 버퍼에 있으며 한 번에 그려집니다. 약간의 빛을 던져주세요.OpenGL의 투명 오브젝트 렌더링
답변
장면을 정렬하여이 작업을 수행 할 수 있습니다. 이는 올바르게 작동하는 투명성을 얻으려면 어쨌든해야 할 일입니다. 기록 및 테스트
- 하는 Z 버퍼를 사용하는 모든 불투명 오브젝트
- 렌더링 앞 뒷면에 모두 투명한 오브젝트를 렌더링 :
다음은해야 할 일입니다. z 버퍼는 투명 오브젝트가 다른 투명 오브젝트 뒤에 표시되지 않도록합니다. glDepthMask를 사용
답장을 보내 주셔서 감사합니다. 네, 투명 삼각형 (앞에서 뒤로)을 정렬하여이 작업을 수행 할 수 있습니다. 투명 오브젝트의 모든 삼각형은 한 번에 그려집니다. 장면을 회전하면 효과가 유지됩니다. 불행하게도 장면에서 50 만 개의 삼각형을 다루기 때문에 정렬 작업은 허용되지 않습니다. 내가 blendfunction의 일부 combimation을 사용하여 이것을 달성 할 수 있다고 생각합니까? – user942502
적어도 이것이 OpenGL 1.1 기능으로는 가능한지 확신 할 수 없습니다. 2 개의 버퍼로 분할 할 수 있습니까? – geofftnz
어떤 삼각형이 화병을 형성하고 어떤 삼각형이 내 삼각형 버퍼의 문을 형성하는지에 대한 분류가 없으므로 2 개의 버퍼로 분할 할 수 없습니다. – user942502
시도() :
//Render all opaque objects
glDepthMask(false); //disable z-testing
//Render all transparent objects*
glDepthMask(true); //enable z-testing (for the next frame)
* 기술적으로, 당신은 다시 전면에서 투명한 오브젝트를 렌더링해야하지만 그렇게하지 않으면이 거의 눈에 띈다.
- 1. OpenGL의 투명 FrameBuffer 배경
- 2. OpenGL의 다국어 유니 코드 렌더링
- 3. OpenGL의 자체 참조 렌더링 버퍼
- 4. OpenGL의 투명 텍스처가 쿼드 알파를 대체하지 않습니다.
- 5. 3D 메시 오브젝트 렌더링
- 6. iPhone : OpenGL 렌더링 투명 텍스처
- 7. OpenGL의 렌더링 메쉬 다각형 - 매우 느림
- 8. Android의 투명 PNG에서 렌더링 그림자의 품질
- 9. OpenGL ES 2.0에서 더 작은 오브젝트 렌더링
- 10. DirectX와 OpenGL의 혼합
- 11. OpenGL의 박제 동물
- 12. OpenGL의 vbo 관리
- 13. 프레임 버퍼 객체가있는 OpenGL의 동적 큐브 맵 렌더링
- 14. OpenGL의 행렬
- 15. OpenGL의 애니메이션
- 16. OpenGL의 조명 문제
- 17. OpenGL의 GUI 툴킷
- 18. 오브젝트 내부의 오브젝트
- 19. 오브젝트
- 20. 오브젝트 배열을 통한 오브젝트 액세스
- 21. JSON-ception - 오브젝트 내부의 오브젝트
- 22. 오브젝트 대 오브젝트 맵핑 유틸리티
- 23. 오브젝트 데이터를 오브젝트 데이터와 분리
- 24. 오브젝트 또는 오브젝트 속성 전달
- 25. OpenGL의 색 구
- 26. OpenGL의 초기화되지 않은 텍스처
- 27. OpenGL의 와이어 프레임
- 28. OpenGL의 다각형 그라디언트
- 29. OpenGL의 정점 제한
- 30. openGL의 광원 회전
개체가 투명하고 어떤 버전의 OpenGL을 처리하는지에 대해 의견을 말씀해 주실 수 있습니까? – masebase
나는 opengl 1.1을 다루고있다. 예를 들어 유리문이있는 방 안에 유리 화병이있다. 사용자는 유리문을 통해 목조 가구처럼 방 안의 불투명 한 물체 만 볼 수 있지만 실내의 유리 화병은 볼 수 없어야합니다. – user942502