가상현실(VR)이 전 세계를 홀리고 있다. 지난 몇 년간 많은 VR 개발자와 전문가가 새로운 플랫폼을 개발하고 디자인하고 기획하며 오큘러스 리프트, 삼성 기어 VR, 구글 카드보드 VR과 같은 쓸만한 하드웨어가 출시됐다. 게임뿐 아니라 영화, 건축, 교육, 훈련, 의료에 이르기까지 VR 활용이 활발히 논의되고 있다. 『VR 첫걸음』은 바로 그 VR 애플리케이션 개발에 대한 책이다. PC와 모바일, 웹 VR 애플리케이션 개발의 기초를 다루고 101가지 관련 기술을 수록한 VR 개발 입문서다.
이 책은 VR 개발자로의 첫걸음을 떼게 해준다. VR을 심도 있게 다루지는 않지만, 핵심 프로그래밍 개념과 VR을 가능케 한 하드웨어와 소프트웨어에 대한 광범위한 내용을 다룬다. 또한, 크게 세 가지 다른 개발 환경(안드로이드 스튜디오, 유니티5, HTML5 웹 개발)과 다양한 프로그래밍 언어(C#, 자바, HTML5)를 사용해 세 가지 주요 플랫폼(PC, 모바일, 웹)의 VR 개발을 설명한다.
이 책 한 권이면 모바일, PC 애플리케이션 개발자, 또는 유니티에 대한 경험이 있는 게임 개발자는 어렵지 않게 VR 애플리케이션 개발을 시작할 수 있을 것이다.
이 책의 내용은 다음과 같다.
1장과 2장에서는 VR 콘셉트를 소개하고 새로운 VR 하드웨어를 훑어 본다.
3장부터 6장에서는 VR 개발에 대한 자세한 내용을 다룬다. 이 책에서 가장 중요한 부분으로, 현재 대세 VR 시스템들인 오큘러스 리프트, 기어 VR, 카드보드 VR을 활용한 개발을 진행한다. 또한, 최근 인기 있는 웹브라우저인 파이어폭스와 크롬의 개발자 버전에서 지원하는 새로운 자바스크립트 API인 WebVR을 이용한 웹 기반 VR 애플리케이션 개발도 다룬다.
마지막 7장에서는 앞서 배운 내용을 활용해 유니티로 제작한 360도 파노라마 VR 포토 뷰어(Photo Viewer)를 개발해 본다.
chapter 1 소개
1.1 VR이란 무엇인가
_1.1.1 3차원 디스플레이
_1.1.2 모션 트래킹 하드웨어
_1.1.3 입력 장치
_1.1.4 컴퓨터 플랫폼
1.2 VR 애플리케이션
1.3 요약
chapter 2 VR 하드웨어
2.1 오큘러스 리프트
_2.1.1 개발 키트 1
_2.1.2 개발 키트 2
_2.1.3 크레센트 베이
_2.1.4 설정하기
2.2 기타 하이엔드 HMD
2.3 삼성 기어 VR: 고급스런 휴대용 VR
_2.3.1 오큘러스 모바일 SDK
2.4 구글 카드보드: 스마트폰을 이용한 저렴한 VR
_2.4.1 카드보드의 입체 영상 렌더링과 헤드 트래킹
_2.4.2 카드보드 VR 입력
_2.4.3 구글 카드보드 개발
2.5 VR 입력 하드웨어
2.6 요약
chapter 3 기본 애플리케이션: PC 기반 오큘러스 리프트 개발
3.1 3차원 컴퓨터 그래픽스 기본
_3.1.1 3차원 좌표계
_3.1.2 메시, 다각형, 꼭짓점
_3.1.3 머티리얼, 텍스처, 조명
_3.1.4 변환과 행렬
_3.1.5 카메라와 뷰포트, 원근투영
_3.1.6 입체 영상 렌더링
3.2 유니티: 일반인들을 위한 게임 엔진
3.3 오큘러스 SDK 설정
_3.3.1 유니티 환경설정
3.4 첫 번째 VR 예제
_3.4.1 애플리케이션 빌드 및 실행
_3.4.2 코드로 알아보기
3.5 요약
chapter 4 모바일: 기어 VR 개발
4.1 기어 VR의 유저 인터페이스와 오큘러스 홈
4.2 오큘러스 모바일 SDK 이용하기
_4.2.1 안드로이드 SDK 설정
_4.2.2 오큘러스 서명파일 생성
_4.2.3 USB 디버깅을 위한 디바이스 세팅
4.3 유니티를 이용한 기어 VR 개발
_4.3.1 유니티 환경설정 _4.3.2 간단한 유니티 샘플
_4.3.3 터치패드 이벤트 처리
4.4 기어 VR 애플리케이션 배포
4.5 요약
chapter 5 WebVR: HTML5를 이용한 브라우저 VR
5.1 WebVR의 간략한 역사
5.2 WebVR API
_5.2.1 지원되는 브라우저 및 하드웨어
_5.2.2 VR 하드웨어 탐색
_5.2.3 VR 전체화면 모드 설정
_5.2.4 헤드 크래킹
5.3 애플리케이션 만들기
_5.3.1 Three.js: 자바스크립트 3D 엔진
_5.3.2 전체 예제
5.4 WebVR을 만들기 위한 도구와 기술들
_5.4.1 WebVR 엔진과 개발 툴
_5.4.2 WebVR 개발에 유니티와 언리얼 게임 엔진 사용하기
_5.4.3 오픈 소스 라이브러리와 프레임워크들
5.5 WebVR과 웹 브라우저의 미래
5.6 요약
chapter 6 VR Everywhere: 저렴한 모바일 VR을 위한 구글 카드보드
6.1 카드보드 기본
_6.1.1 지원 가능한 하드웨어와 운영체제
_6.1.2 카드보드 제작사들
6.2 카드보드 애플리케이션
_6.2.1 카드보드용 입력장치
6.3 카드보드 입체 렌더링과 트래킹
6.4 안드로이드용 카드보드 SDK로 개발하는 방법
_6.4.1 환경설정
_6.4.2 코드 따라 하기
6.5 유니티용 카드보드 SDK를 이용한 개발
_6.5.1 SDK 설정
_6.5.2 유니티용 트레저 헌트 빌드
_6.5.3 유니티 코드
6.6 HTML5와 모바일 브라우저용 카드보드 애플리케이션 개발
_6.6.1 WebVR 프로젝트 설정
_6.6.2 자바스크립트 카드보드 코드
6.7 요약
chapter 7 첫 번째 VR 시뮬레이션
7.1 360도 파노라마에 대해
7.2 프로젝트 설정
_7.2.1 소프트웨어, 하드웨어, 샘플 코드 얻기
_7.2.2 유니티 장면 및 프로젝트 만들기
7.3 Cardboard VR Support 추가
7.4 Gaze-and-Tap 유저 인터페이스 만들기
_7.4.1 2D 평면 생성
_7.4.2 프로젝트에 Input Support 추가하기
_7.4.3 이벤트 핸들러 스크립트 만들기
_7.4.4 자석 스위치 이벤트 핸들링
_7.4.5 유저 인터페이스 만들기
7.5 프로젝트를 진행할 곳은 어디인가
7.6 요약
부록 알고 나면 유용한 VR 정보들
부록.1 VR 헤드셋
부록.2 입력장치
부록.3 360도 비디오
부록.4 플래그십 경험
부록.5 주목할 만한 기업들
부록.6 다운로드 사이트
부록.7 WebVR 쇼케이스 및 애플리케이션
부록.8 디바이스 SDK
부록.9 게임 엔진 미들웨어
부록.10 프로그래밍 언어
부록.11 소프트웨어 프레임워크
부록.12 웹사이트
부록.13 미트업 그룹