2009-02-26 5 views
2

gluPerspective() 함수는 가까운 Z 및 먼 Z 클리핑 평면을 설정하는 데 사용할 수 있습니다.다중 뷰 프러스 텀 클리핑

특정 먼 Z 평면에서 클리핑 된 장면을 그려야하고 이 Z 평면을 넘어 다른 장면을 그립니다. 프레임 당 두 번 클리핑을 수행 할 수 있습니까?

답변

1

이렇게하면 안됩니다.

첫 번째 원근감을 설정하고 첫 번째 씬을 그린 다음 두 번째 원근감을 설정하고 초 프레임을 같은 프레임의 그림 내에서 모두 그립니다.
일반적으로 멀티 패스 렌더링이라고합니다.

1

가장 가까운 장면을 그리기 전에 가장 먼 장면을 먼저 그리 고 glClear(GL_DEPTH_BUFFER_BIT);을 수행해야 할 수도 있습니다.

1

장면에 대해 다른 깊이 범위를 지정할 가능성이 있습니다. 일부 유사 코드는 다음과 같습니다.

glDepthRange(0.5, 1.0) 
    draw_far_scene 
    glDepthRange(0.0, 0.5) 
    draw_near_scene 

니어/원거리 장면에 대한 적절한 클리핑을 수행하려면 프로젝션 매트릭스를 설정해야합니다.

깊이 버퍼가 두 버퍼링을 '병합'하지 못하도록하려면 범위를 지정해야합니다.