I   회사소개  I  사이트맵  I  도움말
인기검색어
  ID저장
 
회원가입 I 아이디/비밀번호찾기
ㆍOS / 하드웨어 / 서버군
ㆍOA / 오피스 / 전자출판
ㆍ아이폰 / 안드로이드
ㆍ디지털 포토그래피
ㆍ그래픽 / 홈페이지
ㆍ인터넷 프로그래밍
ㆍ일반프로그래밍
ㆍ게임프로그래밍
ㆍSNS / E-Business
ㆍ데이터베이스
ㆍ기 타
ㆍ길라잡이
ㆍ실력이 탐나는
ㆍ회사 실무에 힘을 주는
ㆍ예제가 가득한
ㆍ그림 한 장으로 보는
ㆍ디지털 포토그라피
ㆍ그래픽/홈페이지
페이스북 블로그 네이버포스트
관련분류 : 게임/게임 프로그래밍 / DirectX/OpenGL/3D 프로그래밍
OpenGL Extensions Guide - 절판
크게보기 l 차례보기
ㆍ저 자 Eric Lengyel
ㆍ역 자 김규열
ㆍ구 분 번역서
ㆍ발행일 2004년 11월 15일
ㆍ정 가 30,000원
ㆍ페이지 815 페이지
ㆍISBN 89-5674-216-2
ㆍ난이도 중급
ㆍ출판사 정보문화사
OpenGL은 2D 및 3D 그래픽 그리고 게임 애플리케이션들을 개발하기 위한 주요한 환경이다.

게임 프로그래머들은 근본적으로 OpenGL이 다중 플랫폼에서 사용 가능하고, 뿐만 아니라 확장이라는 형식으로 하드웨어 발전에 보조를 맞추어 지속적으로 발전하고 있기 때문에 이 인터페이스를 채용해왔다. 하지만, 이제껏 여러 확장들을 사용하는 데 도움을 줄 한 권의 명확한 참고 서적도 없었다.

이 책 'OpenGL Extensions Guide'는 최신 3D 게임들을 개발하기 위해서 가장 중요한 확장들에 특히 중점을 둔 매우 가치 있는 자료들을 제공한다. 이 책은 기본적인 OpenGL 구조의 유사한 구성 요소들을 수정하거나 증가시키는 확장들을 그룹별로 설명한다.

이 책의 특징

  • 필수의 OpenGL 확장들의 모든 것들을 자세히 논의하고 OpenGL 프로그래머에게 무한한 가치의 참고 자료를 제공한다.
  • 각 확장을 "논의" 절 그리고 "새로운 함수" 그리고 "확장된 함수"라고 명명된 하나 또는 두 개의 "참고" 절들로 분할하여 설명한다. "새로운 함수" 절은 확장에 의해서 정의된 새로운 함수들의 자세한 설명을 제공하고 "확장된 함수" 절은 확장이 어떻게 기존 OpenGL 함수들을 확장 또는 수정했는지를 설명한다.

  • 확장들의 실용적인 사용법에 중점을 두고 있고 필요한 부분에서만 기본에 깔린 수학적인 배경에 대해서 자세히 설명한다.

  • OpenGL 위원회(Architecture Review Board)가 승인한 확장들, 복수 제조업체 확장 그리고 엔비디아와 ATI에 의해서 개발된 제조업체-지정 확장 등에 대해서 논의한다.


이 책이 포함하는 내용
이 책은 독자가 이미 기본 OpenGL 라이브러리와 3D 렌더링 파이프라인에 익숙하다고 가정한다.

첫 번째 장에서는 OpenGL 확장의 작동 방법과 각 플랫폼에서 확장의 기능에 접근하는 방법들에 대해서 설명하고, 이후 장들에서 구체적인 각 확장들에 대해 다음과 같이 몇 개의 그룹으로 분류하여 설명한다.

