게임 개발자를 위한 물리 - 개정2판, 차량, 스포츠, 폭발, 모바일 등 게임 물리의 모든 것
데이비드 버그 & 브라이언 비발레츠 지음, Pope Kim.이정훈.문정균 옮김 / 한빛미디어 / 2015년 1월
평점 :
절판


 


책의 표지를 보면 묘한 긴장감이 감도는 것 같습니다. 고양이와 쥐가 공수를 물리적으로 생각하는 것 같습니다. 편집자는 고양이와 쥐로 서로의 영민함의 대결을 상징한다라고 쓰여 있네요.ㅎ

오랜 만에 물리책을 들여다보면서 고군분투한 시간들을 뒤로 하고 이 책의 장단점을 몇가지 적고자 합니다.

 


우선 이 책의 분량은 아주 적정한 것 같습니다. 분량은 600페이지로 내용안에 군더더기가 별로 없다고 느껴집니다. 역자(김포프)의 매끄러운 번역과 구어체를 사용하여 자칫 딱딱하게만 전개될 것 같은 물리책이 조금은(?) 쉽게 느껴지기도 합니다.(아마 쉽다고 생각한건 구어체 말투로 인한 기분상이라 생각되며, 실제로는 책 내용의 20%밖에 이해가 안가더군요..%ED%9D%91%ED%9D%91%20%EC%9C%A0%EB%A0%B9 이게 현실인가 싶네요. 최소 고등학교 (원문: 대학교) 물리 정도는 이해하고 있어야 한다고 전제하고 있네요. 또한 삼각함수, 벡터, 행렬수학 또한 기본 전제..)

그리고 이책의 모든 내용이 바로 실무와 연결되는 것은 아닙니다. 하지만 일부 내용은 실무에서 사용하진 않지만, 문제를 풀어감에 있어 힌트가 되거나, 간략한 버전 작업시 도움이 되기도 합니다.


아래 첨부한 내용은 3D 게임에 대해서 정말 한마디로 적절하게 표현한 것 같습니다.


추천사에서도 강조하고 있지만, 게임개발자 이외에도 대부분의 3D 프로그래밍을 개발하는 사람에게는 물리라는 단어는 공포로 다가오는 존재이지요. 대부분 물리는 필수라고 생각하지만 막막하기 때문에 이런 사람들을 위해 쓰여진 책이라고 생각됩니다. (이책조차 조금은 버거운게 사실입니다. 천천히 필요할 때 곱씹으며 읽어야 하는 책이라고 생각됩니다.)

물리에 관한 기초 지식을 제공하여 독자 스스로 다양한 문제 해결 능력을 심어주는게 이 책의 목적이며, 원리 및 샘플 프로그램과 계산 과정을 보여주어 한층 심화된 내용을 알려줍니다.

 


일반적인 물리이론을 기초로 설명한 부분도 좋았지만, "디지털 물리" ​을 별도의 챕터로 설명한 부분은 앞으로 다양한 입력장치와 센서들에 대한 부분이 굉장히 중요한 부분이 될 것으로 저자는 생각하고 있는 것 같다. (최첨단 시대니깐..주변기기도 최첨단으로 바뀔 것이므로..ㅎㅎ)


아래는 이 책은 4부(26장)로 구성되어 있으며, 간략하게 아래와 같이 정리할 수 있습니다.

1) 물리학의 기초 (역학 복습)

 1. 기본개념 : 이 책에서 사용하는 가장 기본적인 원칙을 설명합니다. 질량과 질량의 중심, 뉴턴의 법칙, 관성, 단위와 측정, 백터 등의 주제

 2. 운동학 : 선형속도 및 각속도, 가속도, 운동량, 2차원과 3차원에서 파티클과 리지드바디의 일반적인 운동을 설명

 3. 힘 : 힘과 회전력의 원리. (저항력, 역장, 압력 등 힘의 일반적인 분류를 논함)

 4. 동역학 : 동역학에 대해 설명하고 운동학과 동역학 사이의 차이를 설명, 2차원과 3차원에서 파티클 및 리지드바디의 동역학 설명

 5. 충돌 : 파티클 및 리지드바디의 충돌반응에 대해 설명

 6. 발사체 : 발사체의 물리법칙 간략 설명


