logo
logo
x
바코드검색
BOOKPRICE.co.kr
책, 도서 가격비교 사이트
바코드검색

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

OpenGL Super Bible

OpenGL Super Bible

(제3판)

리처드 S. 라이트 주니어 (지은이), 최현호 (옮긴이)
정보문화사
32,000원

일반도서

검색중
서점 할인가 할인률 배송비 혜택/추가 실질최저가 구매하기
알라딘 로딩중
yes24 로딩중
교보문고 로딩중
11st 로딩중
영풍문고 로딩중
쿠팡 로딩중
쿠팡로켓 로딩중
G마켓 로딩중
notice_icon 검색 결과 내에 다른 책이 포함되어 있을 수 있습니다.

중고도서

검색중
서점 유형 등록개수 최저가 구매하기
로딩중

eBook

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
로딩중

책 이미지

OpenGL Super Bible
eBook 미리보기

책 정보

· 제목 : OpenGL Super Bible (제3판)
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 게임 프로그래밍
· ISBN : 9788956742526
· 쪽수 : 1178쪽
· 출판일 : 2005-03-15

책 소개

OpenGL의 새 버전을 사용해서 프로그램을 만드는 데 필요한 모든 내용을 다루고 있는 포괄적이고 실용적인 가이드로, 3판인 이번 책에서는 OpenGL 1.5, OpenGL 2.0의 쉐이딩 언어, ARB 저수준 쉐이더 확장, 윈도우즈뿐만 아니라 Mac OS X와 리눅스에서의 프로그래밍에 이르기까지 다양한 내용을 포함시켰다.

목차

파트 1 클래식 OpenGL

1. 3D 그래픽과 OpenGL
컴퓨터 그래픽의 간략한 역사
CRT
3D로의 진화
다양한 3D 효과들
원근법
색상과 쉐이딩
조명과 그림자
텍스처 입히기
안개
블렌딩과 투명 효과
안티 알리아싱
3D 그래픽의 활용
실시간 3D
비 실시간 3D
3D 프로그래밍의 기본적인 지식들
즉시 모드와 보류 모드(씬 그래프)
좌표 체계
투영: 3D를 2D로
단원을 마치며

2. OpenGL의 사용
OpenGL이란 무엇인가?
진화하는 표준
API 전쟁
OpenGL은 어떻게 작동하는가?
일반적인 임플리먼테이션
하드웨어 임플리먼테이션
파이프라인
OpenGL은 언어가 아닌 API이다
라이브러리와 헤더
API
데이터 타입
함수의 이름짓기 규칙
플랫폼 독립성
GLUT의 사용
프로그래밍 환경의 설정
여러분의 첫 번째 프로그램
OpenGL로 도형 그리기
OpenGL과 GLUT를 사용한 애니메이션
더블 버퍼링
OpenGL 상태 머신
상태의 저장과 로딩
OpenGL 오류
좋은 코드에도 나쁜 일들이 벌어진다
버전의 확인
glHint의 사용
확장 기능의 사용
확장 기능의 확인
확장 기능의 제작사 알아내기
윈도우즈에서의 OpenGL 1.1 사용
단원을 마치며
레퍼런스

3. 공간 내의 드로잉 : 지오메트리와 버퍼
3D 공간에서의 점 그리기
3D 캔버스의 설정
3D 점 : 버텍스
무언가 그려보자!
점 그리기
점 크기의 설정
3D 공간에서의 선 그리기
선 스트립과 루프
직선을 사용한 곡선 표현
선 두께 설정
점선 그리기
3D 공간에서 삼각형 그리기
삼각형: 가장 기본적인 폴리곤
와인딩
삼각형 스트립
삼각형 팬
솔리드 물체 만들기
폴리곤의 색 설정
숨겨진 면 제거하기
추려내기: 면 숨기기를 통한 성능 향상
폴리곤 모드
다른 기본 모델들
네 개의 면을 가진 폴리곤: 사각형
일반적인 폴리곤
텍스처와 스티플링
폴리곤 구성의 규칙
분할과 경계선
다른 버퍼 트릭들
버퍼 타겟의 사용
깊이 버퍼의 제어
가위로 자르기
스텐실 버퍼
단원을 마치며
레퍼런스

