삼성 Gear VR 실전 사례

Gear VR 헤드셋을 최대한 활용하는 법에 대한 정보입니다.

Choose your operating system:

Windows

macOS

Linux

가상현실(VR) 프로젝트용 콘텐츠 개발시, 사용자에게 최적의 VR 경험을 선사하기 위해 꼭 해 줘야만 하는 일이 몇 가지 있습니다. 이 실전 사례 안내에서는 삼성 Gear VR 헤드셋과 삼성 갤럭시 스마트폰을 사용해서 프로젝트를 확인할 때 최적의 경험을 보장하기 위해 알아야 하는 모든 것에 대해 다루겠습니다.

Gear VR 렌더링 옵션

Gear VR 헤드셋과 삼성 갤럭시 스마트폰과의 결합으로 매우 몰입도 높은 VR 경험을 선사하는 것이 가능하기는 하지만, Gear VR 헤드셋 하드웨어상의 한계로 인해 UE4 가 할 수 없는 렌더링 기능이 몇 가지 있습니다. 그 한계 중 많은 부분은 모바일 디바이스 제약과 유사합니다. 여기서는 그 요구사항이 무엇이고 Gear VR 프로젝트에 어떻게 영향을 끼치는지 알아보겠습니다.

모바일 멀티뷰 & 멀티뷰 디렉트 렌더링

UE4 GearVR 프로젝트가 CPU 에 묶여있는 경우 Mobile Multi-View (모바일 멀티뷰) 또는 Mobile Multi-View Direct (모바일 멀티뷰 디렉트) 옵션을 켜면 퍼포먼스 향상에 도움이 될 수 있습니다. 이 옵션은 프로젝트 세팅 > Rendering (렌더링) > VR 에서 찾을 수 있습니다.

MobileMultiView.png

  • Mobile Multi-View : 모바일 멀티뷰를 켜면, 왼쪽 눈 버퍼에 오브젝트를 한 번 렌더링한 후, 버텍스 위치와 리플렉션과 같은 뷰 종속 변수를 적절히 변경하여 오른쪽 버퍼에 자동 복제합니다.

  • Mobile Multi-View Direct : 모바일 멀티뷰의 강화된 버전으로, 렌더링해야 하는 전체화면 사본 수가 적습니다. 대부분의 경우에서 GPU 부하를 크게 감소시켜 줍니다.

참고로 모바일 멀티뷰를 켠 상태에서만 모바일 멀티뷰 디렉트를 켤 수 있습니다. Mobile Multi-View 관련 자세한 내용은 Oculus Developer site 를 참고하세요.

모노스코픽 파 필드

Monoscopic Far Field 렌더링(, 보다 정확하게는 하이브리드 모노스코픽 렌더링)은 UE4 로 제작중인 VR 모바일 어플리케이션용 고급 렌더링 기능입니다. 일반적으로 모노스코픽 파 필드 렌더링은 원거리 콘텐츠가 많이 있는 레벨의 퍼포먼스를 향상시켜 줍니다. 그 이유는 원거리 오브젝트를 양쪽 눈에 한 번씩만 렌더링하기 때문입니다. 에픽에서는 이런 식으로 오브젝트를 렌더링했더니 VR 모바일 어플리케이션의 퍼포먼스에 큰 향상이 보였습니다.

모바일 HDR

Gear VR 프로젝트는 모바일 HDR 을 지원하지 않으므로, 활성화시켜서는 안됩니다.

포스트 프로세싱

Gear VR 의 높은 렌더링 요구사항으로 인해, 다수의 포스트 프로세싱 기능이 작동하지 않습니다. Gear VR 헤드셋용으로 개발중인 프로젝트에 작동되는 포스트 프로세스 기능 전체 목록은 다음과 같습니다.

포스트 프로세싱 섹션

기능 이름

설명

Auto Exposure (자동 노출)

Exposure Bias (노출 편향)

씬의 밝기를 높이거나 낮추는 데 사용할 수 있습니다.

머티리얼

Gear VR 프로젝트용 머티리얼을 만들고 조작하는 작업은 다른 프로젝트용 머티리얼을 만들고 조작하는 작업과 매우 유사합니다. 그대로 머티리얼 에디터를 사용해서 머티리얼을 만들고, 그 안의 여러가지 머티리얼 노드를 사용할 수도 있습니다. 하지만 Gear VR 용 머티리얼을 만들 때는 Gear VR 헤드셋에 작동되도록 하기 위해 지켜야 하는 제약/고려사항이 몇 가지 있습니다. 예를 들어 다음과 같은 머티리얼 입력만 Gear VR 헤드셋에 통합니다.

머티리얼 입력 이름

설명

베이스 컬러

머티리얼의 전체적인 색을 나타내는 바탕색입니다.

러프니스

머티리얼의 거친 또는 부드러운 정도를 나타내는 거칠기입니다.

메탈릭

머티리얼의 금속성 정도를 나타냅니다.

스페큘러

리플렉션(빛이 반사되는 부분)의 강도를 나타냅니다.

노멀

실제 비용이 많이 드는 모델링을 하지 않고도 디테일을 살려줍니다.

