2017-02-24 5 views
1

Google Daydream 용 게임을 개발 중이며 사용되는 카메라가 혼란 스럽습니다. 모든 매개 변수가 장면이 시작될 때 동일한 값으로 설정됩니다. 처음에는 다른 오브젝트 메쉬가 서로 클리핑되는 문제가있었습니다. 이 문제에 대한 해결책은 nearClippingPlane을 더 높은 값으로 설정하는 것입니다. 이것은 나의 배의 조종실이 전체적으로 렌더링되지 않은 다음 문제를 야기했다. 왜냐하면이 nearClippingPlane이 너무 멀리 있기 때문이다. 나는 조종석 만 렌더링 할 다른 카메라를 만들려고했지만 이전에 언급 한 바대로 작동하지 않습니다 (카메라가 이상하게 작동 함). 스크립트를 통해 설정하면 제대로 작동하지 않습니다.개체/레이어를 클리핑면 근처에서 무시하는 방법?

그 때문에 카메라가 아닌 객체의 속성을 일부 변경해야합니다. this을 찾았지만 farClippingPlane에서만 작동합니다 (그렇지 않으면 완벽 할 것입니다). 두 번째 카메라를 추가하지 않고도 한 객체/레이어에 대해 nearClippingPlane을 어떻게 무시할 수 있습니까? 기본적으로 화합 보호기는 16 비트 버퍼를 사용하는 것 https://en.wikipedia.org/wiki/Z-fighting

참고 :

+0

나는 설명하는 것이 가능하다고 생각하지 않습니다. Camera.layerCullDistances는 너무 가까워 지거나 너무 멀리 떨어져있을 때 객체를 완전히 자르지 않고 사라지게합니다. 네가 찾고있는 것은 카메라 도려내 기 마스크라고 생각해. 이렇게하면 특정 카메라의 특정 레이어에있는 객체 만 렌더링 할 수 있습니다. – Jespertheend

+0

@Jespertheend'Camera.layerCullDistances'는 특정 laer에 대해'farClipPlane'을 설정할 수있게 해주 며'nearClipPlane'으로 같은 일을 할 수 있다면 완벽 할 것입니다. 또한 두 개의 카메라가 필요하기 때문에 가면을 도려내 기가 어렵습니다. 이전에 쓴 것 때문에 작동하지 않을 수도 있습니다. –

+0

화합에 근처의 물건을 도용 할 수있는 옵션이 있어도 작동하지 않을 것이라고 생각합니다. 내가 아는 한,'Camera.layerCullDistances'는 전체 객체를 사라지게하고, 이후에는 클리핑 팬을 적용합니다. 그래서 조종실의 가까운 도려 거리를 설정할 수 있다고하더라도 여전히 렌더링하지는 못합니다.최선의 방법은 가까운 곳과 먼 곳의 클립 보드를 가장 잘 작동하는 부분으로 조정하거나 여러 대의 카메라로 작동하도록 설정하는 것입니다. – Jespertheend

답변

2

대해서는 또 다른 목적은 이러한 것으로 인해 Z- 파이팅에 일어나고, 클리핑 메쉬. 이것은 플레이어 설정 -> 다른 설정 -> Virtual Reality SDKs -> Daydream을 통해 액세스 할 수 있습니다.

32 비트 깊이 버퍼로 전환 은 작은 nearClippingPlane 값을 사용하여 조종실의 개체와 멀리있는 개체를 모두 렌더링 할 수 있습니다. 그러나 이것은 대부분 완화이며 클립 작업 문제가 발생할 수 있습니다. 또한 깊이 버퍼에서 사용하는 메모리와 대역폭이 두 배로 증가하므로 성능에 미치는 영향이 있습니다.

시도한 것처럼 여러 대의 카메라를 사용할 수 있어야합니다. 카메라의 Depth 속성을 사용하여 조종석 카메라를 두 번째로 렌더링하고 "조종석"및 "환경"카메라를 만듭니다. 그러면 환경이 먼저 렌더링되고 조종실 내의 모든 객체를 무시할 수 있습니다. 이것은 가까운 비행기를 꽤 멀리 밀어 낼 수 있다는 장점이 있습니다.

다음으로, 조종석 카메라를 깨끗한 깊이로 설정하십시오. 조종석에있을 수있는 물체 만 둘러싸도록 조종석 카메라를 설정할 수 있습니다. 이제 렌더러는 환경을 보존하지만 두 가지 깊이 범위를 사용할 수 있습니다. 다중 렌더링 패스가 추가 메모리 전송을 초래하고 렌더링 도중에 심도 버퍼를 지워야하기 때문에 이는 모바일 장치에 성능에 영향을 미칩니다.

개체에 대해 별도의 레이어를 만드는 것이 좋습니다. "조종실"과 "환경"을 사용하여 사물이 두 번 렌더링되는 것을 방지합니다.

Sample scene with two cameras, note the difference in near/far values