목차
감사의 글 ... 11
저자 소개 ... 12
역자의 글 ... 13
감수의 글 ... 15
추천의 글 ... 16
서문 ... 18
Chapter 1. 아이폰을 위한 3D 개발 시작하기 ... 27
시작하기 ... 27
소프트웨어 설치 ... 28
아이폰 SDK ... 28
블렌더 설치하기 ... 30
SIO2 설치하기 ... 31
프로그램 다운로드 ... 31
SIO2 개발환경 설정 ... 31
Xcode에서 SIO2 템플릿 빌드하기 ... 32
문제해결 ... 37
Chapter 2. SIO2 그래픽 프로그래밍 소개 ... 39
SIO2 템플릿 ... 40
간단한 OpenGL 데모 ... 44
OpenGL ES로 그래픽 콘텐츠 생성 ... 44
변환 자세히 살펴보기 ... 48
변환의 순서 ... 49
행렬스택의 사용 ... 49
상호작용의 기초 ... 52
전체코드 ... 55
Chapter 3. 블렌더/SIO2/아이폰과의 첫 만남 ... 59
블렌더/SIO2/Xcode 워크플로우 ... 59
SIO2 개요 ... 60
3D 세계와의 첫 만남! 블렌더에서 새로운 세상 만들기 ... 62
세계와 배경을 모델링, 텍스처링하기 ... 62
조명, 카메라 그리고 배경 ... 75
SIO2 포맷으로 추출하기 ... 83
추출 스크립트 ... 83
세계 추출하기 ... 86
.sio2 파일 포맷 ... 87
Chapter 4. 모바일에서 SIO2 사용하기 ... 91
SIO2 초기화와 에셋 로딩 ... 91
헤더와 프로토타입 ... 92
templateLoading 함수 ... 93
렌더링 ... 98
회전하는 지구본 만들기 ... 99
조명 넣기 ... 100
문제해결 ... 101
화면 터치를 통한 상호작용 ... 103
회전 제어 ... 104
화면 탭과 화면 터치 이동 다루기 ... 105
전체 코드 ... 106
Chapter 5. 피킹과 텍스트를 이용한 피드백의 확장 ... 109
객체 피킹하기 ... 110
블렌더에서의 간단한 피킹 예제 ... 110
SIO2에서 색 기반의 피킹 구현하기 ... 116
피킹 코드 자세히 살펴보기 ... 120
Hello3DWorld에 피킹 기능 추가하기 ... 123
텍스트와 폰트 다루기 ... 126
비트맵 폰트 ... 126
SIO2에서의 폰트와 머티리얼 ... 127
폰트 로딩하기 ... 127
폰트 렌더하기 ... 129
멀티터치 기능 사용하기 ... 133
애플리케이션 패키징 ... 134
전체코드 ... 136
Chapter 6. SIO2에서 몰입형 환경 만들기 ... 143
하늘과 땅 모델링하기 ... 143
블렌더에서 평지 만들기 ... 144
SIO2를 위한 단단한 땅 ... 158
그럴듯한 하늘 돔 만들기 ... 159
sio2 파일 추출하기 ... 171
SIO2에서 몰입형 환경 만들기 ... 172
화면 설정 ... 172
templateLoading 함수 ... 172
templateRender 함수 ... 175
templateScreenTap 함수 ... 176
물리 시뮬레이션 설정하기 ... 177
카메라를 움직여 환경 탐험하기 ... 180
templateRender에서의 이동 ... 181
templateScreenTap에서의 이동 ... 182
templateScreenTouchMove 함수 ... 182
전체코드 ... 184
EAGLview.mm ... 184
template.mm ... 186
Chapter 7. 물체와 물리 객체 ... 191
텍스처 표면 객체와 투명성 ... 192
블렌더에서의 알파 텍스처링 ... 193
SIO2에서 알파 투명도 렌더하기 ... 196
빌보드를 이용하여 나무 생성하기 ... 198
상호작용하는 객체들에 대한 물리적 성질 ... 204
강체 객체 ... 204
장애물에 대한 정적 물리 ... 207
효율적인 객체 조작을 위한 가상 인스턴싱 ... 209
Low-Poly 충돌 맵 다루기 ... 211
전체 코드 ... 214
Chapter 8. 캐릭터 움직이기 ... 219
블렌더에서 캐릭터 움직이기 ... 220
간단한 보행주기 만들기 ... 224
기본 모션과 NLA Strips 만들기 ... 231
SIO2에 액션 넣기 ... 237
걷게 만들기 ... 243
반응이 빠른 실시간 그림자 ... 246
전체코드 ... 250
Chapter 9. 위젯 다루기 ... 257
위젯으로 스플래시 만들기 ... 257
이미지 포맷 선택하기 ... 258
iFrankie를 위한 위젯 그래픽 ... 259
SIO2에서 Active Widget 생성하기 ... 260
위젯 변수 선언하기 ... 261
위젯과 에셋 로딩하기 ... 261
Button 콜백 함수 ... 266
Template 렌더 함수 ... 267
게임 렌더 함수 ... 269
전체코드 ... 270
부록 A. 블렌더 기초 ... 277
인터페이스와 네비게이션 ... 278
윈도우와 헤더 ... 278
레이어 ... 280
3D 공간 탐색 ... 281
공간상에서의 회전, 패닝, 확대 ... 281
숫자패드 사용하기 ... 281
3D 커서 ... 282
모델링 ... 284
객체와 Object 모드 ... 284
선택하기 ... 284
3D 변환하기 ... 284
객체를 삭제, 추가하기 ... 286
메시와 Edit 모드 ... 286
선택하기 ... 286
3D 변환하기 ... 286
메시 모델링 도구 ... 287
비례편집 ... 289
법선 ... 290
아머츄어와 리깅 ... 291
머티리얼과 텍스처 ... 294
머티리얼 ... 295
UV 텍스처링 ... 297
언래핑과 매핑 ... 298
텍스처 설정 ... 298
텍스처 베이킹 ... 301
애니메이션 ... 302
아이포 커브 ... 302
액션과 비선형 애니메이션 ... 302
부록 B. 그래픽 프로그래밍 핵심 ... 305
좌표계, 행렬, 변환 ... 305
행렬 수식 ... 307
변환 ... 307
모델/뷰 변환 ... 308
투영변환 ... 309
행렬곱에 의한 변환 ... 311
행렬의 곱 ... 311
행렬의 변환 ... 313
3D 행렬변환 ... 315
행렬과 OpenGL ... 316
부록 C. SIO2 레퍼런스 ... 319
SIO2 학습자료 ... 319
공식 SIO2 튜토리얼과 샘플코드들 ... 320
SIO2 Meditation Garden으로 한계를 초월하자 ... 322
Hoops Frenzy에서 점수 쌓기 ... 322
SIO2 Backyard War로 파워업하기 ... 323
SIO2 포럼 ... 323
.sio2 파일 포맷 ... 323
SIO2 플래그 값 ... 328
SIO2 함수 ... 331
찾아보기 ... 332
닫기