2010-08-05 3 views

답변

5

IN 개체가 표시되어 있는지 확인하지 않습니다.

당신은 자신의 가시성/컬링 알고리즘을 가지고 있어야합니다. 그것은 BSP Trees, Portal, Octree 및 기타를 의미합니다. 세계의 복잡성에 따라 그리드 등을 기반으로 공간을 분할 할 수 있습니다. 그것은 당신이하는 일에 달려 있습니다.

OpenGL은 Draw와 Cull 만 알고 있음을 기억하십시오.

세계의 모든 개체에 대해 루프를 수행하고 GL에 모든 개체를 하나씩 그릴 수 있습니다. 볼 수 없으면 각 프로세스가 처리되고 폐기됩니다. 물론 이것은 짐승 같은 힘이며 느립니다.

따라서 도려 내기 알고리즘을 더 포괄 할 필요가 있습니다.

왜 그래픽 엔진에 백만 줄이 있다고 생각합니까? : D

+3

OpenGL에서 표시 여부를 확인할 수 있습니다. 사람들은 Occlusion Queries를 사용합니다. 그러나 이것은 OpenGL ES에서 사용할 수 없습니다. – Bahbar

+0

Occlusion Queries는 ARB 확장이 아니라 GL 사양이라고 생각합니다. 어쨌든 응용 프로그램에 따라 GPU 메모리에 모든 지오메트리를 갖고 싶지는 않을 수도 있습니다. – Rui

+0

OQ는 OpenGL에서 OpenGL이 아닌 OpenGLES의 확장입니다. 심지어는 – Calvin1602

1

변종 picking을 사용할 수 있습니다. OpenGL 피킹의 개념은보기의 작은 영역을 렌더링하여 스택에 이름을 붙여 놓는 것입니다. 그래서 렌더링 된 내용을 참조 할 수 있습니다. OpenGL은 히트 레코드를 반환하므로 렌더링 된 내용을 알 수 있습니다. 마우스 밑에있는 것을 알아 내기 위해 자주 사용됩니다.

  • 간단한 무언가에 의해 모델을 교체 (이 렌더링 가능한 표면에 장면을 렌더링 (단지 가시성 검사를 수행하는) 작은 렌더링 가능한 표면을

    • 설정 :

      그래서 다음을 수행 할 것 예를 들어, 테두리 상자는 실제 삼각형을 렌더링 할 필요가 없으므로 대신 선이나 점을 렌더링 할 수 있습니다.

    • 렌더링 된 내용을 보려면 히트 레코드를 확인하십시오.

    아직 시도하지는 않았지만 제대로 작동한다고 생각합니다. 어쩌면 매우 빠르지는 않지만 신뢰할 수 있습니다. 효율적인 가시성/컬링 알고리즘을 작성하는 것은 어렵지만 일반적으로 사용자 정의 가시성/컬링 알고리즘이 대신 사용됩니다.

  • 관련 문제