본문 바로가기

추천 검색어

실시간 인기 검색어

WebGL을 활용한 3D 그래픽 프로그래밍

기초 선형대수학부터 셰이더 최적화 기법까지
에이콘 웹 프로페셔널 시리즈
안드레아스 안유루 저자(글) · 윤영민 번역
에이콘출판 · 2015년 06월 26일
9.0
10점 중 9점
(3개의 리뷰)
집중돼요 (67%의 구매자)
  • WebGL을 활용한 3D 그래픽 프로그래밍 대표 이미지
    WebGL을 활용한 3D 그래픽 프로그래밍 대표 이미지
  • A4
    사이즈 비교
    210x297
    WebGL을 활용한 3D 그래픽 프로그래밍 사이즈 비교 188x250
    단위 : mm
01 / 02
MD의 선택 무료배송 이벤트 소득공제
10% 31,500 35,000
적립/혜택
1,750P

기본적립

5% 적립 1,750P

추가적립

  • 5만원 이상 구매 시 추가 2,000P
  • 3만원 이상 구매 시, 등급별 2~4% 추가 최대 1,750P
  • 리뷰 작성 시, e교환권 추가 최대 300원

알림 신청하시면 원하시는 정보를
받아 보실 수 있습니다.

절판되었습니다.
웹지엘(WebGL)을 이용한 하드웨어 가속 3D 그래픽 개발에 필요한 모든 것을 담고 있다. 웹지엘은 웹개발자에게 놀라운 3D 그래픽을 제작하는 방법을 제공한다. 이 책은 웹지엘을 사용해서 3D 크로스 플랫폼 앱을 만드는 과정을 코드와 주석을 통해 방법과 원리에 대해 자세히 설명하고 있다. 웹지엘 그래픽 파이프라인, 3D 변환, 텍스처링과 광원 등의 중요한 기술들을 다루고 있으며, 버텍스 셰이더와 프래그먼트 셰이더의 작성법에 대해 알려준다. 또한 웹지엘 성능 최적화에 필요한 다양한 가이드와 팁을 제시하고 있다.

이 책의 총서 (73)

작가정보

저자 안드레아스 안유루(ANDREAS ANYURU)는 웹지엘을 포함한 다양한 웹 기술 분야에 능통한 전문가다. 웹 브라우저 통합과 모바일기기의 최적화와 관련해 다년간의 경험이 있다. 데스크톱과 안드로이드에서 사용되고 있는 구글 크롬엔진의 V8 자바스크립트 엔진 개발에 기여했으며, 룬드(Lund) 대학의 정보 통신 공학부에서 새로운 수업을 개발하고 가르쳤다.
ST 에릭슨(ST Ericsson)의 시니어 멤버로서, 주 업무 영역은 웹 기술이다. 현재는 ST 에릭슨의 리눅스 기반 모바일 플랫폼에 적용하는 웹 기술 최적화에 대한 책임을 맡고 있으며, 스웨덴의 룬드 대학 공학부에서 전기 공학 석사를 취득했다.

역자 윤영민은 대학원에서 그래픽 분야 석사를 전공했으며, 현재는 국내의 포털 회사에 근무하며 영상처리에 관한 연구 개발을 하고 있다. 다양한 컴퓨터 사이언스 분야에 대해 호기심이 많으며, 특히 컴퓨터 그래픽 & 비전, 영상처리 분야에 관심이 많다. 오픈지엘(OpenGL) 등을 이용한 3D 그래픽뿐만 CUDA 등의 GPGPU 분야에도 흥미가 있다.

작가의 말

오늘날 많은 사용자가 웹 브라우저가 있는 컴퓨터, 태블릿, 스마트폰을 이용해 문서를 작성하고, 이메일, 채팅, 뉴스 읽기, 영상 시청, 음악 듣기, 게임, 쇼핑 등을 하며 시간을 보낸다. 웹 브라우저는 대부분의 기기에서 가장 중요한 애플리케이션이 되었다. 결과적으로, 웹 기술은 매우 빠른 속도로 가히 혁신적일 정도로 변화 중이다. 더불어 웹 브라우저는 이전보다 더 빠르고 안정적이며, 더 높은 보안을 자랑함과 동시에 매일같이 쏟아지는 신기술을 다루는 데 적합한 방향으로 진화 중이다.
웹 기술의 진보는 웹 개발자에게는 희소식이다. 가능한 한 많은 사람에게 배포할 수 있는 애플리케이션을 만들고 싶다면, 웹은 이를 위한 최적의 플랫폼이다. 하지만 근래에 일어난 웹 애플리케이션의 엄청난 발전에도 불구하고, 네이티브 애플리케이션에 비해 게임이나 기타 다른 애플리케이션에서 필요한 실시간 3D 그래픽은 제대로 발전하지 못했다. 바로 여기에 웹지엘이 등장하며 새로운 바람을 일으켰다.
웹지엘은 이전의 웹에서 불가능했던 2차원과 3D 그래픽을 가능케 한다. 그래픽 하드웨어가 지닌 강력한 GPU와 함께 HTML, CSS, 자바스크립트를 이용해 웹 애플리케이션을 만들 수 있다. 웹지엘에 기반한 2차원과 3D 그래픽 애플리케이션을 만드는 모든 과정을 기초부터 차근차근 함께 알아보자. - 저자 안드레아 안유루

