티스토리 뷰

08월 08일 리뷰 - 리뷰자 김종욱   Physics for Game Developers  데이비드 버그, 브라이언 비발레츠 지음 Pope Kim, 이정훈, 문정균 옮김   이 책의 겉표지는 일단 고양이(?)이로 예상되는 객체가 쥐를 노려보는 그림으로 시작 된다. 리뷰어의 생각으로는 전혀 물리와는 관계가(?) 없다고 보이나, 학습을 시작하기에 앞서 흥미 진지함을 불러 일으키는 것 같아 너무 좋았다.  이 책의 순서는 이론적인 배경 -> 간단한 시뮬레이터 -> 2D 시뮬레이터 구현 -> 3D 시뮬레이터 구현 ->각종 사회 현상들 -> 부수 자료 순으로 이루어져 있다.  책을 읽을 때 본 리뷰어가 권장하는 것은 반드시 이론적 배경을 읽어보고 시작하라는 것이다. 왜냐하면 이론이 부족한 경우 이론을 충분히 학습한 후에 코딩 즉 실채화 과정으로 들어가야 학습력이 배로 늘 수 있기 때문이다. 뿐만 아니라 본 물리 세계를 컴퓨터의 세계로 다시 리 월드화 한다는 것을 배우는 만큼, 현실세계의 관점과 컴퓨터 세계의 관점을 잘 이해하고 있어야 한다. 홈 > 책 > 게임 개발자를 위한 물리(개정2판) : 차량, 스포츠, 폭발, 모바일 등 게임 물리의 모든 것 - ① 홈 > 프로그래밍 > 게임 개발자를 위한 물리(개정2판) : 차량, 스포츠, 폭발, 모바일 등 게임 물리의 모든 것 -  ②  아래에 나와있는 경로를 통해 한빛미디어 홈에서  게임 개발자를 위한 물리(개정2판) : 차량, 스포츠, 폭발, 모바일 등 게임 물리의 모든 것 의 정보를 얻을 수 있다. http://www.hanbit.co.kr/book/look.html?isbn=978-89-6848-155-0 게임 개발자를 위한 물리(개정2판) : 차량, 스포츠, 폭발, 모바일 등 게임 물리의 모든 ... 게임 개발자의 서재에 반드시 꽂혀 있어야 할 물리책 물리는 실감 나는 게임을 만드는 데 필수지만, 동시에 개발자들이 어려워하는 주제이기도 합... www.hanbit.co.kr   책의 리뷰에 앞서 어떤이가 읽으면 좋을지에 관한 지극히 개인적인 생각을 적어보겠다.   【어떤 독자를 위한 책인가】   게임 개발자를 위한 물리(개정2판) : 차량, 스포츠, 폭발, 모바일 등 게임 물리의 모든 것 은 물리 현상에 대해 관심이 많거나 혹은 현재 하는 프로젝트가 고급 프로그래밍 물리학과 관련이 있는 분이라면 반드시 읽어보길 권한다. 하지만 프로그래밍을 막 시작하였거나 경험이 많이 없으신 분이 읽기에는 어려운 책이므로 가급적 기초를 튼튼히 하시고 읽어보시길 권한다.        【책의 구성】 게임 개발자를 위한 물리(개정2판) 책의 구성은 어떠한가.  본서의 구성은 위에서 언급했던 것들과 마찬가지로 처음에는 이론적 배경에 관해서 설명을 한다. 즉 고등 물리-> 공업 물리 등 우리가 현실세계에서 볼 수 있는 자연 현상을 컴퓨터 세계로 이식하기에 필요한 필수 이론적 배경에 대해서 설명한다. 따라서 처음 몇장에 걸쳐 이루어져있는 이론 배경을 반드시 읽어보고 학습하시길 권한다.   다음으로는 직접 2d, 3d로 개발할 수 있는 코드를 바탕으로 설명한다. 이 장들부터는 자연현상부터 여러가지 기법들에 관해서 설명하므로 개발 실무자들이나 컴퓨터 물리를 연구하는 사람이라면 굉장히 흥미로운 장이 될 것이라 예상한다.  마지막 장은 이 책에서 사용한 예제 H, Cpp 구현 소스 코드가 나오므로, 본 소스코드를 그대로 따라서 실습하실 분이라면 반드시 참고해야 할 것이다.   게임 개발자를 위한 물리(개정2판) : 차량, 스포츠, 폭발, 모바일 등 게임 물리의 모든 것을 마치며  - 게임 개발자를 위한 물리(개정2판) : 차량, 스포츠, 폭발, 모바일 등 게임 물리의 모든 것 책은 정말로 훌륭한 책이다. 한국에 거의 없는 자연현상을 프로그래밍 할 수 있게 해주는 몇 안되는 책인 동시에, 요즘 각광받고 있는 현실감 있는 물리 시뮬레이터 관련해서 자세히 설명한 대한민국의 몇 없는 책 중에 한 책이다. (지극히 리뷰어의 생각임)      따라서 정말로 물리 세계에 입문하고 싶은 사람이나, 자연 세계 현상을 프로그래밍으로 옮기는 원론적 학문에 접근하고자 하는 분이라면 본서를 꼭 읽어보길 권한다.  추가로.... 현재 안드로이드 프로젝트 관련 본 서의 내용을 으용한 URL과 소스코드 URL을 공유한다. http://blog.naver.com/09kjm/220441929736 (이 외에도 자료가 많으니 참고하시길 바란다.)   [Day 01] Upload J.R.C Physics DAY 01. Upload J.R.C Physics기본적인 물리엔진 프래임에 중력가속도로 등속운동하는 소스코드를 작성하였다. Node의 수를 100 ->200 ->... blog.naver.com http://examples.oreilly.com/9780596000066/ Index to Example Programs Discussed in Physics for Game Developers examples.oreilly.com   【게임 개발자를 위한 물리(개정2판)를 읽으며…….】  한때 스마트폰의 시작과 함께 세계적으로 히트를 첬던 게임이 있었다. 그것은 바로 Angry Birds 란 게임이다. 이 게임이 세계적으로 호황을 이끌 수 있었던 것은 터치를 이용한 Killing Time용이라는 점과 Real Physics 개념을 게임에 접목시켰기 때문에 대중들의 마음을 사로잡을 수 있었다.  이것만 보아도 원천 기술 확보가 얼마나 중요한지 알 수 있다. 만약 Angry Bird 를 개발할 때 2D Physics에 대한 이론적 배경과 개발 능력을 가진 개발자가 없었더라면 절대로 Angry Birds 는 세상 밖으로 나올 수 없었을 것이다.  따라서 지극히 개인적인 생각이지만, 요즘 개발 트랜드를 추구하는 것 못지않게 이러한 원천 기술을 연구하는 것에 많은 투자가 이루어져야 한다고 생각한다. 그리고 가장 중요한 것은 프로그래머와 앞으로 IT를 이끌어갈 인재들의 관심이 필요하다고 생각된다. 【점수…….】 구성 : ★★★★★ 내용:★★★★★  디자인: ★★★☆☆ 전문성 : ★★★★★       #본 리뷰는 리뷰자 김종욱의 저작권에 귀속되므로 참고시 참고 URL과 명시를 저작자에게 알려주시길 바랍니다. #본 리뷰의 점수 및 평가 내용은 김종욱 리뷰자의 한정된 것이므로 확정된 답이 안임을 명시합니다. #학습과 관련된 질문과 문제에 대한 질문은 일체 받지 않습니다. 스스로 찾아서 학습하는 것 그것이야 말로 진정한 학습자입니다.    ######  감사합니다  ###### 