2) 리지드바디 동역학 (실시간 시뮬레이션을 소개)

 7. 실시간 시뮬레이션 : 수치적분기법 및 안전성과 튜닝에 대한 설명

 8. 파티클 : 파티클 시뮬레이션을 구현하는 법 설명

 9. 2D 리지드바디 시뮬레이터 : 리지드바디 시뮬레이터를 구현하는 법 설명 (회전, 관성텐서)

 10 .충돌반응 구현하기 : 충돌검출과 충돌반응을 더해 실시간 충돌을 구현

 11. 3D 리지드바디 시뮬레이션에서의 회전 : 회전를 처리하는 법 및 관성텐서/2D를 3D로 확장하는 법

 12. 3D 리지드바디 시뮬레이션 : 다수의 리지드바디 충돌법 및 안정성/사실성 문제 소개

 13. 연결된 물체 : 리지드바디 연결하는 법 / 커넥터 (인체, 자동차 등)

 14. 물리엔진 : 물리모델, 시뮬레이션 물체 관리자, 충돌, 힘 이펙터, 수치적분기


3) 물리모델 만들기 (실세계 물리 법칙)

 15. 비행기 : 추진력, 저항, 기하학, 질량, 양력

 16. 배 : 부력, 안정성, 부피, 저항, 속력

 17. 차량과 호버크라프트 : 공기동역학적 저항, 회전저항, 제동거리, 뱅크 등 자동차 물리법칙 및 공중부양, 공기정역학적 양력, 방향 조정 등 호버크라프트

 18. 총/폭발 : 폭발 강도, 반동, 탄도

 19. 스포츠 : 야구, 골프, 테니스. 투구/타격/방망이/공의충돌/스윙/충돌


4) 디지털 물리 (가속도계, 터치스크린, GPS)

 20. 터치스크린 : 촉각 인터페이스 사용법 및 제스처를 통한 물리와 교류하는 법 설명

 21. 가속도계 : 가속도 데이터를 적분하여 속도와 변위 및 회전을 구하는 법

 22. 위치기반 : GPS 데이터를 미분하여 속력과 가속도를 구하는 법

 23. 입력센서와 로드셀 : 압력센서의 물리이론

 24. 3D 디스플레이 : 광학추적장치의 물리이론

 25. 광학추적 기법 : 스테레오스코픽 디스플레이, 자동 스테레오스코픽 디스플레이

 26. 소리 : 소리의 속력과 도플러효과 등 소리 물리


부록 A) 백터연산 : 2D/3D 시뮬레이션에 필요한 벡터연산을 C++ 클래스로 구현

부록 B) 행렬연산 : 3X3 행렬을 처리하는 데 필요한 연산을 C++ 클래스로 구현

부록 C) 쿼터니언 연산 : 3D 리지드바디 시뮬레이션에서 처리하는 쿼터니언 연산자를 클래스로 구현



이 책을 읽으면서 정말 기초가 중요함을 뼈져리게 느낀 것 같습니다. 물리학에 대한 용어부터 막히기 시작하면서 인터넷(구글)에서 검색해가며 이해하고 읽어가니 정말 시간이 많이 필요함을 느낍니다. 이 책을 어느 정도 이해하려면 고등학교때 배운 수학과 물리 지식을 총동원해야 합니다. 그렇다고 이 책의 가치를 폄해하는게 아니라 오히려 물리 및 수학에 자신이 없다고 하더라도 꼭 한번은 읽어보라고 말씀드리고 싶습니다. 정말 하루에 한페이지씩만 자신의 것으로 만든다는 각오로 1년정도 생각한다면 충분히 셥렵가능하리라 생각됩니다. 저 또한 20%이하로 이해되지만 몇 번이고 필요할 때 읽어가며 도전하려고 합니다.




댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo