HOME > Detail View

Detail View

iPhone 3D programming : using OpenGL ES (Loan 17 times)

Material type
단행본
Personal Author
Rideout, Philip 강권학, 역
Title Statement
iPhone 3D programming : using OpenGL ES / 필립 라이드아웃 지음 ; 강권학 옮김
Publication, Distribution, etc
서울 :   한빛미디어,   2010  
Physical Medium
560 p. : 삽화 ; 24 cm
Series Statement
한빛미디어 모바일 시리즈 ;09
Varied Title
iPhone 3D programming : developing graphical applications with OpenGL ES
ISBN
9788979147759
General Note
색인수록  
Subject Added Entry-Topical Term
iPhone (Smartphone) -- Programming
000 00971camcc2200313 c 4500
001 000045621249
005 20101210185843
007 ta
008 101209s2010 ulka 001c kor
020 ▼a 9788979147759 ▼g 93560
035 ▼a (KERIS)BIB000012206233
040 ▼a 241026 ▼c 241026 ▼d 211009
041 1 ▼a kor ▼h eng
082 0 4 ▼a 005.26 ▼2 22
085 ▼a 005.26 ▼2 DDCK
090 ▼a 005.26 ▼b 2010z11
100 1 ▼a Rideout, Philip
245 1 0 ▼a iPhone 3D programming : ▼b using OpenGL ES / ▼d 필립 라이드아웃 지음 ; ▼e 강권학 옮김
246 1 9 ▼a iPhone 3D programming : ▼b developing graphical applications with OpenGL ES
260 ▼a 서울 : ▼b 한빛미디어, ▼c 2010
300 ▼a 560 p. : ▼b 삽화 ; ▼c 24 cm
440 0 0 ▼a 한빛미디어 모바일 시리즈 ; ▼v 09
500 ▼a 색인수록
630 0 0 ▼a OpenGL
650 0 ▼a iPhone (Smartphone) ▼x Programming
700 1 ▼a 강권학, ▼e
900 1 0 ▼a 라이드아웃, 필립, ▼e
945 ▼a KLPA

Holdings Information

No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Science & Engineering Library/Sci-Info(Stacks1)/ Call Number 005.26 2010z11 Accession No. 121200696 Availability Available Due Date Make a Reservation Service B M
No. 2 Location Science & Engineering Library/Sci-Info(Stacks1)/ Call Number 005.26 2010z11 Accession No. 121200697 Availability Available Due Date Make a Reservation Service B M

Contents information

Book Introduction

OpenGL ES 1.1/2.0을 이용한 아이폰용 3차원 그래픽스 프로그래밍을 배울 수 있는 책. 애플 앱스토어의 절반 가량은 게임이 차지하고 있으며, 이런 게임들은 화려한 3차원 그래픽을 뽐내고 있다. 아이폰은 3차원 그래픽을 구현을 위해서 OpenGL을 사용한다. 이 책은 간단한 OpenGL 앱에서 물리엔진 효과를 구현한 애니메이션까지 제작한다. 아이폰에서 3차원 그래픽 앱 개발하려는 개발자들이 빠르게 배우고 프로젝트에 응용할 수 있도록 도와준다.

두려워하지 말라! 3D는 괴물이 아니다!
이 책은 아이폰은 물론 iOS 운영체제를 탑재한 아이패드, 아이팟 터치에서 유용한 OpenGL ES 그래픽스 프로그래밍 기법을 다뤘다. 기존에 아이폰 개발 및 3차원 그래픽스 프로그래밍 경험이 없어도 걱정하지 말자! 아이폰 SDK와 OpenGL ES 사용법부터 시작하여 여러 실용적인 정보와 예제와 함께라면, 3D 프래그래밍! 더는 두렵지 않다!

아이폰 주변 장치를 활용한 모바일 증강현실을 구현하라!
증강현실이란 먼 나라 이야기 아니야? 그렇지 않다! 이 책이 제시한 간단한 예제부터 복잡한 예제까지 다양한 그래픽스 프로그램을 개발하다 보면 카메라, 가속 센서, 나침반 등의 주변장치를 활용한 멋진 모바일 증강현실 앱을 개발할 수 있다. 친절한 예제는 6장에서 다룬다. 여러분은 단지 C++ 언어에 대한 기반지식과 멋진 앱에 대한 아이디어만 있으면 된다.

이 책의 내용
아이폰 3D 앱을 개발을 위한 환경 구현
변환 행렬, 사원수와 같은 기초적인 그래픽스 개념
VBO, 조명, 텍스쳐, 셰이더
대화형 앱 개발을 위한 터치 스크린, 나침반, 가속 센서
깊이와 현실감 향상을 위한 조명과 깊이 버퍼
텍스쳐와 이미지 캡쳐
블렌딩과 증강 현실
3차원 와이어 프레임 뷰어
스프링 시뮬레이션
최적화

사전 지식
이 책을 읽기 전에 C++ 프로그래밍 경험이 필요하다. Objective-C 프로그래밍 경험은 도움이 되지만 꼭 필요하지는 않다.


Information Provided By: : Aladin

Author Introduction

