메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

iPhone 3D Programming(아이폰 3D프로그래밍): using OpenGL ES

iPhone 3D Programming(아이폰 3D프로그래밍): using OpenGL ES

한빛미디어

번역서

절판

  • 저자 : 필립 라이드아웃
  • 번역 : 강권학
  • 출간 : 2010-10-26
  • 페이지 : 560 쪽
  • ISBN : 9788979147759
  • 물류코드 :1775
  • 초급 초중급 중급 중고급 고급
0점 (0명)
좋아요 : 21

두려워하지 말라! 3D는 괴물이 아니다!

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

아이폰 주변 장치를 활용한 모바일 증강현실을 구현하라!

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

이 책의 내용

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

사전 지식

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

추천사

"이 책은 독자가 최대한 빠른 시일 내에 OpenGL ES를 사용하여 아이폰 앱 개발 능력을 갖출 수 있도록 하는 데 초점을 맞추고 있다."
- 세르반 포럼베스큐 박사. 타퓰러스Tapulous 선임 게임플레이 엔지니어

필립 라이드아웃 저자

필립 라이드아웃

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

강권학 역자

강권학

중앙대학교 컴퓨터공학과에서 학사와 석사학위를 받았다. 국방과학연구소, 퓨쳐시스템, 안철수연구소에서 13년간 개발자, 보안전문가, 프로젝트 관리자로 근무하였으며, 2009년 4월 호주 멜번에 iGonagi Pty. Ltd.를 설립하고 아이폰 애플리케이션을 개발하고 있다. 『Head First iPhone Development』, 『Head First Programming』, 『iPhone Programming 제대로 배우기』, 『iPhone 3D Programming: using OpenGL ES』(이상 한빛미디어)를 번역했다.

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++ 벡터 라이브러리

  • 첫번째 리뷰어가 되어주세요.
  • 결제하기
    • 문화비 소득공제 가능
    • 배송료 : 2,000원배송료란?

    배송료 안내

    • 20,000원 이상 구매시 도서 배송 무료
    • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

    무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

    닫기

    리뷰쓰기

    닫기
    * 도서명 :
    iPhone 3D Programming(아이폰 3D프로그래밍): using OpenGL ES
    * 제목 :
    * 별점평가
    * 내용 :

    * 리뷰 작성시 유의사항

    글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

    1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
    2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

    오탈자 등록

    닫기
    * 도서명 :
    iPhone 3D Programming(아이폰 3D프로그래밍): using OpenGL ES
    * 구분 :
    * 상품 버전
    종이책 PDF ePub
    * 페이지 :
    * 위치정보 :
    * 내용 :

    도서 인증

    닫기
    도서명*
    iPhone 3D Programming(아이폰 3D프로그래밍): using OpenGL ES
    구입처*
    구입일*
    부가기호*
    부가기호 안내

    * 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

    * 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

    * 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

    닫기

    해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
    장바구니로 이동하시겠습니까?

    자료실