Introduction to Introduction to 3D Graphics 3D Graphics Engine Engine 김 김김 김 김김 김김김김김 김김김김김 김김김김김 김김김김김 김김김김김김김김 김김김김김김김김
Introduction to Introduction to 3D Graphics 3D Graphics
EngineEngine김 성완김 성완
동의대학교 게임공학과동의대학교 게임공학과부산게임아카데미부산게임아카데미
ContentsContents Computer GraphicsComputer Graphics 3D Rendering Pipeline3D Rendering Pipeline 3D API3D API 3D Hardware3D Hardware 3D Engines3D Engines
Computer GraphicsComputer Graphics Pre-Rendered Pre-Rendered
Computer GraphicsComputer Graphics• CG AnimationCG Animation
Toy StoryToy Story ShrekShrek
Real-Time Real-Time Computer GraphicsComputer Graphics• Interactive Interactive
Computer GraphicsComputer Graphics• GamesGames
Pre-Rendered vs Real-TimePre-Rendered vs Real-Time 장점장점
• 최상의 영상 품질최상의 영상 품질 단점단점
• 장시간의 렌더링 시간장시간의 렌더링 시간 , , Toy Story Toy Story 의 경우 의 경우 심지어 한 프레임 심지어 한 프레임 렌더링에 렌더링에 4848 시간 시간 소요소요
• Interaction Interaction 불가능불가능
장점장점• 고속의 영상처리고속의 영상처리• Interaction Interaction 가능가능
단점단점• 상대적으로 조악한 상대적으로 조악한
영상 영상 (???)(???)
Pre-RenderedPre-Rendered
Real-TimeReal-Time
Real-Time RenderingReal-Time Rendering1998 vs 20031998 vs 2003
Real-Time RenderingReal-Time Rendering1998 vs 20031998 vs 2003
Age of Real-Time RenderingAge of Real-Time Rendering 19951995 년 년 3D 3D
Accelerator chipAccelerator chip 20072007 년경이면 년경이면 a Bug’s a Bug’s
Life Life 정도의 영상이 정도의 영상이 실시간으로 구현가능 실시간으로 구현가능 (Book : Real-Time (Book : Real-Time Rendering 2Rendering 2ndnd Ed) Ed)
Siggraph 2003 Siggraph 2003 에서 에서 Final Fantasy Movie Final Fantasy Movie 의 의 일부 영상이 실시간으로 일부 영상이 실시간으로 재현재현
Age of Real-Time RenderingAge of Real-Time Rendering
Real-Time RenderingReal-Time Rendering Real-Time (Real-Time ( 실시간실시간 )) 이란이란 ??
• 최소 초당 최소 초당 1010 회 이상 화면을 갱신할 수 있을 정도의 회 이상 화면을 갱신할 수 있을 정도의 빠른 속도로 빠른 속도로 3D 3D 영상을 그려낼 수 있어야 한다영상을 그려낼 수 있어야 한다 . .
• Interactivity Interactivity 상호작용 가능상호작용 가능• 통상 초당 통상 초당 30Hz 30Hz 정도의 화면 갱신율 기대정도의 화면 갱신율 기대• 콘솔 게임기용 액션 게임인 경우는 콘솔 게임기용 액션 게임인 경우는 60Hz 60Hz 까지도 까지도
요구요구 Real-Time Rendering 2Real-Time Rendering 2nd Editionnd Edition
http://www.realtimerendering.com/http://www.realtimerendering.com/
3D Rendering Pipeline3D Rendering Pipeline
3D Pipeline High-Level 3D Pipeline High-Level OverviewOverview
Application / SceneApplication / Scene• Scene/Geometry DataScene/Geometry Data• AnimationAnimation• Select Level of Detail (LOD)Select Level of Detail (LOD)
GeometryGeometry• Transform & Lighting, Trivial Culling, Clipping Transform & Lighting, Trivial Culling, Clipping
Triangle SetupTriangle Setup• Slop/Delta Calculation, Scan-Line ConversionSlop/Delta Calculation, Scan-Line Conversion
Rendering / RasterizationRendering / Rasterization• Shading, Texturing, Fog, Alpha test, Depth Shading, Texturing, Fog, Alpha test, Depth
BufferingBuffering
Transform PipelineTransform Pipeline
Transform MatricesTransform Matrices
3D Pipeline Tutorial3D Pipeline Tutorial http://www.extremetech.com/http://www.extremetech.com/
article2/0,1558,9722,00.asparticle2/0,1558,9722,00.asp
3D API3D API OpenGLOpenGL
• Khronos GroupKhronos Group OpenGL ARB Working GroupOpenGL ARB Working Group• 19911991 년 년 1.0 spec1.0 spec• OpenGL 1.5 OpenGL 1.5 • OpenGL 2.1 (August 2006)OpenGL 2.1 (August 2006)• OpenGL ES OpenGL ES • http://www.opengl.org/http://www.opengl.org/
DirectX (Direct3D)DirectX (Direct3D)• MicrosoftMicrosoft• 19961996 년 년 DirectX 2 DirectX 2 • DirectX 9 (December 2002 - August 2007)DirectX 9 (December 2002 - August 2007)• DirectX 10 (November 2006)DirectX 10 (November 2006)• http://msdn.microsoft.com/directx/http://msdn.microsoft.com/directx/
Khronos group membersKhronos group members
MicrosoftMicrosoft
OpenGL State MachineOpenGL State Machine
Direct3D Graphics PipelineDirect3D Graphics Pipeline
3D API & Data3D API & Data 범용성을 위해 통상 특별한 범용성을 위해 통상 특별한 3D Data 3D Data
Structure Structure 를 지원하지 않음를 지원하지 않음 Direct3D Direct3D 의 경우는 예외적으로 의 경우는 예외적으로 X file X file
포맷 지원포맷 지원 , , 하지만 모델과 애니메이션 하지만 모델과 애니메이션 정보만 저장정보만 저장
3D 3D 장면을 관리하는 장면을 관리하는 Scene Graph Scene Graph (Scene data management) (Scene data management) 는 는 지원하지 않음 지원하지 않음
3D data Authoring & Editing3D data Authoring & Editing 일반적인 게임들은 일반적인 게임들은 3D 3D 물체 제작에는 물체 제작에는
3DS Max, Maya 3DS Max, Maya 등의 범용 툴에 주로 등의 범용 툴에 주로 의존의존 , Export Plug-In , Export Plug-In 이용이용
3D 3D 장면 구성에는 주로 자체 툴을 사용장면 구성에는 주로 자체 툴을 사용• Quake Engine Quake Engine 의 의 RadiantRadiant• Unreal Engine Unreal Engine 의 의 UnrealEdUnrealEd
3D Accelerator Hardware3D Accelerator Hardware
NVIDIA GeForce 8800 GTX
Geforce 8800 UltraGeforce 8800 Ultra
SLISLI
ATI Radeon HD 2900 ATI Radeon HD 2900
CrossFire CrossFire
3D Hardware History Overview3D Hardware History Overview
3D Hardware Pipeline3D Hardware Pipeline
GeForce MicroprocessorGeForce Microprocessor
Geforce 8800Geforce 8800
G80 WaferG80 Wafer
Mac OS XMac OS X
Windows VistaWindows Vista
3D Game Engines3D Game Engines 3D Engines List3D Engines List
• http://www.3dengines.net/http://www.3dengines.net/• http://cg.cs.tu-berlin.de/~ki/engines.htmlhttp://cg.cs.tu-berlin.de/~ki/engines.html
대표적인 상업용 대표적인 상업용 3D game engine3D game engine• FPS FPS 게임게임
Unreal Engine 3 $300,000 ~ $600,000Unreal Engine 3 $300,000 ~ $600,000 Crysis Crysis Doom3 $600,000Doom3 $600,000 Source (Half Life 2) $350,000Source (Half Life 2) $350,000 Jupiter (Lithtech) $250,000Jupiter (Lithtech) $250,000
• 범용적범용적 Renderware $250,000Renderware $250,000 GameBryo (NDL) $75,000 ~ $200,000 GameBryo (NDL) $75,000 ~ $200,000 Torque $995 (Programmer 1Torque $995 (Programmer 1 인당인당 ))
Free 3D EnginesFree 3D Engines 대개 대개 Open Source Project Open Source Project 로 개발로 개발 OGRE 3D http://www.ogre3d.org/OGRE 3D http://www.ogre3d.org/ Crystal Space 3D Crystal Space 3D
http://www.crystalspace3d.org/http://www.crystalspace3d.org/ Genesis3D Genesis3D
http://www.genesis3d.com/http://www.genesis3d.com/
Reality EngineReality Engine Unreal Engine Unreal Engine 의 개발사인 의 개발사인 Epic Epic
Games Games 에서 모든 권리를 인수에서 모든 권리를 인수 Xbox 360Xbox 360 에 대응하는 최고 수준의 엔진에 대응하는 최고 수준의 엔진 HDR (High Dynamic Range) HDR (High Dynamic Range)
RenderingRendering PRT (Pre-computed Radiance PRT (Pre-computed Radiance
Transfer) RenderingTransfer) Rendering Full Scene Dynamic Soft ShadowsFull Scene Dynamic Soft Shadows http://www.artificialstudios.com/http://www.artificialstudios.com/
Future?Future?
SIGGRAPH 2007
Bubbling and Frothing Bubbling and Frothing LiquidsLiquids
Real-Time RenderingReal-Time Rendering
Real-Time PhysicsReal-Time Physics
Real-Time FluidReal-Time Fluid
Q & AQ & A 궁금하신 점이 있으면 질문하세요궁금하신 점이 있으면 질문하세요 ..