게임 개발자의 서재에 반드시 꽂혀 있어야 할 물리책물리는 실감 나는 게임을 만드는 데 필수지만, 동시에 개발자들이 어려워하는 주제이기도 하다. 이 책은 물리학의 기초부터 시작해, 게임 개발에 꼭 필요한 파티클 및 리지드바디 역학을 친절히 설명하고, 비행기, 차량, 총과 폭발 등 게임에 자주 등장하는 물리모델을 살펴보고 구현해본다. 특히 이번 개정2판은 터치스크린, 가속도계 등 모바일 관련 기술부터 3D 디스플레이까지 최신 디지털 물리를 다루는 파트가 추가되어 [앵그리버드]나 [컷더로프]처럼 모바일 기기에 특화된 물리효과를 구현하고자 하는 개발자들에게 더욱 큰 도움을 줄 것이다. 기초 물리 지식부터 2D, 3D, 모바일까지 아우르는 유일한 게임 물리 책이다.

PART I 물리학의 기초

CHAPTER 1 기본 개념
__1.1 뉴턴의 운동법칙
__1.2 단위와 측정
__1.3 좌표계
__1.4 벡터
__1.5 미분과 적분
__1.6 질량, 질량중심, 관성 모멘트
__1.7 뉴턴의 제2운동법칙
__1.8 관성텐서
__1.9 상대론적 시간

