VR과 절두체 컬링


13

VR (스테레오 뷰) 환경을 렌더링 할 때 절두체 컬링 패스 중에 무엇을 그릴 지 결정하기 위해 두 개의 절두체 검사를 수행하는 것이 좋습니다. 두 절두체를 결합 할 수있는 다른 검사가 있습니까?

답변:


13

오큘 러스 (Oculus)의 Cass Everitt가 만든이 다이어그램에서 볼 수 있듯이 두 개의 개별 안구 절두를 둘러싸는 단일 절두체를 만드는 것은 매우 쉽습니다. 이 절두체의 꼭짓점을 눈 사이와 약간 뒤에 배치해야합니다. 안구 절두의 원래 근거리와 일치하도록 근거리 거리를 늘릴 수도 있습니다.

여기에 이미지 설명을 입력하십시오

이러한 절두체에는 원래 두 절두체가 결합되지 않은 작은 공간이 포함됩니다. 두 눈 사이에는 작은 양이 있습니다. 또한 다이어그램에는 세로 치수가 표시되지 않지만 절두체 정점을 뒤로 당기면 원래 절두체 위와 아래에 약간의 공간이 포함됩니다. 그러나 실제 컬링 목적을 위해서는 중요하지 않을 것입니다. 절두체 컬링은 일반적으로 보수적이며 여분의 공간은 두께가 몇 센티미터에 불과합니다.

또한 외부 평면과 함께 원래 절두체 상단 및 하단 평면 (눈 사이에 공유 됨)을 간단하게 컬링 할 수도 있습니다. 이러한 평면은 기술적으로 절두체를 형성하지 않지만 한 번에 하나의 평면에 대해 테스트하는 "일반적인"컬링 알고리즘을 사용하는 경우 알고리즘은 사용자가 제공하는 모든 평면에서 행복하게 작동합니다.

프레임마다 두 번 다시 실행하지 않고 눈 사이에 절두체 컬링, LOD 선택 등을 공유하는 것은 스테레오 렌더링의 CPU 비용을 최적화하는 좋은 방법입니다. 인스턴스화 된 스테레오 렌더링 과 같이 단일 패스로 두 눈을 그리는 렌더링 방법을 사용하려는 경우에도 필수 조건 입니다.


2
고마워 네이터는 정확히 내가 찾은 것인데,이 다이어그램을 어디서 구할 수 있었습니까? 오큘 러스의 공개 문서에 있습니까?
Garry Wallis 5

2
@GarryWallis Cass 는 몇 달 전에 트윗을했습니다 .
Nathan Reed

5

필요한 경우 Everitt의 결과를 일반화했습니다.

일반화 된 절두체

보너스로 눈의 관점에서 left0 / right0을 추출하는 방법은 다음과 같습니다.

left0   = n0 * (Mle13 - 1) / Mle11;
right1  = n1 * (Mre13 + 1) / Mre11;

행 메이저가 있다면. 전공을 바꿉니다. cf 이 답변


4

컬링에 단일 절두체를 사용하면 눈의 결합 된 시야가 180도 미만인 경우에만 작동합니다. 이제 약 200도 더 넓은 시야를 가진 VR 헤드셋이 있습니다 (예 : Pimax 5k +StarVR) . 180도 이상의 화각에 대해 전통적인 뷰 프러스 텀 또는 단일 프로젝션 매트릭스를 구성하는 것은 불가능합니다.

이 헤드셋은 앵글 스크린을 사용하므로 시야 공간의 투영 평면과 순방향 벡터가 평행하지 않습니다. 다른 답변의 방정식은 방정식이 평행하다고 가정하고 해당 가정이 잘못된 경우 잘못된 결과를 생성합니다.

하나의 결합 된 뷰 프러스 텀이 여전히 유용 할 수 있지만, 코드가 향후 증거임을 보장하기 위해이를 구성 할 수없는 경우를 처리 할 수 ​​있도록 코드를 준비해야합니다. 또는 시선별로 컬링을 수행하거나 180 도보 다 큰 FOV를 표현할 수있는 각도 기반 컬링으로 전환하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.