2017-05-20 10 views
2

3D 엔진이 맵의 모든 단일 객체를 분석하여 렌더링 여부를 확인해야합니까? 나의 이해는 보기 계획에서 픽셀에 투사의 중심에서 라인는, 엔진이 교차 가장 가까운 계획을 찾을 수 있지만, 각 픽셀에 대한 것을 의미하지 것입니다 엔진은 모든 개체을 분석해야합니다. 분석 대상을 제한하는 방법이 있습니다.렌더링하기 전에 3D 엔진이 모든 맵 객체를 분석해야합니까?

도움 주셔서 감사합니다.

+1

그리드, kd- 트리, 바운딩 볼륨 계층 구조 등과 같은 가속 데이터 구조의 작업입니다. –

+0

@NicoSchertler 감사합니다. 대답에 넣지 마십시오. 당신은 내가 원하는 것을 가지고 있어요. – habibhassani

답변

3

이러한 절차를 frustum-culling algorithm이라고합니다.

당신은 또한 여기에 대한 자세한 정보를 찾을 수 있습니다 : -

는 당신을 위해 무엇을 추구하는 객체가 완전히 다른 뒤에 숨겨진 또 다른 최적화는 "occlusion culling"(다른 관련 링크 "Most efficient algorithm for mesh-level, optimal occlusion culling?)"와 동일하지 않습니다, 조심하십시오. 대부분의 게임 엔진이 객체에 의해 렌더링

주 (많은 삼각형의 팩 - 대략 말하기, draw calls를 통해),하지 당신이 이해 하듯이 각 픽셀 (ray-tracing)를 추적하여.

레이 트레이싱은 대부분의 실시간 응용 프로그램에서 너무 비쌉니다.

+0

대단히 감사합니다. 그러나 나는 절두체 컬링을하기 전에 원하는 것을 놓쳤다 고 생각합니다. 좀 더 효율적인 절두체 컬링을위한 오브젝트를 제한 할 무언가가 필요합니다. 절두체 도려내 기가 절두체 양 내부의 분석 대상을 제한하여 오 클루 전 제거 속도를 빠르게 할 때처럼 절두체 컬링을 할 때마다지도의 모든 개체를 분석 할 수는 없습니다. – habibhassani

+1

@habibhassani 당신은 이전 프레임과 현재 프레임의 결과 (뷰 안의 오브젝트 목록)가 그렇게 다르지 않다는 가정에 이점을 취할 수있는 알고리즘/데이터 구조를 의미합니까? 그렇다면 PDF 링크가 원하는 내용을 다룰 수 있습니다. – javaLover