yingcai xiao voxel game engine development. what do we need? what tools do we have? how can we...

19
Yingcai Xiao Voxel Game Engine Development

Upload: griffin-mccarthy

Post on 12-Jan-2016

219 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 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

Yingcai Xiao

Voxel Game Engine Development

Page 2: 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

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

Page 3: 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

What do we need?

Page 4: 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

Video Game: Interactive animationVideo Game: Interactive animation

Input Device Driver

Input Device Driver

DisplayDeviceDriver (GDI)

DisplayDeviceDriver (GDI)

Game (Software)

Game (Software)

Page 5: 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

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

Page 6: 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

Voxel Based Game Engine

Page 7: 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

Game Game Objects Objects (GO)(GO)

Conversions to indexed meshes:

Page 8: 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

Game Game Objects Objects (GO)(GO)

Convert

a uniform grid

into an indexed mesh.

O(0,0,0)

D(1,1,1)

2x2x2

Page 9: 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

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/

Page 10: 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

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

Page 11: 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

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.

Page 12: 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

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)

Page 13: 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

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

Page 14: 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

Game Objects (GO)Game Objects (GO)Attributes: Appearance

color,

normal,

transparency,

texture,

bumpy map,

normal map,

Page 15: 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

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, …

Page 16: 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

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.

Page 17: 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

Input DevicesInput Devices

CLI:

• Command Line Input

• Keyboard based

GUI:

• Graphical User Interface

• Mouse, touch screen, …

NUI:

• Natural User Interface

• Kinect, Leap Motion, …

Page 18: 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

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)

Page 19: 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

OutputOutput

Software:

• GDI: Graphics Device Interface

• OpenGL (WebGL, OpenGL-ES)

• OpenCL / Vulkan for GPU

• ActiveX 3D