이미시브

머티리얼 일부분을 빛을 내뿜는 발광 부분으로 만들어 줍니다.

오파시티

무언가를 통과해서 볼 수 있는 정도를 나타내는 불투명도입니다.

오파시티 마스크

특정 픽셀을 통과해서 볼 수 있을지 없을지를 나타냅니다.

유념하실 것은 반투명 마스크드 머티리얼은, 특히나 스마트폰같은 하드웨어에서 렌더링 비용이 매우 비쌀 수 있습니다. 가급적 렌더링 비용이 훨씬 싼 불투명 머티리얼 을 사용하시기 바랍니다.

머티리얼 셰이딩 모델

하드웨어상의 한계로 인해 Gear VR 프로젝트에 가능한 머티리얼 셰이딩 모델은 다음과 같습니다.

셰이딩 모델 이름

설명

Default Lit

기본 라이팅포함은, 이름에서 알 수 있듯이 기본 셰이딩 모델로, 가장 자주 사용하게 될 것입니다. 이 셰이딩 모델은 직사광과 간접광뿐만 아니라 리플렉션에 대한 스페큘러도 활용합니다.

Unlit

라이팅제외 셰이딩 모델은 컬러에 이미시브만 출력하여, 불이나 빛을 비추는 오브젝트같은 특수 효과에 좋습니다.

Gear VR 프로젝트에는 가급적 비용이 가장 싼 Unlit 셰이딩 모델을 사용하시기 바랍니다.

머티리얼 블렌드 모드

Material Blend Mode 는 이미 배경에 그려진 것에 현재 머티리얼의 출력을 어떻게 혼합시킬 것인지를 나타냅니다. Gear VR 헤드셋용 콘텐츠를 만들 때 사용할 수 있는 머티리얼 블렌드 모드는 다음과 같습니다.

블렌드 모드

설명

Opaque

불투명 - 입체 오브젝트인 불투명 은 가장 저렴한 머티리얼입니다. 하지만 이름에서 알 수 있듯이, 반투명이 지원되지 않습니다. 즉 오버드로가 절대 생기지 않으며, 그 머티리얼의 한 픽셀 렌더링 시간은 노드 그래프 의 복잡도에 따라 항상 동일한 시간이 걸립니다.

Masked

마스크드 - 머티리얼에 그려지지 않는 픽셀이 필요한 경우 쓰는 옵션입니다. 이 머티리얼은 마스크로 걸러낸 영역에만 오버드로가 발생합니다. 하지만 머티리얼 자체는 100% 불투명이거나 100% 투명입니다. 마스크로 걸러내는 영역이 클 수록 오버드로 발생량도 늘어납니다. 즉 더 비싸진다는 뜻입니다.

Translucent

반투명 - 가장 비싼 블렌드 모드입니다. 마스크드 불투명 같아 보일 수 있지만, 실제 투명한지 아닌지와는 상관없이 퍼포먼스에 추가적인 영향을 끼칩니다.

Additive

더하기 - 반투명 의 저렴한 버전입니다. 픽셀 소팅을 할 필요가 없이 그냥 씬에 더합니다. 즉 밝아지기만 한다는 뜻입니다. 머티리얼의 검정 픽셀은 씬에 영향을 끼치지 않습니다.

Modulated

변조 - 반투명 대안 중 두 번째로 저렴한 버전으로, 픽셀에 씬을 곱합니다. 즉 씬이 어두워지기만 한다는 뜻입니다.

Modulate 블렌드 모드를 사용할 때는 머티리얼의 Separate Translucency (독립 반투명) 옵션을 꺼야 제대로 컴파일됩니다.

T_Separate_Trans.png

모바일 전용 머티리얼 세팅

메인 머티리얼 노드의 디테일 패널 아래 보면 Mobile 이라는 섹션이 있습니다. 여기 있는 세팅은 모바일 디바이스에서 머티리얼의 렌더링 비용을 낮추는 데 도움이 됩니다.

프로퍼티

설명

Fully Rough

최대 거칠기 - 켜면 약간의 셰이더 ALU 인스트럭션과 샘플러 하나가 절약됩니다. 이 옵션을 켜면 전체적인 반사 에너지는 유지하면서 스페큘러만 끄는 효과를 냅니다.

Use Lightmap Directionality

라이트맵 방향성 사용 - 끄면 라이트맵의 라이팅이 평이해 지지만 저렴해집니다.

Customized UVs

Customized UVs 는 특정 셰이더의 연산을 픽셀 셰이더가 아닌 버텍스 셰이더로 옮겨 의존 텍스처 페치를 피하는 데 도움이 됩니다. Customized UVs 를 사용하면 텍스처를 원래보다 화려해 보이도록 만들기 위해 UV 조작같은 간단한 작업에 드는 퍼포먼스를 많은 부분 환수하는 것이 가능합니다. 가급적 모든 UV 조작 작업은, 특히나 Gear VR 헤드셋용 콘텐츠 개발시에는 Customized UVs 를 사용하도록 하십시오.

