Oculus Spec
주관적인 의견으로는 오큘러스 고의 화질은 그렇게 좋진 않다. 안경쓴 사람은 늘 그렇듯 착용하기 힘들고, 같이 주는 안경을 쓸 수 있개 고무패드? 같은것들을 주는데 마땅히 쓸일 없을것 같다.. 100%의 완전한 충전으로 2시간~3시간가량의 영상을 볼 수 있다는데... 아직 배터리의 부족함은 느끼지 못한것 같다.
개발함에서 어려운 점은, 명령프롬프트 창을 열고 'adb Install apk의 주소'를 입력 하거나
'adb Uninstall 프로젝트명(com.Company.Name)'는 등등 명령어로 처리 해야하는 부분이 있다. 처음 초기 개발자 셋팅이 어렵진 않지만 귀찮을 수 있으며, 개발자에게 약간 불친절? 한 느낌을 받았다.
오큘러스 고 해상도 변경
출처: https://www.clien.net/service/board/lecture/12193042
안녕하세요, 오큘러스 고 사용중에 클리앙에 올리신 사용기 글을 보고
우연히 해상도 향상법을 알게 됐는데... 적용해보니 효과가 너무 드라마틱하게 좋아서 좀 더 자세히 알아보고 글 써서 공유해봅니다.
먼저 사용기에 글 써서 해당 정보 알려주신 까샨님 정말 감사합니다.
오큘러스 고는 2560 x 1440 해상도를 지원하는 기기입니다.
그런데 오큘러스 고에서 어플을 구동시키게 되면 이 해상도를 모두 활용하지 않습니다. sky box와 같은 동영상 앱을 작동시켰을 때만 해상도를 모두 활용하고, 대다수의 앱에서는 1024 해상도로만 작동하게 되어있습니다. 이는 기어 대다수 앱이 기어 vr에 최적화되어있기 때문으로 보입니다. 배터리, 발열 문제도 있을테고요.
현재 오큘러스 스토어에 있는 어플은 대부분 갤럭시 s7 정도 스펙에 최적화 되어 있습니다. 오큘러스 고는 갤럭시 s7과 동일한 스냅드래곤 821 칩셋을 탑재하고 있지만, 주변부 저해상도 렌더링 및 기타 트윅, 그리고 따로 휴대폰 관련 서비스가 없어 리소스를 낭비하지 않는다는 점, 발열 제어가 훨씬 나은 점 등의 여러 요인으로 인해 갤럭시 s7보다 훨씬 나은 성능을 보여줍니다. 이건 제 뇌피셜이 아니라 https://developer.oculus.com/blog/optimizing-oculus-go-for-performance/ 이곳에 자세한 설명이 나와있슴다.
이런 성능상 이점 덕분에, 해상도를 1.5배에서 2배 정도 높여도 대다수의 앱 구동에 별 문제가 없으며
텍스쳐 1.5배 향상의 경우 프레임 드랍이 있는 어플은 거의 없었습니다.
추후 오큘러스 go에 맞게 해상도 설정 및 그래픽 옵션 설정이 다 된다면 아래에서 소개할 트윅은 별 필요가 없어질 것이라고 합니다. 그러나 아직은 거의 모든 앱이 기어 vr에 최적화 되어 있기 때문에 매우 유용한 정보입니다.
아래에 설정법을 공유합니다.
1. 먼저, 오큘러스 go가 페어링된 휴대폰에서 Oculus 어플에 들어갑니다.
2. 어플에 들어간 후 설정에 들어가면, 현재 연결된 오큘러스 Go 헤드셋이 뜹니다. 아래와 같습니다.