필립 라이드아웃(지은이)

10여년 동안 실시간 그래픽스 프로그래밍에 전념해 왔다. 그는 인터그라프, 3D랩스, 엔비디아 등 컴퓨터 그래픽스를 선도하는 회사들에서 일해왔다. 현재 필립은 덴버에 위치한 메디칼 시뮬레이션 코포레이션Medical Simulation Corporation에서 인간의 육체를 시각화하는 새로운 기술을 개발하고 있다.

강권학(옮긴이)

중앙대학교 컴퓨터공학과에서 학사와 석사학위를 받았다. 국방과학연구소, 퓨쳐시스템, 안철수연구소에서 13년간 개발자, 보안전문가, 프로젝트 관리자로 근무하였으며, 2009년 4월 호주 멜버른에 iGonagi Pty. Ltd.를 설립하고 아이폰 애플리케이션을 개발하고 있다. 번역서로는 『게임 디자인 레벨업 가이드(공역)』, 『Head First Python』, 『안드로이드 시큐리티 인터널』, 『Head First JavaScript Programming』, 『비즈니스를 위한 데이터 과학』, 『C++ AMP』, 『Head First C』, 『iPhone 3D Programming』, 『iPhone Programming(공역)』, 『Head First iPhone Development』(이상 한빛미디어) 등이 있다.

Information Provided By: : Aladin

Table of Contents

1장. 들어가며
1. 애플 환경에 적응하기
Objective-C
 2. OpenGL ES의 간략한 역사
3. 적절한 OpenGL ES 버전 선택하기
4. 시작하기
 아이폰 SDK 설치하기
OpenGL 템플릿을 이용하여 Xcode로 앱 만들기
 아이폰 디바이스에 설치하기
5. 고정 기능을 사용한 HelloArrow
 3D 앱의 코드 구조
 처음부터 시작하기
OpenGL과 쿼츠 라이브러리 연결하기
UIView 클래스 상속하기
 앱 델리게이트에 연결하기
 아이콘과 시작 이미지 설정
 상태 바 처리하기
 렌더링 엔진 인터페이스 정의하기
 렌더링 엔진 구현하기
 디바이스 방향 변경 처리하기
 회전을 애니메이션하기
6. 셰이더를 사용한 HelloArrow
셰이더
 프레임워크
GLView
렌더링 엔진 구현
7. 결론

2장. 수학과 비유 
1. 공장 조립라인에 비유하기
2. 정점으로 기본 요소 조립하기
3. 정점에 속성 연결하기
4. 정점의 일생
5. 사진에 비유하기
 모델 행렬 설정하기
 뷰 변환 설정하기
 투상 변환 설정하기
6. 행렬 스택을 사용하여 변환 상태를 저장하고 읽기
7. 애니메이션
 여러 보간법들
 사원수를 사용한 회전 애니메이션
8. C++로 벡터를 깔끔하게 사용하기
9. 고정기능 함수를 사용한 HelloCone
렌더링 엔진(RenderingEngine) 선언
OpenGL 초기화 및 원뿔형을 다각형 분할하기
 부드러운 3차원 회전
Render() 함수
10. 셰이더를 사용한 HelloCone
 11. 결론

3장. 정점과 터치점
1. 터치스크린 읽기
2. 정점을 인덱싱하여 메모리 절약하기
3. 정점 버퍼 객체를 사용하여 성능 향상시키기
4. 와이어 프레임 뷰어 생성하기
 재미로 만드는 파라메트릭 곡면
 인터페이스 설계
 트랙볼 회전 처리하기
 렌더링 엔진 구현하기
 기본적인 탭바
 화면 전환 애니메이션
5. 결론

4장. 깊이와 현실감 향상시키기
1. 깊이 버퍼 알아보기
 깊이 버퍼의 문제점에 유의하자
2. 깊이 버퍼를 생성하고 사용하기
3. 와이어 프레임을 삼각형으로 채우기
4. 법선 벡터
OpenGL에 법선 벡터 입력하기
 법선 벡터에 관련된 수학
 법선은 변환 행렬로 변환할 수 없다
 파라메트릭 곡면에서 법선 생성하기
5. 조명 적용하기 
 주변광
 확산광 모델
 경면광으로 빛나는 부분 만들기
 조명을 ModelViewer에 추가하기
 조명 속성 사용하기
6. 셰이더 알아보기
7. ModelViewer에 셰이더 추가하기
 새로운 렌더링 엔진
 픽셀 단위 조명
 툰 셰이딩
8. 폴리곤 오프셋을 사용한 개선된 와이어 프레임
9. OBJ 파일에서 기하 데이터 로딩하기
 리소스 파일 관리하기
ISurface 구현하기
10. 결론

5장. 텍스쳐와 이미지 캡쳐
1. ModelViewer에 텍스쳐 추가하기
IResourceManager 개선하기
 텍스쳐 좌표 생성하기
ES1::RenderingEngine 클래스에 텍스쳐 사용하기
ES2::RenderingEngine 클래스에 텍스쳐 사용하기
2. 텍스쳐 좌표 상세 설명
3. 필터링으로 에일리어싱 문제 해결하기
 밉맵으로 텍스쳐 품질과 성능 향상시키기
 밉맵을 지원하도록 ModelViewer 수정하기