CHAPTER 2 운동학
__2.1 속도와 가속도
__2.2 등가속도
__2.3 가변가속도
__2.4 2차원 파티클 운동학
__2.5 3차원 파티클 운동학
____2.5.1 X 성분
____2.5.2 Y 성분
____2.5.3 Z 성분
____2.5.4 벡터
____2.5.5 목표물 맞히기
__2.6 키네마틱 파티클 폭발
__2.7 리지드바디 운동학
__2.8 로컬좌표축
__2.9 각속도 및 각가속도

CHAPTER 3 힘
__3.1 다양한 힘
__3.2 역장
__3.3 마찰력
__3.4 유체저항
__3.5 압력
__3.6 부력
__3.7 스프링과 댐퍼
__3.8 힘과 회전력
__3.9 마치며

CHAPTER 4 동역학
__4.1 2차원 파티클 동역학
__4.2 3차원 파티클 동역학
____4.2.1 X 성분
____4.2.2 Y 성분
____4.2.2 Z 성분
____4.2.3 다시 살펴보는 대포 예제
__4.3 리지드바디 동역학

CHAPTER 5 충돌
__5.1 충격-운동량 법칙
__5.2 충돌
__5.3 선형충격 및 각충격
__5.4 마찰

CHAPTER 6 발사체
__6.1 단순 탄도
__6.2 저항
__6.3 마그누스 효과
__6.4 가변질량

PART II 리지드바디 동역학

CHAPTER 7 실시간 시뮬레이션
__7.1 운동방정식의 적분
__7.2 오일러 기법
__7.3 더 나은 방법들
__7.4 마치며

CHAPTER 8 파티클
__8.1 단순한 파티클 모델
____8.1.1 적분기
____8.1.2 렌더링
__8.2 기초적인 시뮬레이터
__8.3 외부힘 구현하기
__8.4 충돌 구현하기
____8.4.1 파티클-지면 충돌
____8.4.2 파티클-장애물 충돌
__8.5 튜닝

CHAPTER 9 2D 리지드바디 시뮬레이터
__9.1 모델
____9.1.1 좌표변환
____9.1.2 적분기
____9.1.3 렌더링
__9.2 기초적인 시뮬레이터
__9.3 튜닝

CHAPTER 10 충돌반응 구현하기
__10.1 선형충돌반응
__10.2 각효과

CHAPTER 11 3D 리지드바디 시뮬레이션에서의 회전
__11.1 회전행렬
__11.2 쿼터니언
__11.2.1 쿼터니언 연산
__11.3 3D 시뮬레이션에서의 쿼터니언

CHAPTER 12 3D 리지드바디 시뮬레이션
__12.1 모델
__12.2 적분
__12.3 비행조종 시스템

CHAPTER 13 연결된 물체
__13.1 스프링과 댐퍼
__13.2 파티클 연결하기
____13.2.1 로프
__13.3 리지드바디 연결하기
____13.3.1 고리사슬

CHAPTER 14 물리엔진
__14.1 자신만의 물리엔진 만들기
____14.1.1 물리모델
____14.1.2 시뮬레이션 물체 관리자
____14.1.3 충돌검출
____14.1.4 충돌반응
____14.1.5 힘 이펙터
____14.1.6 수치적분기

PART III 물리모델 만들기

CHAPTER 15 비행기
__15.1 기하구조
__15.2 양력과 저항
__15.3 다른 힘들
__15.4 조종
__15.5 모델 만들기

