yingcai xiao voxel game engine development. what do we need? what tools do we have? how can we...
TRANSCRIPT
Yingcai Xiao
Voxel Game Engine Development
What do we need?What tools do we have?
How can we design and implement?
We will answer those questions in an agile way.
Game Engine Development
What do we need?
Video Game: Interactive animationVideo Game: Interactive animation
Input Device Driver
Input Device Driver
DisplayDeviceDriver (GDI)
DisplayDeviceDriver (GDI)
Game (Software)
Game (Software)
Video Game: Interactive animationVideo Game: Interactive animation
Similar to all other programs:
data, algorithms, input, output.
Data: Game Objects
Algorithms: Animation
Input: Interactive Events
Output: Display
Voxel Based Game Engine
Game Game Objects Objects (GO)(GO)
Conversions to indexed meshes:
Game Game Objects Objects (GO)(GO)
Convert
a uniform grid
into an indexed mesh.
O(0,0,0)
D(1,1,1)
2x2x2
Voxel based game engines:
Voxel: volume element, the smallest unit in a 3D space partitioning. Strictly, it is a block in uniform grid or hexahedral network. Broadly speaking, a pyramid in a tetrahedral network can be considered as a voxel too. •http://en.wikipedia.org/wiki/Voxel•https://sites.google.com/site/letsmakeavoxelengine/•http://www.vox-game.com•http://www.vox-game.com/media/
Volume Representation
•Voxel based volume representation: •Hexahedral / Tetrahedral Meshes •Volume Deformation http://coewww.rutgers.edu/www2/vizlab/?q=node/48•Volume Deformation code: •VolDefo http://coewww.rutgers.edu/www2/vizlab/node/59
Voxel based game engines? Or not!
•Ray casting engines may not be voxel engines if the ray stops at the surface of game objects.•Outcast is not really voxel based. It just uses surface-based Ray Casting, not volume based ray casting. •The Voxel Space engine / Comanche (series), ray casted terrain for flight simulation.
Voxel based game engines? Or not!
•The Voxel Space engine / Comanche (series), ray casted terrain for flight simulation.•http://en.wikipedia.org/wiki/Wolfenstein_3D_engine•http://tech.slashdot.org/story/14/09/25/1534207/euclideon-teases-photorealistic-voxel-based-game-engine (laser scanned 3D surface)
Tools for future Voxel-based game engines:
•VTK: open source voxel-based volume rendering library. http://www.vtk.org•www.kitware.com•http://en.wikipedia.org/wiki/Game_engine
Game Objects (GO)Game Objects (GO)Attributes: Appearance
color,
normal,
transparency,
texture,
bumpy map,
normal map,
…
Game Objects (GO)Game Objects (GO)
Physical Properties:
rigid (fixed geometry)
deformable (changeable geometry)
breakable (changeable topology)
intangible (no defined geometry)
roughness,
friction, reflection and refraction coefficients,
weight, …
AnimationAnimation
Keyframe:
Most commonly used.
Need to provide GUI for entering the keyframes.
Procedural:
For advanced physical simulation.
Tracking live actor:
Can be modified and saved.
Input DevicesInput Devices
CLI:
• Command Line Input
• Keyboard based
GUI:
• Graphical User Interface
• Mouse, touch screen, …
NUI:
• Natural User Interface
• Kinect, Leap Motion, …
OutputOutput
Hardware:
• Video Controller
• Graphics Card (2D/3D)
• GPU (graphics processing unit, a dedicated processing unit for rendering 3D graphics)
• GPGPU (general purpose GPU, mostly used as servers for high performance computing / HPC)
• Printers (2D / 3D)
OutputOutput
Software:
• GDI: Graphics Device Interface
• OpenGL (WebGL, OpenGL-ES)
• OpenCL / Vulkan for GPU
• ActiveX 3D