3. <설정 더보기> 탭을 클릭하세요. 그 다음 <개발자 모드>를 눌러주세요.
개발자 모드를 켜게 되면 바로 활성화 되지 않고 인터넷 창이 하나 뜰겁니다.
여기서 양식 입력하기 누르시고 원하는 이름 입력하시면 됩니다. 그런 후 다시 돌아와 개발자모드를 켜주세요.
아이폰은 이 메뉴가 바로 뜨지 않는다고 합니다!!!
오큘러스 홈페이지에서 먼저 오큘러스 개발자 등록을 해야 해당 메뉴가 보이는 듯합니다.
4. https://dl.google.com/android/repository/platform-tools-latest-windows.zip <<< 클릭해서 adb 받아주세요.
압축 풀어주세요! 경로는 c드라이브, adb 폴더 만들어서 압축 풀면 됩니다.
경로가 위와 같이 설정되어있는지 확인해주세요. 맞다면 다음 단계로 넘어가시면 됩니다.
5. 거의 다 왔습니다. 이제 오큘러스 고 헤드셋을 컴퓨터에 연결해주세요.
연결하시고, 오큘고 화면 보시면 데이터 전송 권한 수락해달라는 창이 뜹니다. 수락 눌러주세요.
6. 명령 프롬프트를 실행해주세요. 시작 누르시고 명령 프롬프트라고 검색하시면 바로 뜹니다.
실행되면, cd/adb/platform-tools 라고 입력 후 엔터.
이렇게 뜨면 정상입니다. 혹시 안되시는 분들은 다른 경로에 adb 설치하신 분들일텐데, 경로 알맞게 입력하시면 됩니다.
7. 다시 명령 프롬프트에 adb devices 라고 입력해주세요.
오큘러스 고 해드셋이 검색될겁니다. 시리얼 넘버가 뜰거예요.
1KWP어쩌구저저구8171 device
이런식으로요. 저렇게 안뜨면 오큘러스 헤드셋 한 번 써보세요! 권한 요구하는 창이 떠있으면 확인 눌러주시면 됩니다.
8. 이제 해상도를 바꿔봅시다.
* 트윅은 오큘러스 고 전원이 껐다가 켜지면 초기화 된다는 것을 알아두셔야 합니다.
만약 전원 껐다가 켰다면 다시 pc 연결해서 cmd로 다시 설정해주셔야 합니다ㅜ
슬립모드 들어갔다 나오는걸로는 초기화되지 않습니다.
1536 해상도 (1.5배)
adb shell setprop debug.oculus.textureWidth 1536
adb shell setprop debug.oculus.textureHeight 1536
입력하시면 됩니다.
한번에 한 줄 치고 엔터, 두 줄 모두 입력하세요. 자세히 보시면 둘이 다릅니다!
2048 해상도(2배 텍스쳐 해상도)로 올리고 싶으시면,
위 명령어의 1536 부분을 2048으로 바꾸시면 됩니다.
그러나 2048 설정은 권장하는 설정이 아니라고 하네요.
기본적으로 오큘러스 고는 렌즈 중앙 부분의 화면에 대해 1536 해상도를 지원하기 때문에 이 이상 해상도를 높이는 것은
효과가 적을 뿐더러 다운 스케일링으로 인한 앨리어싱을 유발할 수 있다고 합니다.
@ 추가로,
해외 포럼에서는 색수차 보정 및 FFR 옵션을 포함해서 아래와 같이 설정을 조정하는 것이 좋다고 말하고 있습니다.
베스트 세팅값 아래에 적어드립니다!
글 수정합니다. 적힌 옵션 중 마지막 줄은 약간의 문제가 있습니다. 일단 해상도와 FFR만 적용해주세요! (세번째 줄 까지)
조만간 글 업데이트하겠습니다
adb shell setprop debug.oculus.textureWidth 1536
adb shell setprop debug.oculus.textureHeight 1536
adb shell setprop debug.oculus.foveation.level 3
세번째 줄이 FFR 설정입니다. 옵션 적용시 화면 가장자리를 흐릿하게 렌더링해서 gpu 부하를 줄여줍니다.
Ultrawings 같은 최신 게임들에는 이미 적용되어서 나오지만, 대부분의 기어 vr용 게임에는 적용되어있지 않습니다.
강제로 옵션을 켜주세요. 일부 고퀄 게임들에서 프레임 향상 확인했습ㄴ디ㅏ.
마지막줄 CA 옵션은 일단 보류... 오큘러스 홈에서 약간 오류가 있습니다. 색수차 보정 옵션인데 크게 중요한 옵션은 아닙니다.
해상도 부분은 직접 써보시고 원하는 대로 조정하시면 되겠습니다. 2048에서는 약간 프레임 떨어지는 앱들이 몇 있긴 합니다
네.. 간단하죠? 끝입니다. 정상 적용되었습니다. 기본 메뉴, 오큘홈, 동영상 소스(sky box나 pigasus 어플에서는 극장 퀄리티만 증가하고 영상 재생 퀄리티는 원래 최대해상도라 그대로입니다)에는 적용되지 않습니다. 기타 게임, 체험 어플 등에서 적용됩니다.
!!! 주의하실것은, 해상도 트윅 적용 시 배터리 타임이 대략 30프로정도 줄어든다고 합니다. 저는 보조배터리를 연결해서 사용하고 있어서 문제가 없지만, 아닌 분들께는 문제가 될 수 있을 것 같아요.
위에서 말씀드렸듯이,
이 트윅은 오큘러스 고 전원이 껐다 켜지면 초기화됩니다. 다시 명령 프롬프트 열어서 위 명령어 입력해주셔야 합니다.
(슬립모드 들어갔다 나와도 초기화되지 않습니다)
저는 적용하고 ultrawings를 비롯해서 몇 개 어플을 일단 켜봤는데,
와.. 다른 기기 쓰는 기분이네요. 긴 말이 필요 없습니다. 화질 별로라 지웠던 어플들 다 다시 받고있습니다.
궁금한 점은 댓글 남겨주세요. 바로바로 대답해드리겠습니다. 감사합니다.
(혹시나 해서 적습니다... 까샨님 글에 나와있는 Max CPU/GPU 설정은 하지 마세요.. 오히려 프레임 드랍이 생깁니다 ㅠㅠ)
참고
아.. 그리고 한가지 부탁드릴게 있습니다 ㅠㅠ
If the user picks 1536 & no FFR is set yet, automatically set it to 1/low. At this resolution, the extra pixels in the periphery is already wasted, and low FFR won't make any visible difference. (By the way, 1536 is 1.52 = 2.25x the resolution of 1024 since you're comparing areas.)
FFR (Fixed Foveated Rendering) 옵션에 대해서는 조금 더 정보가 필요한데, 저 위의 말이 무슨 뜻인지 정확히 알려주실 분 계신가요? ㅠㅠ
////////////////
Add higher video bitrates, or make it a user input (in Mbps) from 5-80. Depending on the experience, even 10Mbps would be insufficient from removing blocking artifacts. In the worst case I've seen (Twobit), even 40Mbps will contain artifacts.
이 부분도 정확히 번역해 주실 분 계신가요? 부탁드립니다..
Double video capture bitrate (60Mbps)
adb shell setprop debug.oculus.videoBitrate 60000000
오큘러스 고 에서의 4k, 8k
내용: https://developer.oculus.com/documentation/mobilesdk/latest/concepts/mobile-media-overview/#mobile-media-overview
간단히 설명하자면 4k까지는 재생할 수 있지만, 그 이하로 낮춰 재생하길 권장한다.
영상 제작
- 이번에 작업물을 오큘러스 고에 설치 해야 하는 일이 있었는데, 원래 초기 버전은 PC플랫폼 Vive를 활용한 프로젝트를 카메라만 교체해 오큘러스 고에 설치 해야 했다.
당연하게도, 최적화의 문제와 최적화의 문제... 최적화의 문제가 존재했다.
그래서 해당 프로젝트를 영상으로 촬영하여, 오큘러스 고에 넣기로 했다.
https://assetstore.unity.com/packages/tools/video/vr-panorama-360-pro-renderer-35102
위의 에셋을 구매하여 360 영상을 촬영 한 후에 영상을 오큘러스 고에 설치하려 했지만,
프로젝트와 버전이 맞지 않아 애를 조금 먹었다.
영상 출력
설명: https://blogs.unity3d.com/kr/2018/01/19/getting-started-in-interactive-360-video-download-our-sample-project/
에셋 설치: https://www.assetstore.unity3d.com/en/#!/content/108974
위의 설명과 링크에서 제공하는 에셋을 활용 하여, 360영상의 실행을 기본적으로 익혔는데,
우선Unity 207.3.0이상에서 제공하는 Video Component 를 활용하는 방식이었다.
영상을 Material 에다가 입힐지 해상도에 맞춰서 Texture에 Mesh모양대로 출력할지... 대체적으로 간단한 컴포넌트 이니 https://docs.unity3d.com/kr/2018.3/Manual/class-VideoPlayer.html 이 문서를 참고하면 좋을것 같다.
정보 상 잘 못된 자료가 있다면 댓글 남겨주시면 감사하겠습니다.