Top

Ogre 3D 한국어판 [오픈소스 3D 게임엔진 오거3D 프로그래밍]

  • 원서명OGRE 3D 1.7 Beginner's Guide (ISBN 9781849512480)
  • 지은이펠릭스 커거
  • 옮긴이주의종
  • ISBN : 9788960772830
  • 30,000원
  • 2012년 03월 07일 펴냄
  • 페이퍼백 | 344쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 게임 개발 프로그래밍

책 소개

오픈소스 3D 게임엔진인 오거3D를 처음 공부하려는 사람을 위한 책으로, 간단한 예제를 통해 차근차근 지식을 쌓아갈 수 있도록 구성했다. 오거3D의 기본적인 설치와 시작 과정부터 셰이더나 파티클 시스템 같은 어려운 기술까지 폭넓은 주제를 다룬다. 또한 어려운 용어나 복잡한 내용은 최대한 배제하고 쉽게 설명함으로써 기본적인 프로그래밍만 이해하더라도 충분히 예제를 따라하고 쉽게 오거3D를 습득할 수 있다.


[ 소개 ]

오거3D 초보자를 위한 쉬운 예제와 학습 위주의 단계별 학습 가이드

『Ogre 3D 한국어판』은 즐거운 3D 애플리케이션의 개발 학습을 도와주는 책이다. 이 책을 통해 멋진 게임이나 시뮬레이션을 만들 수 있다. 이 책은 아주 기초적인 내용부터 복잡한 장면이나 멋진 효과들을 만들 수 있게 도와준다. 또한 당신만의 몬스터, 우주 전함, 무기, 적 등을 간단히 만들 수 있게 도와준다.


[ 이 책에서 다루는 내용 ]

■ 오거3D의 기초 학습
■ 씬 그래프의 이해
■ 오거3D를 이용한 3D 씬 개발
■ 복잡한 씬 개발
■ 셰이더의 개발과 적용
■ 광원과 그림자 추가
■ 컴포지터와 포스트 프로세싱 효과
■ 사용자 컨트롤과 애니메이션의 학습
■ 플러그인을 이용한 오거3D의 확장


[ 이 책의 대상 독자 ]

이 책은 예제를 중심으로 설명하기 때문에 오거3D로 애플리케이션을 개발하려는 사람에게 좋은 가이드가 될 것이다. 하지만 책의 예제를 이해하고 따라가려면 그전에 먼저 C++에 대한 이해가 필요하다. 이 책은 예제를 중심으로 진행하는 오거3D 입문서다. 각 예제는 단계적으로 새로운 기능을 소개하며, 씬에 오거3D의 효과들을 더해 가면서 차근차근 공부할 수 있다. 한 주제에 대한 예제가 끝나면 예제 없이 직접 애플리케이션을 만들어 보는 도전 과제가 기다린다.


[ 이 책의 구성 ]

1장, '오거3D 설치'에서는 오거3D를 다운로드하고 설치하는 방법을 설명한다. 그리고 첫 번째 씬(Scene)을 만들면서 오거3D 학습을 시작한다.

2장, '씬 그래프'에서는 씬 그래프의 개념과 함께 3D 씬을 구성하는 데 씬 그래프가 어떻게 활용되는지 소개한다.

3장, '카메라, 광원, 그림자'에서는 씬에 광원과 그림자를 추가하고, 다양한 카메라 설정을 시도해본다.

4장, '사용자 입력과 프레임 리스너 활용'에서는 사용자 입력을 통해 애플리케이션에 상호 작용을 추가한다.

5장, '모델 애니메이션'에서는 애니메이션으로 씬에 상호 작용과 현실감을 더한다.

6장, '씬 매니저'에서는 3D 씬을 구성하는 개념들을 소개하고, 각 선택이 끼치는 영향에 대해 알아본다.

7장, '메터리얼'에서는 메터리얼과 셰이더를 사용해 애플리케이션을 유연하게 만들어보고 더 세밀하게 씬을 다듬는 방법을 설명한다.

8장, '컴포지터 프레임워크'에서는 메터리얼에 대한 지식을 바탕으로 완성된 씬에 변화를 줄 수 있는 포스트 프로세싱 효과를 추가하는 방법을 설명한다.