4. 지오메트리 변환과 파이프라인
골치 아픈 수학 단원인가?
변환의 이해
시각 좌표
관측 변환
모델링 변환
모델뷰의 이중성
투영 변환
뷰포트 변환
3D 그래픽의 수학적 핵심인 행렬
행렬이란 무엇인가?
변환 파이프라인
모델뷰 행렬
단위 행렬
행렬 스택
원자 모형 예제
투영의 활용
직교 투영
원근 투영
원근 투영의 또 다른 예제
보다 발전된 형태의 행렬 제어
행렬의 로딩
자체적인 변환
변환 행렬의 결합
카메라와 액터를 사용한 OpenGL에서의 이동
액터 프레임
오일러의 각
카메라 관리
배운 내용을 종합해보자
단원을 마치며
레퍼런스

5. 색상, 재질, 조명의 기본
색상이란 무엇인가?
빛의 파동성
빛의 입자성
사람의 광자 탐지 능력
컴퓨터에서 광자가 만들어지는 방식
PC 색상 하드웨어
PC 출력 모드
화면의 해상도
색상의 깊이
OpenGL에서의 색상
색상 큐브
드로잉 색상의 설정
쉐이딩
쉐이딩 모델의 설정
실제 세계의 색상
주변광
분산광
반사광
세 가지 빛의 결합
실세계의 재질
재질의 특성
재질에 조명을 추가
주변광 효과의 계산
분산광과 반사광
조명의 추가
조명 효과의 설정
조명 모델의 설정
재질 속성의 설정
광원의 활용
어떤 방향이 위쪽인가?
법선 벡터
법선 벡터의 지정
단위 법선 벡터
법선 벡터 구하기
광원의 설정
재질 속성의 설정
폴리곤의 지정
조명의 효과
반사광 하이라이트
반사광
반사 재질
반사 지수
평균 법선 구하기
배운 내용을 종합해보자
스포트라이트 만들기
스포트라이트 그리기
그림자
그림자란 무엇인가?
물체의 평면화 코드
그림자 예제
SPHEREWORLD 예제
단원을 마치며
레퍼런스

6. 색상과 재질
블렌딩
색상의 결합
블렌딩 계산식의 변경
안티 알리아싱
안개
누적 버퍼
다른 색상 관련 작업들
색상 매스킹
색상의 논리적 연산
알파 테스팅
디더링
단원을 마치며
레퍼런스

7. OpenGL 이미징
비트맵
비트맵 예제
픽셀 패킹
픽셀맵
압축된 픽셀 포맷
보다 다양한 색상을 사용한 예
픽셀의 이동
픽셀의 저장
몇 가지 흥미로운 픽셀 작업
픽셀의 확대
픽셀의 이동
픽셀 맵핑
이미지 서브셋
이미징 파이프라인
단원을 마치며
레퍼런스

8. 텍스처 맵핑의 기본
텍스처의 로딩
색상 버퍼의 사용
텍스처의 업데이트
텍스처와 지오메트리의 맵핑
텍스처 행렬
간단한 2D 예제
텍스처 환경
텍스처 인자
기본 필터링
텍스처 래핑
만화 스타일의 텍스처
밉맵핑
텍스처 개체
여러 텍스처의 관리
단원을 마치며
레퍼런스

9. 텍스처 맵핑
이차 색상
이방성 필터링
텍스처 압축
텍스처의 압축
압축된 텍스처의 로딩
텍스처 좌표의 생성
개체 선형 맵핑
시각 선형 맵핑
구체 맵핑
큐브 맵핑
멀티 텍스처
멀티 텍스처 좌표
멀티 텍스처 예제
텍스처 혼합기
단원을 마치며
레퍼런스

10. 곡선과 표면
기본 모델들
2차 곡면 상태의 설정
곡면 그리기
곡면을 사용한 모델링
베지어 곡선과 표면
매개 변수를 사용한 표현
곡선 만들기
NURBS
베지어에서 B-Spline으로
Knot
NURBS 면 만들기
NURBS 속성
면의 정의
트리밍
NURBS 곡선
테설레이션
테설레이터
테설레이터 콜백
버텍스 데이터의 지정
실전에 응용해보자
단원을 마치며
레퍼런스

11. 파이프라인 : 보다 빠른 지오메트리의 처리
모델의 구성
조각과 부분
출력 목록
일괄 처리
선처리 일괄 실행
출력 목록 사용시의 주의사항
출력 목록으로의 변환
성능의 측정
보다 나은 예제
버텍스 배열
지오메트리의 로딩
배열의 사용
데이터는 어디에?
드로잉!
버텍스 배열의 인덱스
단원을 마치며
레퍼런스

12. 인터랙티브 그래픽
선택
기본 모델의 이름
선택 모드의 사용
선택 버퍼
픽킹
계층적 픽킹
피드백
피드백 버퍼
피드백 데이터
마커의 사용
피드백 예제
피드백을 위한 물체의 레이블
1 단계: 물체의 선택
2 단계: 물체에 대한 피드백 얻기
단원을 마치며
레퍼런스