CHAPTER 16 배
__16.1 복원성과 침몰
____16.1.1 복원성
____16.1.2 침몰
__16.2 배의 움직임
____16.2.1 상하동요
____16.2.2 롤
____16.2.3 피치
____16.2.4 짝운동
__16.3 저항과 추진
____16.3.1 일반적인 저항
____16.3.2 추진
__16.4 조작성
____16.4.1 키와 추력편향

CHAPTER 17 차량과 호버크라프트
__17.1 차량
____17.1.1 저항
____17.1.2 동력
____17.1.3 제동거리
____17.1.4 스티어링
__17.2 호버크라프트
____17.2.1 작동원리
____17.2.2 저항
____17.2.3 조종

CHAPTER 18 총과 폭발
__18.1 발사체의 움직임
__18.2 조준
____18.2.1 영점조정
____18.2.2 호흡과 자세
__18.3 반동과 충격
__18.4 폭발
__18.5 파티클 폭발
__18.6 폴리곤 폭발

CHAPTER 19 스포츠
__19.1 골프스윙 모델 만들기
____19.1.1 골프스윙 방정식 풀기
__19.2 당구
____19.2.1 구현
____19.2.2 초기화
____19.2.3 시뮬레이션
____19.2.4 힘 계산
____19.2.5 충돌처리

PART IV 디지털 물리

CHAPTER 20 터치스크린
__20.1 터치스크린 종류
____20.1.1 저항막방식
____20.1.2 정전용량방식
____20.1.3 적외선방식 및 광학영상 기법
____20.1.4 색다른 방식: 진동파신호 및 표면음파
__20.2 터치스크린의 물리
____20.2.1 저항막방식 터치스크린
____20.2.2 정전용량방식 터치스크린
__20.3 예제 프로그램
____20.3.1 멀티터치
__20.4 다른 고려할 점
____20.4.1 햅틱 피드백
____20.4.2 게임 속에서 터치스크린을 이용하기
____20.4.3 마우스 입력과의 차이
____20.4.4 커스텀 제스처

CHAPTER 21 가속도계
__21.1 가속도계 이론
____21.1.1 MEMS 가속도계
____21.1.2 일반적인 가속도계 스펙
____21.1.3 데이터 클리핑
__21.2 방향 감지
__21.3 기울기 감지
____21.3.1 폰을 기울여 스프라이트 조종하기
____21.3.2 2 자유도

CHAPTER 22 위치기반 게임
__22.1 위치기반 게임
____22.1.1 지오캐싱과 리버스 지오캐싱
____22.1.2 혼합현실
____22.1.3 증강현실 게임
__22.2 몇 시예요?
____22.2.1 2차원 수학 처리
__22.3 위치, 위치, 위치
____22.3.1 거리
____22.3.2 대권 선수방향
____22.3.3 항정선

CHAPTER 23 압력센서와 로드셀
__23.1 압력
____23.1.1 높은 압력의 효과
__23.2 버튼 연타
____23.2.1 로드셀
__23.3 기압계

CHAPTER 24 3D 디스플레이
__24.1 양안비전
__24.2 스트레오스코픽의 기본원리
____24.2.1 좌우 절두체
__24.3 디스플레이의 종류
____24.3.1 보색 애너글리프
____24.3.2 선형편광과 원형편광
____24.3.3 액정 플라즈마
____24.3.4 자동 스테레오스코픽 영상
____24.3.5 첨단 기술
__24.4 프로그래밍 시 고려사항
____24.4.1 능동적 스테레오스코픽화
____24.4.2 수동적 스테레오스코픽화

CHAPTER 25 광학추적기법
__25.1 센서와 SDK
____25.1.1 키넥트
____25.1.2 OpenCV
__25.2 수치미분

CHAPTER 26 소리
__26.1 소리란 무엇인가
__26.2 음파의 특성과 작용
____26.2.1 조화파
____26.2.2 중첩
____26.2.3 음속
____26.2.4 감쇠
____26.2.5 반사
____26.2.6 도플러효과
__26.3 3D 사운드
____26.3.1 3D 사운드를 듣는 방법
____26.3.2 간단한 예제

APPENDIX A 벡터연산
APPENDIX B 행렬연산
APPENDIX C 쿼터니언 연산
APPENDIX D 참고문헌