Customized UVs 는 현재 스태틱 메시, 스켈레탈 메시, BSP, 랜드스케이프, 메시 파티클과 같은 특정 컴포넌트 유형에만 구현됩니다.

리플렉션

Gear VR 은 스크린 스페이스 리플렉션(SSR)을 지원하지 않습니다. 즉 레벨에 배치된 리플렉션 캡처 액터 에서 오는 리플렉션만 생성 가능하다는 뜻입니다. 또 한가지, 리플렉션 액터에서 생성되는 리플렉션은 하드웨어상의 한계로 인해 정확도가 매우 높지는 않다는 점 유념하시기 바랍니다.

Gear VR & 콘텐츠 구성

Gear VR 프로젝트용 아트 콘텐츠를 만들 때 Gear VR 헤드셋에서 프로젝트가 가급적 부드럽게 실행될 수 있게끔 하기 위해 염두에 둬야 하는 것들이 몇 가지 있습니다. 여기서는 Gear VR 헤드셋용 아트 콘텐츠 제작시 유념해야 하는 것에 대해 다뤄보겠습니다.

콘텐츠 하드웨어 제약

모바일 디바이스 하드웨어상의 제약으로 인해 콘텐츠 제작시 다음과 같은 사항을 반드시 준수해야 합니다. 그렇지 못할 경우 Gear VR 프로젝트가 정상 작동하지 않을 것입니다.

  • 모바일 하드웨어에서는 32 비트 인덱스가 지원되지 않기에, 모든 메시 유형의 버텍스는 최대 65,000 개 까지입니다.

  • 스켈레탈 메시의 본 최대 갯수는 75 개입니다.

메시 고려사항

Gear VR 프로젝트에 사용할 메시 제작시 Gear VR 헤드셋에 잘 통하도록 하기 위해 유념할 정보는 다음과 같습니다.

텍스처 고려사항

Gear VR 프로젝트에 사용할 텍스처 제작시 프로젝트의 전반적인 퍼포먼스에 악영향을 끼치지 않도록 하기 위해 유념해야 할 정보는 다음과 같습니다.

  • 텍스처의 X 나 Y 중 한 쪽 크기가 2048 보다 크면 안됩니다 .

  • 텍스처 크기는 반드시 2 제곱수(2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048)여야 합니다.

  • Gear VR 에 최대 512 MB 의 텍스처를 메모리에 로드할 수는 있지만, 128 MB 이상 로드하는 것은 바람직하지 않습니다.

  • 가급적 메모리 효율이 좋은 정사각 텍스처를 사용합니다.

  • 가급적 텍스처 아틀라싱 을 활용하여 메모리에 필요한 텍스처 수를 줄입니다.

  • RGB 텍스처 마스킹 / 패킹 은 메모리의 고유 텍스처 수를 줄이기에 뛰어난 방법입니다.

  • 모바일 플랫폼에서 지원되는 TC_Default TC_NormalMap 압축 세팅만 사용해야 합니다.

레벨 고려사항

Gear VR 에서 레벨의 퍼포먼스를 최대한 이끌어내는 것은, 오랜 시간 공을 들여야 하는 미묘한 밸런싱 작업입니다. 다음과 같은 제안/주안점을 살펴보면 Gear VR 헤드셋으로 봤을 때 퍼포먼스 문제가 생길 수 있는 레벨 영역을 빠르게 알아내는데 도움이 됩니다.

  • 항상 최적의 퍼포먼스를 낼 수 있도록 레벨 라이팅 빌드 가 되었는지 확인합니다. 화면에 빨강 Lighting needs to be rebuilt (라이팅 리빌드 필요) 오류 메시지가 보인다면, 라이팅을 다시 빌드해야 한다는 뜻입니다.

  • 레벨의 모든 라이트가 스태틱 으로 설정되었는지 확인합니다. 다른 라이팅 옵션은 렌더링 비용이 매우 비쌀 수 있습니다.

  • 레벨에 Precomputed Visibility 볼륨이 사용되었는지 확인하고, 사용되지 않았으면 레벨에 추가한 다음 레벨의 월드 세팅에서 켜주고 라이팅을 다시 빌드합니다.

  • 전체 씬의 드로 콜은 어떤 뷰에서든 100 보다 커서는 안됩니다. 확인하는 명령은 디바이스에선 stat openglrhi , PC 의 ES2 프리뷰어에서는 stat d3d11rhi 입니다.

  • 레벨의 총 트라이앵글 수는 어떤 뷰에서든 100,000 이하여야 합니다. 확인하는 명령은 디바이스에서 stat openglrhi , PC 의 ES2 프리뷰어에서 stat d3d11rhi 입니다.

  • 반투명 및 불투명 마스크드 머티리얼은 렌더링 비용이 매우 비싸므로, 레벨에 사용할 때는 매우 주의하시기 바랍니다.

  • 레벨에 퍼포먼스 프로파일링 을 자주 하여 퍼포먼스 문제를 종종 잡아내도록 합니다.

언리얼 엔진 문서의 미래를 함께 만들어주세요! 더 나은 서비스를 제공할 수 있도록 문서 사용에 대한 피드백을 주세요.
설문조사에 참여해 주세요
건너뛰기