3D란 용어는 듣는 순간 사람을 설레게 하는 힘이 있는 것 같습니다. 개발자라면 누구나 한 번쯤 자신의 결과물을 멋진 그래픽으로 표현해서 사람들에게 보여주고 싶은 맘이 생기기 마련입니다. 웹지엘은 개발자의 그러한 열망을 쉽고 빠르게 브라우저를 통해서 3D로 표현할 수 있게 해주는 멋진 도구입니다.
이 책은 다양한 예제와 친절한 설명을 통해 웹지엘을 처음 접하는 사람에게 적합하도록 구성됐습니다. 특히 3D 그래픽 이해에 필수적인 지식인 선형대수학에 대해서도 따로 지면을 할애해 초보자들도 알 수 있게 친절히 설명합니다. 두꺼운 오픈지엘 책과 수학 책 없이 이 책만 가지고도 한걸음씩 차분히 읽어나가면 멋진 3D 그래픽 개발자로서의 첫걸음을 디딜 수 있다고 생각합니다. 또한, 저자의 경험에서 우러나는 웹지엘의 성능 향상에 관해서도 다양한 각도로 설명하며, 실무 적용에 유용한 지식도 알려줍니다. - 역자 윤영민

목차

  • 1장 웹지엘 소개
    __웹지엘의 기초
    __왜 웹지엘인가?
    __그래픽 API 설계
    ____즉시 모드 API
    ____보류 모드 API
    __그래픽 장치의 개요
    ____GPU
    ____프레임 버퍼
    ____텍스처 메모리
    ____비디오 컨트롤러
    __웹지엘 그래픽 파이프라인
    ____버텍스 셰이더
    ____프리미티브 어셈블리
    ____래스터화
    ____프래그먼트 셰이더
    ____프래그먼트 연산
    __다른 그래픽 기술과의 비교
    ____오픈지엘
    ____오픈지엘 ES 2.0
    ____Direct 3D
    ____HTML 5 캔버스
    ____스케일러블 벡터 그래픽
    ____VRML과 X3D
    __3D 그래픽을 위한 선형대수학
    ____좌표계
    ____점 혹은 버텍스
    ____벡터
    ____내적 혹은 스칼라 곱
    ____외적
    ____동차 좌표계
    ____행렬
    ____아핀 변환
    __정리

    2장 간단한 웹지엘 예제
    __삼각형 그리기
    ____웹지엘 컨텍스트 생성
    ____버텍스 셰이더와 프래그먼트 셰이더 생성
    ____셰이더 컴파일
    ____프로그램 객체 생성과 셰이더 링크
    ____버퍼 설정
    ____장면 그리기
    __웹지엘 코딩 스타일의 이해
    __웹지엘 애플리케이션 디버깅
    ____크롬 개발자 도구 사용
    ____파이어버그 사용
    ____웹지엘 오류 처리 및 오류 코드
    ____웹지엘 인스펙터
    ____웹지엘 트러블슈팅
    __DOM API를 사용해서 셰이더 로드
    __고급 예제로 나아가기
    ____코드 실험
    __정리

    3장 그리기
    __웹지엘 프리미티브와 그리기
    ____프리미티브
    ____두르기 순서의 중요성
    ____웹지엘의 그리기 메소드
    __타입 배열
    ____버퍼와 뷰
    ____지원하는 뷰 타입
    __여러 가지 그리는 방법
    ____gl.drawArrays( )와 gl.TRIANGLES
    ____gl.drawArrays( )와 gl.TRIANGLE_STRIP
    ____gl.drawElements( )와 gl.TRIANGLES
    ____gl.drawElements( )와 gl.TRIANGLE_STRIP
    ____비교 정리
    ____선변환 버텍스 캐시와 후변환 버텍스 캐시
    __성능 향상을 위한 버텍스 데이터 끼워 넣기
    ____구조적 배열 사용
    __버텍스 배열 혹은 상수 버텍스 데이터 사용
    __종합 예제
    ____실험해볼 만한 것
    __정리

    4장 소형 자바스크립트 라이브러리와 변환
    __자바스크립트에서의 행렬과 백터
    ____Sylvester
    ____WebGL-mjs
    ____glMatrix
    __변환 사용
    ____변환을 이용하는 방법
    __변환 파이프라인 이해
    __변환 적용
    ____오브젝트 좌표에 필요한 버퍼 설정
    ____자바스크립트에서 변환 행렬을 만들고 셰이더에 전송
    ____변환 행렬을 GPU의 버텍스 셰이더에 업로드
    ____그리기 메소드 호출
    __변환 순서의 중요성
    ____고정좌표계 이용
    ____지역좌표계 이용
    ____변환 행렬 삽입 삭제
    __예제: 여러 변환된 오브젝트 그리기
    ____웹지엘에서 큐브 제작
    ____뷰 변환과 모델 변환 구성
    __정리

    5장 텍스처링
    __컨텍스트 상실 이해
    ____컨텍스트 상실 대응에 필요한 설정
    ____컨텍스트 상실을 처리할 때 고려할 점
    __2차원 텍스처와 큐브맵 텍스처 소개
    __텍스처 로딩
    ____WebGLTexture 객체 생성
    ____텍스처 바인딩
    ____이미지 데이터 로드
    ____GPU에 텍스처 올리기
    ____텍스처 파라미터 설정
    ____텍스처 로딩 절차 이해
    __텍스처 좌표 정의
    __셰이더에서 텍스처 사용
    ____텍스처 이미지 유닛의 동작
    __텍스처 필터링 작업
    ____확대 이해
    ____축소 이해
    ____밉매핑
    __텍스처 좌표 래핑 이해
    ____gl.REPEAT 랩 모드 사용
    ____gl.MIRRORED_REPEAT 랩 모드 사용
    ____gl.CLAMP_TO_EDGE 랩 모드 사용
    __텍스처 예제 완성
    __이미지를 텍스처로 사용
    ____무료 텍스처 다운로드
    ____사진으로 텍스처 제작
    ____이미지 그리기
    ____텍스처 구입
    __동일 출처 정책과 크로스 오리진 리소스 셰어링 이해
    ____이미지에 적용된 동일 출처 정책
    ____텍스처에 적용되는 동일 출처 정책 이해
    ____크로스 오리진 리소스 셰어링
    __정리

    6장 애니메이션과 유저 입력
    __장면 움직이기
    ____setTimeout( )과 setInterval( ) 사용
    ____requestAnimationFrame( ) 사용
    ____프레임 레이트 변화에 따른 움직임 보정
    ____애니메이션의 부드러움을 측정하는 FPS 카운터 제작
    ____FPS를 측정값으로 사용할 때 발생하는 문제점
    __유저 인터랙션을 위한 이벤트 핸들링
    ____DOM 레벨 0을 사용하는 기본적인 이벤트 핸들링
    ____DOM 레벨 2를 이용한 고급 이벤트 핸들링
    ____키 입력
    ____마우스 입력
    __적용
    __정리

    7장 광원
    __광원 이해
    __지역 조명 모델
    __퐁 반사 모델 이해
    ____앰비언트 반사
    ____디퓨즈 반사
    ____스펙큘러 반사
    ____퐁 반사 모델의 완전한 공식과 셰이더
    ____텍스처링에 조명 사용
    __웹지엘 조명에 필요한 자바스크립트 코드 이해
    ____버텍스 노멀에 필요한 버퍼 설정
    ____노멀 행렬을 계산하고 셰이더에 전송
    ____셰이더에 빛 정보 전송
    __셰이딩에 사용되는 여러 보간 기법
    ____플랫 셰이딩
    ____고라우 셰이딩
    ____퐁 셰이딩
    __벡터 정규화의 필요성
    ____버텍스 셰이더에서 정규화
    ____프래그먼트 셰이더의 정규화
    __여러 가지 타입 빛 사용
    ____방향성 빛
    ____점 광원
    ____스포트 광원
    __빛의 감쇄 이해
    __라이트 매핑
    __정리

    8장 웹지엘 성능 최적화
    __웹지엘 파헤치기
    ____웹지엘을 지원하는 하드웨어
    ____주요 소프트웨어 요소
    __웹지엘 성능 최적화
    ____초보적인 실수 피하기
    ____병목 지점 찾아내기
    ____일반적인 성능 향상 조언
    ____CPU 제한 웹지엘 성능 권고
    ____버텍스 제한 웹지엘 성능 권고
    ____픽셀 제한 웹지엘 성능 권고
    __블렌딩
    ____블렌딩 개요
    ____블렌딩 함수 설정
    ____그리기 순서와 깊이 버퍼
    ____불투명한 오브젝트와 반투명한 오브젝트 그리기
    ____블렌딩 공식의 기본 연산자 변경
    ____선곱셈 알파값 사용
    __나아가서
    ____웹지엘 프레임워크를 사용하자
    ____구글 크롬 웹 스토어에 등록
    ____추가적인 자료
    __정리