파트 2 OpenGL은 어디에나 있다

13. 윈도우즈에서의 OpenGL
윈도우즈에서의 OpenGL 임플리먼테이션
범용 OpenGL
설치 클라이언트 드라이버(ICD)
미니 클라이언트 드라이버(MCD)
미니 드라이버
확장 OpenGL
기본적인 창 렌더링
GDI 장치 컨텍스트
픽셀 포맷
OpenGL 렌더링 컨텍스트
정리
창 만들기
OpenGL 렌더링 컨텍스트 이용하기
다른 윈도우즈 메시지
윈도우즈 팔레트
색상 매칭
팔레트 중재
OpenGL용 팔레트 만들기
팔레트 생성과 해체
OpenGL과 윈도우즈 글꼴
3D 글꼴과 텍스트
2D 글꼴과 텍스트
전화면 렌더링
테두리 없는 창 만들기
전화면 창 만들기
멀티 스레드 렌더링
OpenGL과 WGL 확장
단순한 확장
새 진입점 이용하기
WGL 확장
단원을 마치며
레퍼런스

14. MacOS X에서의 OpenGL
기본
프레임웍
GLUT API 이용하기
AGL과 Carbon API 이용하기
픽셀 포맷
컨텍스트의 관리
이중 버퍼 렌더링하기
첫 번째 AGL 프로그램
비트맵 글꼴 이용하기
Cocoa API 이용하기
NSOpenGL 클래스
첫 번째 Cocoa 프로그램
단원을 마치며
레퍼런스

15. GLX : 리눅스에서의 OpenGL
기본
OpenGL과 X11 라이브러리 이용
GLUT 라이브러리 이용하기
리눅스에서의 OpenGL
OpenGL 에뮬레이션: Mesa
X Window 시스템을 위한 OpenGL 확장
X Window 시스템의 기본
비주얼 선택하기
OpenGL 컨텍스트 관리하기
OpenGL 창 만들기
이중 버퍼 창
종합
OpenGL용 비트맵 글꼴 만들기
오프 스크린 렌더링
GLX 픽셀맵 이용하기
Pbuffer 사용하기
Motif 라이브러리 이용하기
GLwDrawingArea와 GLwMDrawingArea: OpenGL 위짓
콜백
함수
종합
단원을 마치며
레퍼런스

파트 3 OpenGL의 현재와 미래

16. 버퍼 개체 : 우리의 비디오 메모리는 우리가 관리한다!
먼저 버텍스 배열이 필요하다
구형 입자 구름 생성하기
버텍스 배열 활성화
조금 더 추가해보자!
버퍼 개체로의 이전
버퍼 개체의 관리
버퍼 개체를 이용한 렌더링
버퍼 개체로 데이터 로딩하기
버퍼 개체로 데이터 복사하기
버퍼 개체의 직접 맵핑
마무리
단원을 마치며
레퍼런스

17. 차단 쿼리 : 필요한 만큼만 일하자
차단 쿼리를 이용하기 전의 환경
경계 상자
쿼리 개체 확인하기
단원을 마치며
레퍼런스

18. 깊이 텍스처와 그림자
빛이 되자
창에 장면 맞추기
건너뛰어야 할 것들
새로운 종류의 텍스처
그림자를 먼저 그린다?!
그리고 빛이 있으라
그림자 맵의 보호: "왜?"
그림자 맵의 보호: "방법"
그림자 비교
부담 줄이기
폴리곤 오프셋에 대한 참고사항들
단원을 마치며
레퍼런스

19. 프로그래머블 파이프라인 : OpenGL의 제어
기존의 방식
고정 버텍스 처리
고정 프래그먼트 처리
새로운 방식
프로그래머블 버텍스 쉐이더
고정 기능 접합재
프로그래머블 프래그먼트 쉐이더
쉐이더 확장 소개
저수준 확장
고수준 확장
단원을 마치며

20. 저수준 쉐이딩 : 깊이 있는 코딩
저수준 쉐이더의 관리
쉐이더 만들기와 연결하기
쉐이더 로딩
쉐이더 삭제
확장 설정
명령어 세트
공통 명령
버텍스 전용 명령
프래그먼트 전용 명령
변수의 타입
임시 변수
인자 변수
속성 변수
출력 변수
별칭 변수
주소 변수
입력과 출력 변경자
입력 부정
입력 혼합
출력 쓰기 매스크
출력 고정
자원 소비와 쿼리
파서의 제한
고유 제한
다른 쿼리들
쉐이더 옵션
위치 불변 버텍스 옵션
안개 애플리케이션 프래그먼트 옵션
정확도 힌트 프래그먼트 옵션
단원을 마치며
레퍼런스