4. 텍스쳐 포맷과 데이터 형
 실전: 여러 가지 포맷 로드하기
5. PVRTC로 텍스쳐 압축하기
6. PowerVR SDK와 저정밀도 텍스쳐
7. 쿼츠를 사용해서 OpenGL 텍스쳐를 생성하고 변환하기
8. 텍스쳐 크기에 관한 제약
POT 크기로 변환
9. 카메라로 텍스쳐 생성하기
CameraTexture: 렌더링 엔진 구현
10. 결론

6장. 블렌딩과 증강 현실
1. 블렌딩 방법
2. 미리 곱해진 알파 텍스쳐 다루기
3. 블렌딩할 때 주의점
4. 블렌딩 확장 기능 사용
 블렌딩 설정이 유용한 이유는?
5. 정점의 색상을 사용하여 텍스쳐 색상을 바꾸기
6. 스텐실 버퍼를 사용한 반사 효과
 원반을 스텐실에만 렌더링하기
 스텐실 테스트를 사용하여 반사된 객체 렌더링하기
 원래 객체 렌더링하기
 원반을 앞에서 뒤로 블렌딩하면서 렌더링하기
7. 스텐실을 지원하지 않는 구형 아이폰을 위한 방법
8. 오프-스크린 FBO를 사용한 앤티 에일리어싱 기법
 수퍼샘플링하는 정말 간단한 예제 프로그램
 지터링
 그 외 FBO 효과들
9. 텍스쳐를 사용하여 앤티 에일리어싱된 선 렌더링하기
10. Holodeck 예제
 앱 구조
 원형 돔, 구름, 글자 렌더링하기
 전방 투상 장치 처리하기
3축 가속 센서 사용하기
 카메라의 실시간 이미지를 오버레이하기
11. 결론

7장. 스프라이트와 텍스트
1. 텍스트 렌더링을 이용하여 FPS 카운터 그리기
 파이썬으로 글리프 텍스쳐 생성하기
FPS 텍스트 렌더링하기
2. glDrawTexOES() 명령으로 간단하게 텍스쳐 사각형 렌더링하기
3. 거리장을 사용하여 텍스트를 더 또렷하게 보이기
 파이썬으로 거리장 생성하기
ES 1.1에서 알파 테스팅으로 거리장 사용하기
 프래그먼트 셰이더를 사용하여 텍스트 효과 추가하기
 스무딩과 도함수
 윤곽선, 작열, 그림자 효과 구현하기
4. 스프라이트 시트로 애니메이션 만들기
5. 이미지를 분할하여 여러 텍스쳐처럼 보이기
6. OpenGL ES와 UIKit 혼합하기
7. 색종이 꽃가루와 불꽃 놀이와 같은 포인트 스프라이트 렌더링하기
8. 7장 마지막 예제: SpringyStars
물리학 탐방: 질량-스프링 시스템
C++ 인터페이스와 GLView
 ApplicationEngine 구현
OpenGL ES 1.1 렌더링 엔진과 가산 블렌딩
OpenGL ES 2.0으로 포인트 스프라이트 사용하기
9. 결론

8장. 고급 조명과 텍스쳐
1. OpenGL ES 1.1에서의 텍스쳐 환경
 텍스쳐 혼합기
2. 범프 매핑과 DOT3 조명
 선형 대수학 조금 더 살펴보기
 기저 벡터 생성하기
OpenGL ES 2.0으로 법선 매핑하기
OpenGL ES 1.1로 법선 매핑하기
 객체 공간 법선 맵 생성하기
3. 큐브 맵을 사용하여 반사 이미지 렌더링하기
 큐브 맵에 렌더링하기
4. 이방성 필터링: 스테로이드 위의 텍스쳐
5. 이미지 처리 예제: 블룸
 혼합 방식으로 성능 개선하기
 가우스 블룸 예제 코드
6. 결론

9장. 최적화
1. 인스트루먼트
2. CPU/GPU 분배 이해하기
3. 정 로딩: VBO 객체의 저 너머에
 한꺼번에 그리자
 인터리브된 정점 속성
 정점 포맷을 최적화하기
 적합한 위상과 인덱스를 사용하자
4. 조명 최적화 기법들
 객체 공간 조명
DOT3 조명 복습
 표면 고정 조명
5. 텍스쳐 최적화
6. 컬링과 절단
 다각형 와인딩
 사용자 절단면
CPU 기반 클리핑
7. 셰이더 성능
 분기문
 프래그먼트 킬
 텍스쳐 룩업은 성능을 저해한다!
8. 정점 스키닝으로 애니메이션 최적화하기
 스키닝: 공통 코드
OpenGL ES 2.0으로 스키닝하기
OpenGL ES 1.1로 스키닝하기
 무게와 인덱스 생성하기
 핀칭을 주의하자
9. 참고 문헌

부록. C++ 벡터 라이브러리

New Arrivals Books in Related Fields

이창현 (2021)