출판사 서평

★ 이 책에서 다루는 내용 ★

■ 웹지엘 기초
■ 웹지엘과 다른 그래픽 기술 비교
■ 선형대수학
■ 트러블슈팅과 디버깅 테크닉
■ 웹지엘 API를 사용한 그리기
■ 자바스크립트 라이브러리와 3D 변환
■ 버텍스 셰이더와 프래그먼트 셰이더 작성
■ 텍스처링과 조명
■ 애니메이션과 사용자 입력
■ 오픈지엘(OpenGL) ES 셰이딩 언어
■ 웹지엘 성능 최적화

★ 이 책의 대상 독자 ★

이 책의 주 독자층은 웹 제작의 기본적인 지식을 갖추고 있으며, 웹지엘을 이용해 2D와 3D 그래픽을 적용한 웹 애플리케이션이나 웹 페이지를 만들고자 하는 웹 개발자다. 그리고 이전에 3D 그래픽 API(오픈지엘이나 Direct3D)를 이용한 경험을 바탕으로, 웹 제작에 웹지엘을 이용하고자 하는 개발자를 대상으로 한다.
또한, 웹지엘을 3D 그래픽 수업에 활용하거나 프로토타입 제작과 테스트에 사용하고자 하는 학생에게도 유용할 것이다. 애플리케이션 제작에 웹지엘을 지원하는 브라우저와 텍스트 에디터만 있으면 되기 때문에 완벽한 툴 체인 설정이 필요한 다른 3D 그래픽 API에 비해 접근성이 높은 편이다.