21. 고수준 쉐이딩
고수준 쉐이더의 관리
쉐이더 개체
프로그램 개체
확장 설정하기
변수
기본 데이터 타입
구조체
배열
한정자
내장 변수
표현식
연산자
배열 접근
컨스트럭터
요소 선택자
흐름 제어
반복문
if/else
discard
함수
단원을 마치며
레퍼런스

22. 버텍스 쉐이딩
시작하기
분산광 적용
반사광
향상된 반사광
버텍스에 안개를 적용
버텍스 당 포인트 크기
버텍스 변환의 조절
버텍스 블렌딩
단원을 마치며

23. 프래그먼트 쉐이딩 : 픽셀 처리의 향상
색상 변환
그레이스케일
세피아 톤
반전
열 추적
프래그먼트 당 안개
이미지 프로세싱
블러
샤픈
팽창과 침식
경계 검출
조명
분산광
다중 반사광
절차적 텍스처 맵핑
바둑판 텍스처
비치 볼 텍스처
장난감 공 텍스처
단원을 마치며

파트 4 부록

부록 A 참고 문헌
다른 OpenGL 관련 서적들
3D 그래픽 서적들
웹 사이트

부록 B 용어

부록 C OpenGL ES
데이터 타입의 축소
완전히 제거된 기능들
상당히 축소된 기능들
텍스처 맵핑
래스터 작업
조명
결론

찾아보기

저자소개

리처드 S. 라이트 주니어 (지은이)    정보 더보기
버전 1.1 이래로 18년 이상 OpenGL을 사용해왔고, 플로리다 올랜도 근처 풀세일 대학의 게임 디자인 학위 프로그램에서 10년 이상 OpenGL 프로그래밍을 가르쳐왔다. 현재 소프트웨어 비스크(Software Bisque)의 선임 연구원으로, 3D 태양계 시뮬레이터와 완전한 돔형의 천체 투영관 제작을 위한 기술 리더와 제품 관리자 역할을 하고 있고, 모바일 제품과 과학 이미징 애플리케이션 분야에서 일하고 있다. 그전에는 Real 3D/Lockheed Martin에서 정규 OpenGL ARB 소속원으로 OpenGL 1.2 명세와 적합성 테스트에 기여했다. 그 후 복수 차원의 데이터베이스 시각화 작업, 게임 개발, 의료 진단 시각화 작업, 우주항공 시뮬레이션 분야에서 윈도우, 리눅스, Mac OS X와 다양한 모바일 플랫폼으로 작업해왔다. 1978년인 8학년 때 페이퍼 터미널 위에서 프로그램을 배웠다. 16살 때 부모님이 잔디를 깎은 대가로 자동차 대신 컴퓨터를 사주었고, 그 후 일 년이 채 안 되어 그의 첫 번째 프로그램을 만들어서 팔았다(그것은 그래픽 프로그램이었다)! 고등학교를 졸업한 뒤 지역 소비자 교육 회사에서 프로그래밍과 컴퓨터 소양을 가르치는 일이 그의 첫 직업이었다. 루이빌에 있는 스피드 사이언티픽 스쿨 대학에서 전기 공학과 컴퓨터 공학을 공부했으며 고학년의 절반을 그곳에서 보낸 후 플로리다로 옮겨 그의 경력에 전성기가 만들어졌다. 켄터키의 루이빌 태생으로 현재 플로리다의 레이크 메리에 살고 있다. 프로그래밍을 하거나 폭풍을 피해 다니지 않을 때는 열정적인 아마추어 천문학자나 사진광이 된다. 그리고 자랑스러운 Mac 사용자다.
펼치기
최현호 (옮긴이)    정보 더보기
(주)씨큐브 테크놀로지 개발 팀장. 1994년부터 주로 윈도우 NT, 유닉스에서 SQL 서버, 오라클 데이터베이스를 이용하여 비주얼 베이직, 파워빌더, 자바 등으로 작성된 기업 업무용 클라이언트/서버 응용 프로그램을 개발하고 있다. 옮긴 책으로 <게임 프로그래머를 위한 C++>, <DirectX 9를 이용한 3D 게임 프로그래밍 입문>, <Beginning Oracle Programming>, <Beginning Visual Basic .NET> 등이 있다.
펼치기
이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
이 포스팅은 제휴마케팅이 포함된 광고로 커미션을 지급 받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책