2013-08-12 5 views
1

내가 현재의 OpenGL ES 1.1을 사용하는 3D 응용 프로그램, 대부분의 메시는 응용 프로그램에서 고정 배선되어 있고 (그들은 이동하지 않습니다) 정적 정렬 형상을 가속, 너무 깊이 테스트는 효율적으로 투명 geometri을 그릴 수 있습니다 하드 와이어 된 정렬을 사용합니다.는 OpenGL ES 2.0 GPU는

이제 세계를 3D 편집기에서 불러 와서 투명도가 높은 동적 객체 (임의의 순서로도 가능함)를 추가하여 깊이 테스트에서 뒤쪽의 지오메트리에 "구멍"을 그립니다. OpenGL ES 1.1 깊이 테스트를 사용하여 정면의 지오메트리 이후 렌더링됩니다.

언제든지 OpenGL ES 2.0으로 곧바로 마이그레이션 할 예정입니다. 따라서 GPU가 뒤쪽면에 지오메트리를 그리는 속도가 빨라지므로 블렌딩이 올바른 방식으로 이루어 지는지 궁금합니다.

답변

3

는 OpenGL ES 2.0은 당신을 위해 기하학 위해 문제의 해결되지 않습니다. OpenGL ES 2.0 그리기 호출을하기 전에 개체를 정렬해야합니다.

+0

참조하세요 [이 추출물 (http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter46.html). 저는 OpenGL ES 쉐이딩 언어에 대해 완전히 새롭지 만, 제가 원하는 것은 그 구현에서 그리 멀지 않은 것 같습니다. – rraallvv

+1

글쎄, 그건 어려운 방법 같다. 만약 당신이 감히해라. :) 그런 방법으로 빠른 정렬을 할 수는 있지만 실제로 프레임 버퍼에서 컬러 데이터를 읽는 것은 대개 값이 비싸서 그러한 최적화를 쓸모 없게 만들 수있다. – keaukraine

+0

@rraallvv 음, * 힘 * 귀하의 요구에 대한 몇 가지 GPGPU - 정렬 알고리즘을 구현할 수, 아직 OpenGL은 상자 (개념 정말 OpenGL을 사용하여 객체를 정렬되지 않은에서 그 같은 것을 전시, 오히려하지 않습니다 기존의 정렬 알고리즘에 의해 그들을 정렬 및 계산 작업을위한 OpenGL을 쉐이더를) 오용, 나는 거기에 당신의 몇 개체에 대해 어떤 장점을 가져다 그것에 내기 않을 것 (당신의 세계를 한 그들이 물체의 많음을 가지고 나에게 말하지 마 적어도 1e5 또는 1e6의 리그에 있지 않아야 함). 그리고 같은 *의 코멘트도는 OpenGL ES 2.0을 기본 정점과 프래그먼트 쉐이더를 가지고있는 동안, 당신이 실제로 렌더링 같은 GPGPU 정렬 알고리즘의 출력을 사용할 수 있도록 많은 기능이 부족 제안 * keaukraine 권리를 멀리 –