OpenGL 확장 그룹
  • 2장 - 혼합(Blending) : 프레임 버퍼 색상과 알파 혼합 연산

  • 3장 - 텍스처 조색 환경 : 텍스처 환경 응용, 다중 텍스처링

  • 4장 - 텍스처 매핑 : 입방체 및 3차원 텍스처링, 텍스처 감싸기 모드, 텍스처 객체

  • 5장 - 텍스처 압축 : 텍스처 압축, S3TC

  • 6장 - 프래그먼트 셰이딩 : 고급 고정 함수 프래그먼트 셰이딩

  • 7장 - 정점 혼합 : 정점 가중치 및 혼합

  • 8장 - 배열 관리 : 효율적인 정점 배열 사용법

  • 9장 - 동기화 : GPU와 동기화

  • 10장 - 조명 : 조명, 두 번째 색상

  • 11장 - Fog : 안개 좌표, 안개 거리

  • 12장 - 스텐실 연산 : 스텐실 감싸기 모드, 양면 스텐실

  • 13장 - 그림자 매핑 : 깊이 텍스처, 그림자 매핑

  • 14장 - 차폐 제외 : 차폐 제외, 차폐 질의

  • 15장 - 점 렌더링 : 점 매개변수, 점 스프라이트

  • 16장 - 픽셀 형식 : 색상 형식, 결합된 픽셀, 깊이-스텐실 형식

  • 17장 - 기타 확장 : 기타 확장

  • 18장 - 정점 프로그램 : ARB 및 NV 정점 프로그램

  • 19장 - 프래그먼트 프로그램 : ARB 및 NV 프래그먼트 프로그램


  • 저자 소개
    'Mathematics for 3D Game Programming and Computer Graphics'의 저자인 Eric Lengyel(Sunnyvale, CA)은 Terathon Software의 게임 엔진 제작 스튜디오에서 책임 기술 이사로 재직중이다. 그는 버지니아 공대에서 수학분야의 석사 학위를 취득했고, gamasutra.com과 'Game Programming Gems' 시리즈에 여러 기사들을 기고해왔다.
     
    무언가를 사고 싶은데 선택의 여지가 없다면 아마도 상당히 슬플 것이다. 그런데 3D 게임을 개발하는 데 선택할 수 있는 그래픽 API가 많다면! 과연 좋을까? 분명 그렇지는 않을 것이다. 가능하다면 한 가지 그래픽 API로 통일되어 있어서 사용에 대한 정보도 서로 교류하면서 그 그래픽 API에 대한 숙련도를 향상시킬 수 있는 것이 좀 더 바람직하지 않을까?

    불행히도 우리가 3D 게임을 개발하기 위한 이런 좋은 환경은 아직 제공되고 있지 않다. PC, 콘솔, 모바일 등에서 3D 게임을 구현하기 위해서는 각 플랫폼마다 제공하는 서로 다른 그래픽 API들을 고려해야 하며, PC의 경우만 보더라도 Direct3D와 OpenGL이라는 두 가지 그래픽 API들이 존재한다.

    그렇다면 어떤 그래픽 API를 선택하는 것이 좋을까? 이런 질문에 대해서 답을 하는 것은 상당히 어려운 일이다. 이 책이 OpenGL에 대한 책이기 때문에 OpenGL을 선택하라고 한다면 상당히 속 보이는 답변일 것이다. Direct3D나 OpenGL은 둘 다 서로 장단점이 있고, Direct3D에 대해서는 독자들도 잘 알고 있다고 가정하여, 여기서는 간단히 OpenGL의 장점에 대해 나열해보겠다. 첫째, OpenGL은 다중 플랫폼을 지원한다. 실제로 위에서 언급한 PC, 콘솔, 모바일 등의 모든 플랫폼에서 OpenGL 그래픽 API를 사용할 수 있다(무료로 제공되지 않는 플랫폼들도 있지만). 둘째, 기본적인 OpenGL 구조는 변하지 않는다. Direct3D의 경우에 새로운 버전이 나올 때마다 변경되는 구조에 따라서 인터페이스들이 바뀌는 경우가 많은데, OpenGL에서는 그렇지 않다. 마지막으로, 최신 하드웨어 기능을 빠르게 반영한다. DirectX가 굉장히 빠르게 버전이 갱신되므로 하드웨어 기능을 좀 더 빠르게 지원할 것이라 생각될 수도 있지만, DirectX는 새로운 버전이 나오기 전에 새로운 하드웨어들이 출시되면 당연히 새로운 하드웨어에서 지원하는 기능들을 지원하지 못하는 데 반해, OpenGL은 확장이라는 기능이 있어 새로운 기능들을 아주 빠르게 반영할 수 있도록 되어 있다.

    이런 이야기를 먼저 꺼낸 것은 어떤 API가 우월하다는 것이 아니라, OpenGL을 선택해서 3D 게임을 만드는 데 하드웨어에서 지원하는 기능을 활용하고 싶다면 당연히 OpenGL의 확장에 대해서 알아야만 한다는 것을 말하기 위해서이다. 예를 들면 Doom III라는 게임의 동영상이나 스크린 샷을 보면서 상당히 놀라신 분들이 많을 것이다. 거기에 나오는 그림자 입체, 동적 조명 등은 모두 이러한 OpenGL 확장 기능들을 이용해서 만들어진 것들이다.

    이 책은 지금까지 OpenGL 확장에 대해서 명세서 이외의 참고 서적이 출간된 적이 없어 답답해하던 독자들의 갈증을 풀어줄 것이다. 이 책을 번역하면서 느낀 점은, 확장으로 지원되고 있는 어마어마한 기능들을 실제 3D 게임 제작에 꼭 필요한 것들만을 뽑아 비슷한 기능별로 분류하여 설명하고 있어, 각 확장들의 관계에 대해 쉽게 파악할 수 있도록 구성되어 있다는 것이다. 또 확장의 기능에 대해서도 간결하고 명확하게 설명하고 있다는 점도 상당히 인상적이다. 즉, 명세서에 비해서 군더더기가 없어서 보기에 어려움이 없다는 점이 좋은 점이라고 할 수 있을 것이다(실제로 함께 작업을 했던 프로그래머분께서 셰이더에 대한 지식이 전혀 없었는데, 이 책의 18장 정점 프로그램에 대한 부분만을 읽고, 개발했던 엔진에 적용한 사례만 보아도 레퍼런스로서 가치를 판단해볼 수 있다). 또한 "유용한 팁"이라는 항목을 두어 실제로 어떻게 이용해야 할 지에 대해서도 직접적인 예로 언급하고 있다는 점은 처음 확장을 접해서 이용에 대한 구체적인 생각이 머릿속에 떠오르지 않을 때, 정확한 방향을 제시해주는 역할을 해줄 것이다.

    이 책은 OpenGL의 확장에 대한 책이기 때문에 기본적으로 기본 OpenGL 구조에 대한 이해가 있어야만 한다. 특히 OpenGL이 상태 기계를 기반으로 해서 구현되어 있다는 것을 알고 있지 않다면, '현재'라는 용어와 '검색하다'라는 용어가 상당히 어색하게 느껴질 수도 있다. 그리고 용어들 중에 'signed'를 '부호 있는'으로, 'unsigned'를 '부호 없는'으로 번역한 것은 그 용어들이 자료의 최상위 비트가 부호 비트인지 아닌지를 나타낸다는 것에 근거한다. 또 'pack'과 'unpack'을 시어에서 차용한 '함축하다'와 '명시하다'라는 용어로 번역을 했는데, 이는 'pack'이 자료의 크기가 줄어든다는 것을 뜻하는 압축과는 조금 다르게 쓰였기 때문이다. 즉, 'pack'이 자료의 크기가 줄어듦을 나타내는 것이 아니라 그냥 좀 더 큰 자료형에 그 자료들이 들어감을 의미하므로 그 의미를 명확하게 전달하기 위해 '함축하다'라는 용어로 번역하였고, 'unpack'은 그 반대의 의미이므로 '명시하다'라는 용어로 번역했다.
     
     
    "정보문화사-게임 프로그래밍" 관련도서는 총 38권 입니다.
    - Game Programming Gems 5
    - OpenGL Super Bible 제3판
    - AI Game Programming Wisdom 2
    - Game Programming Gems 4
    - OpenGL 프로그래밍 가이드 : OpenGL 1.4 공식 학습 가이드 제4판
    - OpenGL Extensions Guide
    - ShaderX² : DirectX 9 셰이더 프로그래밍 팁 & 트릭
    - 게임 프로그래밍의 핵심 법칙
    - ShaderX² : DirectX 9 셰이더 프로그래밍
    - DirectX 9를 이용한 전략 게임 프로그래밍
    - 3D 게임 프로그래밍 & 컴퓨터 그래픽을 위한 수학 제2판
    - C++와 DirectX 9를 이용한 실시간 3D 지형 엔진
    - 쉽게 풀어 쓴 인공지능(AI) 게임 프로그래밍
    - Cg로 배우는 셰이더 프로그래밍
    - DirectX 9를 이용한 3D 게임 프로그래밍 입문
    - 게임 프로그래머를 위한 C++
    - 최고의 전문가들에게 배우는 온라인 게임 개발 테크닉
    - Game Coding Complete
    - 게임 프로그래머를 위한 자료구조와 알고리즘
    - Real-Time Rendering 2판
    - 온라인 게임 기획 & 인터랙티비티
    - 게임 속 무한 우주 : 레벨 디자인, 지형 그리고 사운드
    - Direct3D ShaderX 정점 & 픽셀 셰이더 팁과 트릭
    - 게임 개발 프로젝트를 성공으로 이끄는 게임 기획 & 디자인
    - 초보자를 위한 게임 프로그래밍
    - DirectX 비주얼 베이직 게임 프로그래밍
    - Game Programming Gems 3
    - AI Game Programming Wisdom
    - DirectX 실시간 렌더링 실전 테크닉
    - 3D 캐릭터 애니메이션 프로그래밍
    - 게임 프로그래머에게 배우는 게임 개발 테크닉
    - 3D 게임 프로그래밍 & 컴퓨터 그래픽을 위한 수학
    - DIRECTX 8.x를 이용한 3D 게임 프로그래밍
    - 로우 폴리곤 테크닉을 활용한 게임 모델링
    - 게임 개발 수학적 테크닉
    - Game Programming Gems 2
    - OpenGL Game Programming
    - 게임 디자인 이론과 실제
     
                                      
    회사소개      개인정보취급방침      고객센터     사이트맵      도움말