9장, '오거3D의 기동 과정'에서는 ExampleApplication의 도움 없이 오거3D를 사용하는 방법을 설명한다.

10장, '파티클 시스템과 오거3D 확장 기능'에서는 오거3D에서 가능한 더 어려운 기술들과 다양한 확장 기능을 소개한다.

저자/역자 소개

[ 저자 서문 ]

3D 씬(Scene)이나 게임을 만드는 일은 도전하고 싶어지는 흥미로운 주제다. 또한 결과물이 나왔을 때의 기쁨뿐만 아니라 만드는 동안의 즐거움도 함께 누릴 수 있는 분야다. 이 책은 직접 오거3D를 이용해 3D 월드를 만들 수 있게 도와준다. 오거3D는 가장 큰 오픈소스 3D 렌더링 게임엔진 중 하나이며, 사용자가 쉽게 씬을 만들고 상호 작용할 수 있게 도와준다.

이 책은 오거3D의 깊은 내용까지 다루지 않는다. 하지만 탄탄한 기초를 제공해 이 책을 읽는 사람들이 오거3D를 스스로 시작할 수 있게 도와준다. 책을 다 읽은 다음에도 책에서 다루지 않은 내용이나 복잡한 기술이 필요하면 언제든 오거3D의 문서나 위키를 통해 필요한 내용을 찾을 수 있다.


[ 저자 소개 ]

펠릭스 커거 (Felix Kerger)
독일 다름슈타드 기술 대학교(Technical University Of Darmstadt)에서 컴퓨터 과학을 전공하는 학생으로, 5년 이상 오거3D로 3D 애플리케이션을 개발해 왔다. 그는 여러 학회에서 소프트웨어 개발과 실시간 3D 애플리케이션에 대한 강연을 했으며, 3년간 프라운호퍼 대학(Fraunhofer Institute)에서 컴퓨터 그래픽스 분야의 보조 연구원으로 활동했다. 또한 프리랜서 저널리스트로도 활동 중이며, 해마다 유럽의 게임 개발자 컨퍼런스에도 참가하고 있다.


[ 옮긴이의 말 ]

오거3D를 알기 전에 내가 3D 게임을 만들기 위해 할 수 있는 선택은 그래픽스 API를 공부하고 필요한 기능들을 바닥부터 직접 구현하는 방법뿐이었다. 물론 당시에 엔진이 없었던 건 아니지만 상용 엔진은 일반인이 손에 쥐기에 턱없이 비싼 가격을 자랑했고, 그나마 있던 공개 엔진들은 부족한 문서와 기능 때문에 크게 매력적이지 못했다. 그래서 3D 게임을 만들어 보겠다고 덤볐다가 간단한 기능 하나에도 산더미 같은 작업량이 필요해 지쳐 나가떨어지기 마련이었다. 그러던 중에 당시 모 기업의 대학생 모임에서 오거3D를 처음 만나게 됐다. 혼자 만들려면 몇 날 며칠을 작업해야 하는 분량을 눈앞에서 뚝딱뚝딱 만들어내는 모습을 보고 느낀 충격과 놀라움이 아직도 생생하다(한편 굉장히 허탈하기도 했다). 이 책을 읽는 여러분도 내가 느꼈던 그 기분을 그대로 느낄 수 있기를 기대한다.

요즘은 오거3D 외에도 다양한 무료 엔진들이 등장했다. 하지만 개인적으로는 아직까지 오거3D의 아성을 넘는 엔진은 없다고 생각한다. 몇몇 분은 최근에 급부상한 엔진들을 떠올리시겠지만, 알고 보면 대부분은 공짜로 쓸 수 없는 상용엔진이다(그 엔진들의 소스까지 뜯어보기 위해서는 억 소리 나는 돈이 필요하다). 아마 내가 처음 접한 엔진이 오거3D이기 때문에 더 정이 가는 건지도 모르겠다. 오거3D는 오픈소스 엔진 중에서 가장 개발이 활발하게 이뤄지고 있고, 제공하는 기능도 상용엔진 못지 않다. 그리고 다양한 툴과 플러그인이 개발되어 있어 강력한 확장성을 겸비한 엔진이기도 하다. 또한 오픈소스 엔진답지 않게(?) 친절한 문서도 제공한다. 오픈소스 프로젝트이므로 필요하다면 언제든 엔진 내부를 들여다 볼 수도 있다.

