2009-03-27 4 views
7

폐색 알고리즘은 CAD 및 게임 업계에서 필요합니다. 그리고 그들은 내가 생각하는 두 가지 산업에서 다릅니다. 내 질문 :폐색 알고리즘 컬렉션

  1. 두 가지 indurstries에서 각각 어떤 종류의 폐색 알고리즘이 적용됩니까?
  2. 무엇이 다른가요?

나는 CAD 소프트웨어 개발에 종사하고 있으며 우리가 채택한 오 클루 전 알고리즘은 객체 식별자를 색상 (정수)으로 설정 한 다음 장면을 렌더링하고 마지막으로 픽셀을 읽고 보이는 개체. 성능이 좋지 않으므로 좋은 아이디어를 얻고 싶습니다. 감사. 전에 볼 표면이나 단체를 찾아 파이프 라인으로 그들을 전송 - anwsers을 읽은 후


, 나는 폐색 알고리즘 여기에 "폐색 제거"를 의미 명확히하고자합니다.

google을 사용하여 gamasutra에 알고리즘을 발견했습니다. 다른 좋은 아이디어 나 결과는 없습니까? 감사.

+0

당신이 항목 버퍼를 사용하는 것 같습니다 : http : // stackoverflow.com/questions/498601/what-is-the-the-best-approach-efficient-the-first-intersection-a/570861 # 570861 이것은 잘못된 알고리즘은 아니지만 시각적 인 가장자리에 약간의 문제가있을 것입니다. . –

답변

3

그것은 답변의 대부분은 지금까지 전용 이미지 주문 폐색을 논의 내게 붙어 :

나는 현재 내 프로젝트 중 하나에서이 문제에 대해 생각하고, 나는이 몇 가지 아이디어를 자극 발견했습니다 . 전적으로 CAD에 대해 확신 할 수 없지만 BSP 트리, oct 트리 및/또는 포털 렌더링을 사용하여 훨씬 더 높은 레벨에서 게임 오 클루 전이 시작되어 뷰잉 프러스 텀 내에 나타나는 객체를 신속하게 결정합니다.

+0

+1. DirectX/OpenGL은 이미 (Z-buffer를 통해) 볼 수있는 것들만 그리기에 적절합니다. 더 나은 성능을 얻기 위해 랜더링 할 물건의 양을 제한하려면 이러한 알고리즘 중 하나를 조사해야합니다. –

+0

예; 하지만 픽셀 기반 오 클루 젼을 제외하고 D3D 나 OpenGL은 씬 그래프 "마술"을합니다. 클리핑과 컬링은 렌더링 장치에 알려진 모든 폴리곤을 전송하는 것을 정당화하기에 충분하지 않습니다. –

5

게임에서 occlusion은 DirectX 또는 OpenGL이라는 두 가지 3D 라이브러리 중 하나를 사용하여 장면 뒤에서 수행됩니다. 구체적으로 들어가려면 Z buffer을 사용하여 폐색합니다. 각 점에는 Z 성분이 있으며 점은 더 멀리있는 가까운 폐색 점입니다.

일반적으로 오 클루 젼 알고리즘은 DirectX 또는 OpenGL 기능을 구현하는 전용 3D 그래픽 처리 칩으로 하드웨어에서 수행됩니다. DirectX 또는 OpenGL을 사용하는 게임 프로그램은 3D 공간에서 객체를 그리고 OpenGL/DirectX 라이브러리에서 투영 및 교합을 고려하여 장면을 렌더링합니다.

2

검색해야하는 용어는 hidden surface removal입니다.

실시간 렌더링은 일반적으로 숨겨진 표면 제거의 간단한 방법 중 하나 인 백 페이스 컬링을 이용합니다. 각 폴리에는 표면으로부터 설정된 거리에서 사전 계산되는 "표면 법선"점이 있습니다. 카메라에 대한 서페이스 법선의 각도를 확인하면 서페이스가 바깥쪽으로 향하게되므로 렌더링 할 필요가 없습니다.

여기는 대화 형 flash-based demos and explanations입니다.

+0

이 프로세스는 필요하지만 충분하지 않습니다. 오목한 물체는 여전히 표면이 올바른 순서로 렌더링되어야하며 한 물체가 다른 물체의 앞에 나타나면 간단한 후면 컬링이 도움이되지 않습니다. –

+0

Z 버퍼링이 이미 언급되었으므로 backface culling이라는 이름을 사용했습니다. 더 이상 글을 쓰면 링크 된 Wikipedia 페이지를 대부분 반복 할 수 있습니다. – spoulson

1

하드웨어 픽셀 Z 버퍼링은 훨씬 간단한 기술이지만 고밀도 오브젝트 장면에서 여전히 동일한 픽셀을 여러 번 렌더링하려고 할 수 있으며 일부 상황에서는 성능 문제가 될 수 있습니다. - 보이지 않는 수천 개의 객체를 매핑하고 텍스쳐링하지 않도록해야합니다. http://www.cs.tau.ac.il/~dcor/Graphics/adv-slides/short-image-based-culling.pdf