본문 바로가기

DirectX

3D 게임 프로그래밍 (IT Expert)(일명 : 해골책) 책소개 3D 게임의 생명은 리얼리티 3D 클라이언트 프로그래머에게 가장 필요한 능력은 프로그래밍 스킬이 아니라 모니터 속 세계를 얼마나 현실감 있게 표현할 수 있는가다. 이 책은 이러한 점에 포커스를 맞추어 수학이나 물리의 기초 원리가 게임 속에서 어떻게 구현되는지를 분명하게 보여준다. 또 상업용의 많은 그래픽 데이터를 사용하여 3D 입체 현실을 표현하는 실전 예제를 집중적으로 실습한다. 특히, ‘쉐이더’와 같은 최신 고급 기법을 자세하게 다루고 있어 3D 프로그래머로서 또 한 번 도약할 수 있는 발판이 될 것이라고 확신한다. 목차 1부 ─ 기본초식 1장 3D 기초 용어와 이론 1절 기초 용어 2장 따라해 보기 1절 개요 2절 디바이스 3절 정점 4절 행렬 5절 광원 6절 텍스처 7절 메시 8절 인덱스 .. 더보기
Game Coding Complete Game coding complete 작가 소개 저자 | Mike McShaffry Mike McShaffry는 1990년 Origin Systems에서 게임 개발을 시작했다. 그곳에서 7 년 간 프로그래머, 수석 프로그래머, 디렉터 및 프로듀서로 일하면서 Martian Dreams, Ultima VII, Ultima VIII, Ulitma IX와 Ultima Online 같은 게임들을 만들었으며, Origin과 Electronic Arts의 다른 여러 유명 게임들에도 관여했다. Origin을 나온 후에는 Mattel의 Magnadoodle에서 Microsoft의 Bicycle Casion 2001에 이르는 다양한 종류의 게임들을 만들었다. Mike는 2000년 1월 Compulsive Development를 공동 설립했는데, 그 회사는 M.. 더보기
애니메이션 1 3D 게임에서 나오는 캐릭터를 동작시키는 방법은 크게 두가지 형태가 있다. 1번은 매쉬애니. 2번은 본애니. 1번은 아마도 처음 해 본 사람은 누구나 알것이다. 매쉬애니는 2D시절 스프라이트 애니와 흡사하다. 스프라이트 애니는 한장면 한장면 다 그려서 동작을 만든다. 매쉬애니도 이와 동일하다. 매쉬의 정보를 동작동작다 만들어 놓고, 시간에 맞추어서 그 매쉬를 찍는것이 바로 매쉬애니이다. 2번 본애니는 무엇인가? 사람과 같이 오브젝트에 뼈를 넣고, 그 뼈를 움직이게 하여, 뼈에 붙어있는 피부가 움직이듯, 오브젝트를 변화시키는 것이 바로 본애니다. 본애니에는 피부. 그러니까 매쉬에 어떻게 영향을 주느가에 따라서 스키닝 애니와 스티칭 애니로 나뉜다. 일단 매쉬에 영향을 주는 두 방식에 관해서는 차후에 (과연 .. 더보기
애니메이션 2 첫번째 글에서 나는 본애니의 기본적인 방법에 관해서 이야기 했다. 그때 본애니에서는 스티칭 애니와 스키닝 애니 두개가 있다고 한 기억이 있다. ( 없나? ) 뭐 하여간 오늘은 스티칭 애니의 대표적인 파일포멧인 SMD에 관해서 살짝 이야기 하겠다. 잠시 스티칭 애니에 관해서 살짝 이야기 하고 가겠다. 스티칭 애니는 점 하나에 본하나가 영향을 주는 형태를 말한다. 그때문에 관절부분이 애니때 접힌다면, 뽀족하게 될 소지가 높다. 하지만 버텍스하나에 매트릭스 하나이기에 속도는 빠르다. (그림정보를 찾으려다 귀차니즘의 압박으로 그만두도록하자. 뭐 보는 사람이 있을지도 의문이니...) 참고로 SMD로 본애니를 공부했지만, 의외로 국내에서 SMD를 쓰는 사람과 회사들이 많다는거다. ( 뮤가 SMD로 만들었다....신.. 더보기
애니메이션 3 자 본애니에서 두종류의 애니가 있다고 말했다. 스티칭과 스키닝 다시 차이점을 이야기 한다면 버텍스 하나에 영향을 주는 본이 하나이냐 여러개나의 차이가 바로 스티칭과 스키닝의 차이점이다. 아 그래서 도대체 하나냐 여러개냐가 뭐가 문제냐 라고 생각한다면 그 차이점을 정확하게 설명하면 (사실 이런것은 그림으로 보면 좋은데...자료가 안보인다!!!!! ) 하나만 영향을 받는다면, 특히 관절부분에서 관절을 접을때 매우 각이져서 뽀족하게 되지만, 여러개의 영향을 받게 되면 그 뽀족함이 덜해진다는 것이다. 이것은 바로 스티칭보다 스키닝이 점을 적게써도 더 좋은 효과를 낼수있다는 것을 의미한다. 왜냐 하면, 스티칭은 관절부분에 많은 버택스 추가해야 심하게 안꺽여 보이지만 스키닝은 적당히 몇개만 써도 부드럽게 할 수 있.. 더보기
애니메이션 4 귀차니즘과 더위에 지쳐 결국 오늘에서야 글을 쓰게 되었다. 후.. 사실 아무도 안 기다리는 것 같지만 그래도 시작을 했으면 끝을 봐야하기에. 일단 내가 만든 익스포터는 그 유명한 "맥스 스크립트" (강조폰트컬러를 파란색으로 하기로 했다. 빨간색 강조는 더 더워보여서..ㅡ.ㅡ;;;) 로 만들어 졌다. 그것이 뭐냐! 그냥 맥스에서 지원하는 자체 스크립트일 뿐이다. 기능도 꽤 막강하고, 편리성이 강조되어있어서... 맥스 스크립트에 관해서는 http://www.3dstudy.net/ 의 욘사마에게 여주어 봅시다. ..이제부터 시작일....까? 익스포트 포멧명은 OSM이다. 왜 OSM인가 하면! 그. 냥. 진정하시라. 더이상 알려하면 다칩니다. 이번에 공개하는 것은 위에 적어놓은 http://www.3dstudy.. 더보기
내적(dot product) 외적(cross product) 이용 내적 밝기 계산에서 대표적으로 사용되는데, 면에 수직인 벡터(흔히 노말벡터라 부르는)과 빛방향벡터의 사이각을 이용한 내적값으로 밝기를 구하게 됩니다. (단위 벡터를 사용하므로, 면에수직일때 원래밝기, 면에 가까워질수록 어두워집니다. ) 외적 주로 곡면 또는 평면의 한 점에 대해 서로 다른 두 접선 벡터가 주어질 때, 그 표면에 수직한 법선 벡터를 구하는데 사용한다. 두 3D 벡터 P와 Q의 외적은 PXQ로 표기하며, 교환 법칙이 성립하지 않으므로 A와 B의 순서에 주의해야 한다. 즉, PXQ = [Py*Qz - Pz*Qy, Pz*Qx - Px*Qz, Px*Qy - Py*Qx] 교환법칙은 PXQ = -QXP 임을 주의해야 한다. 표면의 법선 벡터 계산 삼각형의 면적 계산 더보기