이 책은 예제를 따라 공부하면서 차근차근 단계적으로 지식을 쌓아갈 수 있는 구성으로 되어있다. 아마 기존에 3D 프로그래밍이나 다른 엔진을 접하셨던 분들 중 C언어에 대한 지식만 가지고 계신 분들이라면 큰 어려움 없이 따라갈 수 있을 정도의 쉬운 내용이다. 어려운 용어나 복잡한 내용들은 최대한 배제하고 쉽게 설명하기 때문에 전문 지식 없이도 책을 따라가는 데는 큰 어려움 없을 것이라고 생각한다.


[ 옮긴이 소개 ]

주의종
서울과학기술대에서 컴퓨터공학을 전공했으며, 삼성 소프트웨어 멤버십에서 정회원으로 활동했다. 네이비필드, 스틸독 등의 프로젝트를 거쳐 현재는 엔씨소프트 Team Eternal에서 리니지 이터널을 개발 중이다.

목차

목차
  • 1 오거3D 설치
    • 오거3D의 다운로드와 설치
      • 실습 예제 | 오거3D의 다운로드와 설치
    • 여러 버전의 오거3D SDK
    • SDK 둘러보기
  • 오거3D 예제
    • 실습 예제 | 오거3D 예제 빌드
  • 오거3D를 이용한 첫 번째 애플리케이션
    • 실습 예제 | 프로젝트의 시작과 IDE 설정
  • ExampleApplication
  • 첫 번째 모델 불러오기
    • 실습 예제 | 모델 불러오기
  • 정리
  • 2 오거 씬 그래프
    • 씬 노드 생성
      • 실습 예제 | 씬 노드 생성
    • RootSceneNode의 사용 방법
    • 3D 좌표계
    • 씬 그래프
  • 씬 노드의 위치 설정
    • 실습 예제 | 씬 노드의 위치 설정
  • 씬 노드 회전
    • 실습 예제 | 씬 노드 회전
  • 씬 노드의 크기 변환
    • 실습 예제 | 씬 노드의 크기 변환
  • 영리한 씬 그래프 사용법
    • 실습 예제 | 씬 노드를 이용한 트리 구축
  • 씬 안의 다른 종류 공간
    • 실습 예제 | 월드 공간에서의 이동
  • 3D 씬 안의 다른 종류 공간
  • 로컬 공간에서의 이동
    • 실습 예제 | 로컬과 부모 공간에서의 이동
  • 다른 공간에서의 회전
    • 실습 예제 | 서로 다른 공간에서의 회전
  • 다른 공간에서의 크기 변환
  • 정리
  • 3 카메라, 광원, 그림자
    • 평면 생성
      • 실습 예제 | 평면 생성
    • 3D 모델 표현
  • 점광원 추가
    • 실습 예제 | 점광원 추가
  • 스팟 광원 추가
    • 실습 예제 | 스팟 광원 생성
  • 스팟 광원
  • 방향 광원
    • 실습 예제 | 방향 광원 생성
  • 생략한 내용
    • 실습 예제 | 생략한 내용 알아보기
  • 그림자 추가
    • 실습 예제 | 그림자 추가
  • 카메라 생성
    • 실습 예제 | 카메라 생성
  • 뷰포트 생성
    • 실습 예제 | 뷰포트 확인
  • 정리
  • 4 사용자 입력과 프레임 리스너 활용
    • 씬 준비
      • 실습 예제 | 씬 준비
    • 씬에 움직임 추가
      • 실습 예제 | 씬에 움직임 추가
    • FrameListener
  • 프레임 기준에서 시간 기준으로 코드 수정
    • 실습 예제 | 시간 기준으로 이동
  • 입력 지원
    • 실습 예제 | 입력 지원
  • 윈도우 핸들
  • 모델에 이동 추가
    • 실습 예제 | 신밧드 조작
  • 카메라 추가
    • 실습 예제 | 카메라가 다시 동작하게 만들기
  • 마우스 상태
  • 와이어 프레임과 포인트 렌더링 모드 추가
    • 실습 예제 | 와이어 프레임과 포인트 렌더링 모드 추가
  • 타이머 추가
    • 실습 예제 | 타이머 추가
  • 정리
  • 5 모델 애니메이션
    • 애니메이션 추가
      • 실습 예제 | 애니메이션 추가
    • 두 가지 애니메이션의 동시 재생
      • 실습 예제 | 두 번째 애니메이션 추가
    • 이제 걸어보자
      • 실습 예제 | 입력과 애니메이션 조합
    • 검 추가
      • 실습 예제 | 검 추가
    • 애니메이션
  • 모델에 저장된 애니메이션 이름 출력
    • 실습 예제 | 모든 애니메이션의 이름 출력
  • 정리
  • 6 씬 매니저
    • 빈 프로젝트부터 다시 시작
      • 실습 예제 | 빈 프로젝트 생성
    • 씬 매니저의 종류 확인
      • 실습 예제 | 씬 매니저 종류 출력
    • 씬 매니저의 역할
    • 옥트리
  • 다른 종류의 씬 매니저
    • 실습 예제 | 다른 씬 매니저 사용
  • 리소스 매니저
  • setWorldGeometry
  • 모델 직접 생성
    • 실습 예제 | 풀잎을 그릴 모델 생성
  • 매뉴얼 객체
  • 텍스처 매핑
  • 풀잎에 부피 추가
    • 실습 예제 | 삼각형을 더해 부피 만들기
  • 풀밭 만들기
    • 실습 예제 | 풀밭 만들기
  • 이름의 생성 방식 조사
    • 실습 예제 | 이름 출력
  • 정적 지오메트리
    • 실습 예제 | 정적 지오메트리 사용
  • 렌더링 파이프라인
  • 인덱스
  • 정리
  • 7 메터리얼
    • 흰색 사각형 만들기
      • 실습 예제 | 사각형 생성
    • 메터리얼 만들기
      • 실습 예제 | 메터리얼 만들기
    • 메터리얼
  • 텍스처 좌표
    • 실습 예제 | 사각형 준비
  • 다른 텍스처에서 반복 모드 사용
    • 실습 예제 | 암벽 텍스처 추가
  • 비반복 모드 사용
    • 실습 예제 | 암벽 텍스처 추가
  • 거울 모드 사용
    • 실습 예제 | 거울 모드 사용
  • 테두리 모드 사용
    • 실습 예제 | 테두리 모드 사용
  • 테두리 색 변경
    • 실습 예제 | 테두리 색 바꾸기
  • 텍스처 스크롤
    • 실습 예제 | 텍스처 스크롤 준비
    • 실습 예제 | 텍스처 스크롤
  • 스크롤 애니메이션
    • 실습 예제 | 스크롤 애니메이션
  • 메터리얼 상속
    • 실습 예제 | 메터리얼 상속
  • 고정 함수 파이프라인과 셰이더
    • 렌더링 파이프라인
      • 실습 예제 | 첫 번째 셰이더 애플리케이션
    • 셰이더 작성
  • 셰이더에서 텍스처 입히기
    • 실습 예제 | 셰이더에서 텍스처 사용
  • 렌더링 파이프라인에서 일어나는 일
  • 색의 보간
    • 실습 예제 | 색을 이용해 보간 확인
  • 사각형을 모델로 변경
    • 실습 예제 | 사각형을 모델로 변경
  • x축으로 진동하는 모델 만들기
    • 실습 예제 | 진동하게 만들기
  • 정리
  • 8 컴포지터 프레임워크
    • 씬 준비
      • 실습 예제 | 씬 준비
    • 첫 번째 컴포지터 추가
      • 실습 예제 | 컴포지터 추가
    • 컴포지터의 동작 방식
  • 텍스처 수정
    • 실습 예제 | 텍스처 수정
  • 이미지 반전
    • 실습 예제 | 이미지 반전
  • 컴포지터 결합
    • 실습 예제 | 두 가지 컴포지터 효과 결합
  • 텍스처 개수 줄이기
    • 실습 예제 | 텍스처 개수 줄이기
  • 코드에서 컴포지터 결합
    • 실습 예제 | 코드에서 컴포지터 결합
  • 더 복잡한 컴포지터
    • 실습 예제 | 복잡한 컴포지터
  • 픽셀의 개수 바꾸기
    • 실습 예제 | 메터리얼에 픽셀 수 넣기
  • 코드에서 변수 설정
    • 실습 예제 | 애플리케이션 코드에서 변수 설정
  • 애플리케이션 동작 중 픽셀 수 변경
    • 실습 예제 | 사용자 입력으로 픽셀 수 바꾸기
  • 화면 분할
    • 실습 예제 | 화면 분할
  • 하나로 합치기
    • 실습 예제 | 색 채널 고르기
  • 정리
  • 9 오거3D의 기동 과정
    • 오거3D 기동
      • 실습 예제 | 오거3D 기동
    • 리소스 추가
      • 실습 예제 | 신밧드 메시 불러오기
    • resources.cfg 사용
      • 실습 예제 | resources.cfg 파일로 모델 불러오기
    • 설정 파일의 구조
  • 애플리케이션 클래스 작성
    • 실습 예제 | 클래스 만들기
  • 프레임 리스너 추가
    • 실습 예제 | 프레임 리스너 추가
  • 프레임 리스너의 기능 조사
    • 실습 예제 | 프레임 리스너의 구현 실험
    • 실습 예제 | frameStarted 함수에서 true 리턴
  • 이중 버퍼링
    • 실습 예제 | frameRenderingQueued 함수에서 true 리턴
    • 실습 예제 | frameEnded 함수에서 ture 리턴
  • 입력 추가
    • 실습 예제 | 입력 추가
  • 메인 루프 작성
    • 실습 예제 | 직접 만든 렌더링 루프 사용하기
  • 카메라 추가(반복)
    • 실습 예제 | 카메라 추가
  • 컴포지터 추가
    • 실습 예제 | 컴포지터 추가
  • 평면 추가
    • 실습 예제 | 평면과 광원 추가
  • 사용자 입력 추가
    • 실습 예제 | 방향키로 모델 조작
  • 애니메이션 추가
    • 실습 예제 | 애니메이션 추가
  • 정리
  • 10 파티클 시스템과 오거3D 확장 기능
    • 파티클 시스템 추가
      • 실습 예제 | 파티클 추가
    • 파티클 시스템이란?
  • 간단한 파티클 시스템 작성
    • 실습 예제 | 파티클 시스템 만들기
  • 추가 인자
    • 실습 예제 | 새로운 인자
  • 기타 인자
    • 실습 예제 | 지속 시간과 색 범위
  • 켜고 끄기
    • 실습 예제 | 파티클 시스템에 시간 간격 추가
  • 이펙터 추가
    • 실습 예제 | 스케일러(Scaler) 이펙터 추가
  • 색 바꾸기
    • 실습 예제 | 색 바꾸기
  • 두 가지 방법으로 변경
    • 실습 예제 | 파티클의 지속 시간에 따른 변화
  • 더 복잡한 색 조작
    • 실습 예제 | 복잡한 색 조작 사용하기
  • 불규칙성 추가
    • 실습 예제 | 불규칙성 추가
  • 디플렉터
    • 실습 예제 | 디플렉터 평면 사용
  • 기타 이미터
    • 실습 예제 | 박스 이미터 사용
  • 링 모양으로 파티클 방출
    • 실습 예제 | 링 모양으로 파티클 방출
  • 불꽃놀이
    • 실습 예제 | 불꽃놀이
  • 오거3D 확장 기능
    • 스피드트리
    • 하이드락스
    • 카엘룸
    • 파티클 유니버스
    • GUI
    • CEGUI
    • 베타GUI
    • 퀵GUI
    • 버클리움
  • 정리
  • 마치면서
  • 도서 오류 신고

    도서 오류 신고

    에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

    오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

    (예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안