★ 이 책의 구성 ★

이 책을 처음부터 끝까지 차례로 읽었을 때 가장 학습 효과가 크도록 준비했다. 그러나 독자마다 배경지식이 다르므로, 자신에게 맞는 방법으로 읽어도 상관없다. 다음의 전체적인 개요가 책을 읽는 데 도움이 될 것이다.
1장은 웹지엘의 배경지식과 다른 그래픽 기술과의 차이점에 대해 설명한다. 웹지엘의 그래픽 파이프라인과 그래픽 하드웨어의 전체적인 내용과 3D 그래픽과 웹지엘의 이해를 돕기 위해 선형 대수학의 내용을 일부 다룬다. 1장에서 다루는 내용의 사전 지식이 충분하다면, 생략하고 2장으로 건너가자.
2장에서는 좀 더 실용적인 지식을 배워보자. 첫 번째 웹지엘 애플리케이션을 만들고 버텍스 셰이더와 프래그먼트 셰이더를 어떻게 작성하는지 알아본다. 웹지엘의 학습효과를 높이기 위한 유용한 기법과 디버깅 툴도 소개한다. 또한 웹지엘 애플리케이션 제작시 발생하는 문제를 해결하기 위한 방법도 살펴본다.
3장에서는 웹지엘에서 그리기(drawing)를 사용하기 위한 여러 가지 옵션과 메소드, 프리미티브(primitives)를 배운다.
4장에서는 웹지엘 애플리케이션에서 쓰이는 벡터와 행렬 연산 시에 유용한 3개의 간단한 자바스크립트 라이브러리를 소개한다. 또한 3D 세계(world)의 오브젝트 방향과 위치 변환에 대해서도 배운다. 4장은 매우 중요하므로 3D 그래픽에 대한 사전 지식이 없다면 충분한 시간을 들여 읽자.
5장은 웹지엘의 텍스처링 구현에 대해 알아본다. 텍스처링은 3D 오브젝트를 실감나게 보이기 위해 매우 중요한 단계다. 그리고 웹지엘에서 컨텍스트 상실을 처리해 견고한 애플리케이션을 만드는 방법을 알아본다. 실제 애플리케이션을 만들기 전에 5장을 꼭 읽어서 견고한 애플리케이션을 만드는 데 참고하자.
6장에서는 웹지엘 장면에서 애니메이션을 사용해 움직임을 만드는 방법에 대해 알아본다. 그리고 자바스크립트에서 이벤트 핸들링에 대해 자세히 알아보고 키 입력과 마우스 입력이 웹지엘 장면에 미치는 영향에 대해 알아본다.
7장에서는 웹지엘의 흥미 있는 분야인 조명에 대해 알아본다. 다양한 조명 모델에 대해 알아보고 조명 모델을 구현하는 버텍스 셰이더와 프래그먼트 셰이더를 작성해본다. 조명은 웹지엘 장면을 사실적으로 만드는 데 매우 중요한 재료가 된다.
8장에서는 웹지엘 애플리케이션의 성능을 최상의 상태로 만드는 여러 가지 가이드라인과, 팁, 트릭에 대해 알아본다. 웹지엘의 성능 문제를 측정하고, 병목 지점을 찾아 제거하는 방법에 대해 알아볼 것이다. 8장은 실제 모바일 산업의 사례를 바탕으로 웹지엘의 하부에서 동작하는 주요 소프트웨어와 하드웨어를 살펴보고, 어떤 일이 일어나는지에 대해서도 다룬다.

