8 Ä £ & á ] 3 Ä £ Ô « ê Ò - game storyÑ Ë 엔진으로게임을제작하려할때...
TRANSCRIPT
Gible Corp, Ltd.
Strictly Confidential - Use or duplication of the material presented isprohibited without formal authorization from Gible Corp, Ltd.
332-3, Ilsin B/D, Dangsan 6-Ga, Youngdeungpo-Gu, Seoul, Korea.
Tel: 82-2-2068-4412 Fax: 82-2-2068-4415
WWW.GIBLE.COM
Korea’s First Total 3D Solutions Developer & Provider
강연의 목적
3D 엔진의 정의
3D 게임 제작에서의 3D 엔진의 역할
파이프 라인
3D 파일 생성
3D 파일 가져오기
3D 객체의 자료 구조 생성
애니메이션
충돌과 공간 분할
Effect, Shader
데모 제작
G-Blender 단위 컴포넌트
엔진으로 게임을 제작하려 할 때‘게임프로그래머는 어떤 작업을 해야 하는가?’를잘 이해 할 수 있다.
게임 프로그래머가 좋은 게임을 만들기 위해 공부 해야 할 방향설정이 가능하다.
엔진이란 무엇인가? 에 대한 답을 얻을 수 있다.
G-Blender 엔진을 사용하여 간단한 게임을 제작하는 과정을 예제소스와 저작 툴을 사용하여 실제로 보고 배워본다.
강연은 Visual C++와 3ds Max 5.0 그리고 예제 어플리케이션을통해 강연한다.
3D 게임을 제작하기 위한 알고리즘의 집합체
하위 개념Direct3D와 같은 API를 비롯하여 그래픽 하드웨어를구동시키는 소프트웨어를 의미
3D 게임 엔진 G-Blender
상위 개념어떤 특정 게임을 제작하기 위한 툴과 소프트웨어들을 칭함Quake Mod Tool, Never Winter Night-Level Editor
3D 게임 제작을 위한 Framework
3D 게임의 제작에 필요한 핵심 기능들을 제공
컴포넌트 형식으로 제작
엔진 기능의 확장과 추가 용이
제작된 컴포넌트들은 G-Blender 사용자들이 서로 공유 가능
다른 미들웨어와 연동이 용이함
상용 물리 엔진
AI 엔진
네트웤 엔진
3DS Max 의 Export plug-in 사용
Max 를 사용한 Export 시연
엔진 함수를 사용해서 3D 파일을 불러온다.
파일을 불러올 때 주의할 점은 파일이 정적으로 로딩되는지또는 동적으로 로딩 되는지를 선별해서 불러 올 수 있어야한다.
파일 불러오기 예제 소스로 설명
G-Blender Scene Graph라고 하는 3차원 데이터의 자료 구조를이해하고 불러온 데이터들을 자료구조에 맞게 배치 한다.
샘플 데이터를 사용해서 시연
애니메이션과 상태 관리를 하는 함수들을 사용하여 객체에변화를 준다.
애니메이션 예제 소스로 설명
충돌 처리를 위한 공간 분할 알고리즘의 선택
보이는 폴리곤만을 그리기 위한 폴리곤 분할 알고리즘 소개
Octree를 이용한 공간 분할 예제 설명
Effect를 위한 Shader Plug-in 소개
Shader DLL의 유연성과 3ds Max에서 Plug-In형태로 지원되는저작 툴 설명
Shader 예제로 설명
제작된 데모 시연
제작 기간 3주
프로그래머 1명
데모에서 지금까지 설명된 기능들과 방법들을 어떻게 사용했는지 설명
데모 시연
Core 컴포넌트
예: gbSmartPointer, gbFactory, gbProxy 등
G-Blender는 완벽한 객체 지향 구조로 제작
Class들을 관리해 주는 Helper class들과
기본 유틸리티들이 Core 컴포넌트에서 제공
3D Math Types
예: gbMatrix, gbVector, gbQuaternion 등
수학적 체계들을 완전한 클래스 형식으로 제공
수학 체계들은 G-Blender의 알고리즘에서 사용
3D 객체 Class
예: gbGeometry, gbCamera, gbLight 등
3차원 상에서 존재하는 객체들의 집합
3차원 공간 상의 상태나 정보를 나타내는 객체들 제공
Animation Control
예: gbInterpolator, gbTrack, gbKey 등
객체들의 Animation 을 담당하는 class
객체들의 모든 멤버 변수들과 맵핑 가능
각각의 변수들은 Modifier 클래스에 의해서 변화 가능 위치
위치 정보의 애니메이션 값의 변화
Geometry의 Vertex 값의 변화
Texture의 UV Coordinate 값의 변화 등
보간 함수 제공
Linear
Spline
Cubic-Spline
Node Class
예: GroupNode, SwitchNode, OcrtreeNode, Proxy Node 등
자원을 관리하는 Class
3차원 객체들의 트리 구조의 상속 구조로 장면
전체 장면의 관리 가능
파일을 캐쉬, 데이터의 공유 등 가능
Collision Detection
예: Line-Line test, Frustum-Box test, Ray-Box test 등
기본 충돌 함수들의 집합
충돌 바운딩 볼륨은 3ds max의 플러그인으로 제작하여 사용 가능
기본적인 3차원 볼륨의 타입은 모두 제공
Shader
예: Bump Shader, Reflection Shader, Skinning Shader 등
Fixed Function Pipeline과 Programmable Pipeline 혼용 사용 가능
DirectX 9의 HLSL, Nvidia의 Cg, ATI 의 ATI SDK 등 선택 사용 가능
플러그인 DLL 타입으로 한 사람이 만든 Shader를 여러 사람이 공유해서
사용 가능
3DS Max에서 gbShaderDLL을 자동으로 Load 하여 Material에 적용 가능
Renderer
예: gbDxRenderer, gbOGLRenderer, gbXBoxRenderer(제작 중) 등
다양한 Renderer의 지원으로 멀티 플랫폼의 게임을 한가지
소스로 제작 가능
DirectX 9의 Renderer 지원
질문해주세요^^;