기본정보

상품정보 테이블로 ISBN, 발행(출시)일자 , 쪽수, 크기, 총권수, 시리즈명, 원서(번역서)명/저자명을(를) 나타낸 표입니다.
ISBN 9788960776197
발행(출시)일자 2015년 06월 26일
쪽수 424쪽
크기
188 * 250 * 24 mm / 880 g
총권수 1권
시리즈명
에이콘 웹 프로페셔널 시리즈
원서(번역서)명/저자명 Professional WebGL Programming: Developing 3D Graphics for the Web/Andreas Anyuru

Klover 리뷰 (3)

구매 후 리뷰 작성 시, e교환권 200원 적립

사용자 총점

10점 중 9점
10점 중 10점
67%
10점 중 7.5점
33%
10점 중 5점
0%
10점 중 2.5점
0%

67%의 구매자가
집중돼요 라고 응답했어요

67%

집중돼요

0%

도움돼요

33%

쉬웠어요

0%

최고예요

0%

추천해요

10점 중 7.5점
/집중돼요
업무에 도움이 많이 될 것 같아요.
10점 중 10점
/쉬웠어요
좋아요! 코드 공부하기 좋네요

문장수집 (0)

문장수집 안내
문장수집은 고객님들이 직접 선정한 책의 좋은 문장을 보여주는 교보문고의 새로운 서비스입니다. 마음을 두드린 문장들을 기록하고 좋은 글귀들은 "좋아요“ 하여 모아보세요. 도서 문장과 무관한 내용 등록 시 별도 통보 없이 삭제될 수 있습니다.
리워드 안내
구매 후 90일 이내에 문장수집 작성 시 e교환권 100원을 적립해드립니다.
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
판매가 5,000원 미만 상품의 경우 리워드 지급 대상에서 제외됩니다. (2024년 9월 30일부터 적용)

구매 후 리뷰 작성 시, e교환권 100원 적립

이 책의 첫 기록을 남겨주세요.

교환/반품/품절 안내

  • 반품/교환방법

    마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환 신청, [1:1 상담 > 반품/교환/환불] 또는 고객센터 (1544-1900)
    * 오픈마켓, 해외배송 주문, 기프트 주문시 [1:1 상담>반품/교환/환불] 또는 고객센터 (1544-1900)
  • 반품/교환가능 기간

    변심반품의 경우 수령 후 7일 이내,
    상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
  • 반품/교환비용

    변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
  • 반품/교환 불가 사유

    1) 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)
    2) 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등
    3) 복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
    4) 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
    5) 디지털 컨텐츠인 ebook, 오디오북 등을 1회이상 ‘다운로드’를 받았거나 '바로보기'로 열람한 경우
    6) 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
    7) 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
    8) 세트상품 일부만 반품 불가 (필요시 세트상품 반품 후 낱권 재구매)
    9) 기타 반품 불가 품목 - 잡지, 테이프, 대학입시자료, 사진집, 방통대 교재, 교과서, 만화, 미디어전품목, 악보집, 정부간행물, 지도, 각종 수험서, 적성검사자료, 성경, 사전, 법령집, 지류, 필기구류, 시즌상품, 개봉한 상품 등
  • 상품 품절

    공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드리겠습니다.
  • 소비자 피해보상 환불 지연에 따른 배상

    1) 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁 해결 기준 (공정거래위원회 고시)에 준하여 처리됨
    2) 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

기분 좋은 발견

이 분야의 베스트

용선생 추론독해 초등 국어 3단계
이벤트
  • 당문전 세트 오픈
  • 완결의 미학
01 / 02
TOP