Game Development
Szécsi, László Szirmay-Kalos, László
Umenhoffer, Tamás
Game Development
írta Szécsi, László, Szirmay-Kalos, László, és Umenhoffer, Tamás Publication date 2015
Szerzői jog © 2015 Szécsi László, Szirmay-Kalos László, Umenhoffer Tamás
Tartalom
Game Development ... 1
1. 1 Introduction ... 1
1.1. Outline ... 1
1.2. Some details ... 1
1.3. Special graphics effects ... 1
1.4. Game history ... 2
1.5. Game history ... 4
1.6. Game history ... 5
1.7. Game history ... 6
1.8. 1991, Wolfenstein3D ... 6
1.9. 1993, Doom ... 6
1.10. 1996, Quake ... 6
1.11. 1997, Quake 2 ... 6
1.12. 1999 Quake 3, Unreal Tournament ... 7
1.13. 2004 Doom3 ... 7
1.14. 2004 Half-Life 2 ... 7
1.15. ... 7
1.16. Who participates in game development? ... 7
1.17. Design ... 8
1.18. Programmers ... 8
1.19. Art division ... 8
1.20. Audio ... 8
1.21. Management ... 8
1.22. Quality assurance ... 9
1.23. Business ... 9
1.24. Other ... 9
2. 2 Polygon modelling ... 9
2.1. Blender ... 10
2.2. ... 10
2.3. Final goal ... 12
2.4. Base blueprint ... 13
2.5. Screens ... 14
2.6. Setup 3 views ... 15
2.7. Background image ... 15
2.8. Create polygonal object: cube ... 17
2.9. ... 20
3. 3 Texture painting ... 35
3.1. GIMP ... 35
3.2. Explore the interface... ... 36
3.3. Creating selections ... 36
3.4. Path tool ... 36
3.5. New channel ... 38
3.6. Use channels as selections ... 40
Game Development
3.20. Dirt and smudge ... 56
3.21. ... 59
4. 4 Character Modelling ... 59
4.1. Start ... 59
4.2. Cylinder with 14 sides ... 59
4.3. Front view / background image ... 60
4.4. Delete half of the cylinder faces, adjust vertices to face ... 60
4.5. First refinement: Loop subdivide (CTRL+R) ... 60
4.6. Position vertices in front view ... 61
4.7. Set background image for side view ... 61
4.8. Move vertices to their place ... 62
4.9. Delete lower cap faces ... 62
4.10. We don't have a blueprint for back view, but in a free camera view, we can adjust the geometry. In free view always move vertices along one axis at a time. ... 63
4.11. Smoothed normals ... 64
4.12. Freeze rotation ... 64
4.13. Duplicate in object mode ... 65
4.14. Loop subdivide refinements... ... 66
4.15. Refine the geometry along both horizontal and vertical planes ... 67
4.16. After vertex adjustment the geometry is ready... ... 68
4.17. Creating texture coordinates ... 69
4.18. Texture ... 69
4.19. Select the edges all around under the cap ... 69
4.20. Create an automatic UV layout ... 70
4.21. Adjust the uv coordinates in the UV Editor... ... 71
4.22. A little help...headuv.tga ... 71
4.23. The "completed" head model ... 72
4.24. The End ... 73
5. 5 Character Modelling II. Modelling the body ... 73
5.1. Start ... 73
5.2. New Cylinder ... 74
5.3. Set background image in front view ... 74
5.4. Move vertices to their place ... 75
5.5. Refinement (loop subdivide), vertex position adjustment: ... 76
5.6. Delete cap faces ... 77
5.7. Set background image for side view (torso_side.jpg) ... 78
5.8. Move vertices to their place in side view ... 79
5.9. Extrude the shoulders, adjust vertex positions ... 80
5.10. Extrude the collar (torso.blend) ... 81
5.11. Extrude the arm, adjust vertices ... 83
5.12. Help ... 84
5.13. Top view image (arms_top.jpg) ... 85
5.14. Creating legs ... 86
5.15. legs.blend ... 86
5.16. We also need: ... 87
6. 6 Character animation in Blender - Rigging ... 87
6.1. Start ... 87
6.2. Create one bone of a skeleton ... 88
6.3. Create new bones ... 89
6.4. Build the bone hierarchy! ... 89
6.5. Name the bones (_l postfix) ... 93
6.6. Renaming the bones ... 96
6.7. Bind geometry to the skeleton ... 97
6.8. Test (skeleton can be posed in Pose mode) ... 98
6.9. Undo transformation of a bone ... 98
6.10. Vertex groups ... 98
6.11. Bone weight painting ... 99
6.12. Just paint weights until we are satisfied... ... 99
7. 7 Game engine modules ... 100
7.1. What is a game engine? ... 100
Game Development
7.2. Tasks of a game engine I ... 100
7.3. Tasks of a game engine II ... 101
7.4. Tasks of a game engine III ... 101
7.5. Multi-threading ... 101
7.6. Multi-threading library? ... 102
7.7. Rendering - resource management ... 102
7.8. Rendering - material/shader system ... 102
7.9. Rendering - GPU state change management ... 102
7.10. Rendering - Visibility culling ... 102
7.11. Rendering Engine ... 103
7.12. Animation - Physics simulation ... 103
7.13. Physics Engine ... 103
7.14. Animation - Character animation ... 103
8. 8 Rendering pipeline - Ogre3D ... 104
8.1. Pipeline stages I. ... 104
8.2. Pipeline stages II. ... 104
8.3. Preparing vertex data ... 105
8.4. Vertex shader ... 105
8.5. Primitive assembler ... 105
8.6. Backface culling ... 106
8.7. Clipping ... 106
8.8. Rasterization ... 106
8.9. Pixel shader ... 106
8.10. Output merger ... 107
8.11. Z-test ... 107
8.12. Blending ... 107
8.13. "Standard" vertex shader (Cg) ... 108
8.14. "Standard" pixel shader ... 109
8.15. Gouraud shading ... 109
8.16. Phong shading ... 110
8.17. Ogre3D ... 110
8.18. Object-Oriented Graphics Rendering Engine ... 110
8.19. Object Oriented ... 110
8.20. Features ... 111
8.21. Basic Ogre usage ... 112
8.22. setupScene ... 112
8.23. setupListeners ... 113
8.24. Material script (.material) ... 113
8.25. Inheritance ... 113
8.26. Shader program definitions (.program) ... 114
8.27. The End ... 115
9. 9 Ogre3D ... 115
9.1. Ogre3D ... 115
9.2. Media files ... 115
9.3. New C++ project ... 115
9.4. Settings for all configurations ... 116
Game Development
9.18. Animated light ... 124
9.19. Test ... 124
9.20. Ground ... 125
9.21. Test ... 126
9.22. Tessellated ground ... 126
9.23. Test ... 127
9.24. Built-in shadows / Sky ... 127
9.25. Test ... 128
9.26. Shaders / Phong shading ... 128
9.27. Shaders / Phong shading ... 129
9.28. Test ... 130
9.29. Test ... 131
9.30. Test ... 132
9.31. Test ... 133
9.32. The End ... 134
10. 10 Billboard, Particle System ... 134
10.1. Basics ... 134
10.2. Run ... 134
10.3. New file: Tree.h ... 135
10.4. New material file: Tree.material ... 135
10.5. OgreBillboardParticles.cpp ... 136
10.6. Test ... 136
10.7. Blending ... 137
10.8. Test ... 137
10.9. Several trees ... 138
10.10. Test ... 138
10.11. No depth buffer write ... 139
10.12. Test ... 139
10.13. Sorted rendering of transparent objects ... 140
10.14. Solution ... 140
10.15. Test ... 140
10.16. A more realistic approach: Billboard Clouds ... 141
10.17. A more realistic tree ... 142
10.18. Tree.material: new material ... 142
10.19. Test ... 143
10.20. Tree.material: new material ... 144
10.21. Test ... 144
10.22. Particle systems ... 145
10.23. New file: Particles.h ... 145
10.24. New file in media folder: example.particle ... 146
10.25. New material file: Particles.material ... 146
10.26. OgreBillboardParticles.cpp ... 146
10.27. Test ... 147
10.28. Individual Work ... 147
10.29. Eg.: ... 147
10.30. The End ... 148
Game Development
1. 1 Introduction
1.1. Outline
• Introduction to game development
• Game engines
• Mobile game programming Android (2D)
• Asset creation, modeling - Blender
• Asset creation, texture painting - GIMP
• Asset creation, animation - Blender
• Graphics - Ogre3D
• Physics - Bullet
• GUI -MyGUI
• Audio - OpenAL
• Networking
1.2. Some details
• Shading, texturing, shadows, bump mapping, shaders ...
• Skeleton animation
• Billboards and particle systems
• Special effects (glow, tone map, depth of field)
• Rigid body physics
• ...
Game Development
1.4. Game history
Game Development
1947 1952 1958
Game Development
1971 1972
1.5. Game history
Game Development
Maze war 1974 SPASIM 1974
1.6. Game history
Game Development
1.7. Game history
1973 1981
1.8. 1991, Wolfenstein3D
1.9. 1993, Doom
1.10. 1996, Quake
1.11. 1997, Quake 2
Game Development
1.12. 1999 Quake 3, Unreal Tournament 1.13. 2004 Doom3
1.14. 2004 Half-Life 2
1.15.
1.16. Who participates in game development?
• Design
Game Development
1.17. Design
• Lead Designer
• Gameplay designer
• Level designer
• Story and dialog design
1.18. Programmers
• Lead programmer
• Game mechanics programmer
• 3D graphics programmer
• AI programmer
• GUI programmer
• Physics programmer
• Audio programming
• Network programmer
• Tool programmer
1.19. Art division
• Art director
• Concept artist
• 2D artist/interface designer
• 3D modeler
• Character modeler
• Texture painter
• Animator / MOCAP
• Storyboard
1.20. Audio
• Dialog recording
• Sound effects
• Music
1.21. Management
Game Development
• Line producer
• Associate producer
• Studio head
1.22. Quality assurance
• Publisher
• QA Lead
• Main team
• Multiplayer team
• Fresh team
• Compatibility team
• Localization
• Beta testing
• Beta tester
• Beta testing program manager
1.23. Business
• Business development
• business development executive
• Studio head
• Lawyers
• Licensing
• Marketing
• Manufacturing
Game Development
2.1. Blender
• http://www.blender.org
Explore the interface!!!
2.2.
Game Development
1.
Camera movement:
ALT + LMB : rotate ALT + RMB : zoom ALT + MMB : pan
Game Development
2.
3.: Save as Default Concept "art"
2.3. Final goal
Game Development
[fragile]
2.4. Base blueprint
Game Development
http://cg.iit.bme.hu/gamedev/KIC/02_DevToolsAssets/01/frontview.jpg http://cg.iit.bme.hu/gamedev/KIC/02_DevToolsAssets/01/sideview.jpg
2.5. Screens
Game Development
• Create new screens
Toggle full screen for one view: SHIFT+SPACE
2.6. Setup 3 views
• New scene
• Delete cube (Delete)
• Rearrange subwindows:
Toggle full screen for one view: move mouse over the screen and SHIFT+SPACE
Perspective Front Side (Left/Right)
2.7. Background image
Game Development
Game Development
2.8. Create polygonal object: cube
Move cursor to origin (hit Space and type "snap", Then choose: Snap Cursor to Center)
Game Development
Game Development
Helyezzük ide a sarokba TAB
MMB
Game Development
2.9.
• Result after:
• extrude,
• scaling,
• translate or
Game Development
• Movement of individual vertices
After choosing extrude press ESCAPE:
New faces are created but moved to zero distance from the base face After extrude scale the new face down a little
Game Development
• We should modify the geometry a little:
• The red edge should be merged with the yellow one.
• Moving the edge is not enough (NO ZERO AREA POLYGONS!!)
• Knife tool. Click on edges to cut polygons. If ready, press ENTER.
Switch to vertex mode and select two vertices
Merge tool: Merges the vertices together and removes zero sized polygons Do the same for the other vertices, and we can continue extruding...
Game Development
Game Development
Game Development
Extruding the side polygon
Game Development
Delete
Game Development
Game Development
Select all
Copy geometry:
"Add duplicate" then ESC!!!
Game Development
I.
Game Development
II.
III.
Game Development
IV.
Create the:
extrude REGION
ESC (zero distance extrusion) Scale it up a bit
Game Development
Loop cut and slide
Game Development
Rims and indentations
Game Development
Game Development
The End
3. 3 Texture painting
[fragile]
3.1. GIMP
• Dowload GIMP and install: http://www.gimp.org/downloads/
• Load: http://cg.iit.bme.hu/gamedev/KIC/02_DevToolsAssets/02/Gate_UVMap.png
Game Development
3.2. Explore the interface...
Windows Single-Window Mode
3.3. Creating selections
• Paths tool
3.4. Path tool
Game Development
If ready hit ENTER
Game Development
3.5. New channel
Game Development
Game Development
3.6. Use channels as selections
Right click Final chanells!!
Game Development
3.7. Open: wall.jpg
Game Development
3.8. Rescale
Game Development
1000 x 666
3.9. Offset
Game Development
500 x 333
3.10. Not OK!!! Undo!
Game Development
Undo
3.11. Correct luminance differences
Game Development
Soft light, 100% opacity
3.12. Now offset again!
Game Development
Game Development
3.13. Clone tool
• CTRL + click: where to copy from
• Start painting
• Source should be reset often(step 1)
Game Development
Offset again to test the result!
[fragile]
3.14. Define pattern
• CTRL+A (select all)
• CTRL+C (copy)
• (Create directory: GIMP\Data\settings\patterns)
Game Development
• Select mortared walls
• Use clone tool or bucket paint tools, and set the source to pattern
• Paint or fill...
Game Development
3.16. Bricks under the mortar
• Load brick3.jpg
• Rescale
• Clone tool, define the source
• Back to archwayBase.psd
Game Development
3.17. Smoothing the boundaries
• Smudge tool
• Clone tool
• Eraser
• etc...
Game Development
3.18. Fill all other areas
Game Development
3.19. Dirt and smudge
Game Development
Paint dirty areas where water
Game Development
3.20. Dirt and smudge
Game Development
Smudge it!
Game Development
Game Development
3.21.
The end
4. 4 Character Modelling
4.1. Start
Game Development
4.3. Front view / background image
4.4. Delete half of the cylinder faces, adjust vertices to face
4.5. First refinement: Loop subdivide (CTRL+R)
Game Development
4.6. Position vertices in front view
Game Development
4.8. Move vertices to their place
Start with vertices on the face and move them only along the z direction (green arrow), as the other two coordinates were already placed correctly in front view.
4.9. Delete lower cap faces
Game Development
4.10. We don't have a blueprint for back view, but in a free
camera view, we can adjust the geometry. In free view always
move vertices along one axis at a time.
Game Development
4.11. Smoothed normals
4.12. Freeze rotation
Game Development
4.13. Duplicate in object mode
Game Development
4.14. Loop subdivide refinements...
Game Development
4.15. Refine the geometry along both horizontal and vertical
planes
Game Development
4.16. After vertex adjustment the geometry is ready...
Game Development
4.17. Creating texture coordinates
4.18. Texture
Game Development
4.20. Create an automatic UV layout
Game Development
4.21. Adjust the uv coordinates in the UV Editor...
We can use:
Game Development
4.23. The "completed" head model
Game Development
4.24. The End
5. 5 Character Modelling II. Modelling the body
5.1. Start
• http://cg.iit.bme.hu/gamedev/KIC/02_DevToolsAssets/04/
• Load head.blend into Blender
Game Development
5.2. New Cylinder
5.3. Set background image in front view
Set background image in front view: torso_front.jpg Rotate cylinder to look like this:
Game Development
5.4. Move vertices to their place
Game Development
5.5. Refinement (loop subdivide), vertex position adjustment:
Game Development
5.6. Delete cap faces
Game Development
5.7. Set background image for side view (torso_side.jpg)
Game Development
5.8. Move vertices to their place in side view
Game Development
5.9. Extrude the shoulders, adjust vertex positions
Game Development
5.10. Extrude the collar (torso.blend)
Game Development
Game Development
5.11. Extrude the arm, adjust vertices
Game Development
5.12. Help
Help: Front view image (arms_front.jpg) extrude, scale...
Game Development
Game Development
5.14. Creating legs
Creating legs is similar.
Details are up to you!
We can use: extrude, scale, rotate faces
(cut faces (knife cut), vertex merge, create new faces etc...)
5.15. legs.blend
Game Development
5.16. We also need:
• Hands (glove)
• Foot (shoes)
• Accessories (back sack, belt, sunglasses etc..)
• TEXTURING
• Refinement of the whole model
6. 6 Character animation in Blender - Rigging
6.1. Start
Game Development
6.2. Create one bone of a skeleton
Game Development
6.3. Create new bones
Game Development
Game Development
Game Development
Game Development
6.5. Name the bones (_l postfix)
Game Development
Game Development
Game Development
6.6. Renaming the bones
Game Development
6.7. Bind geometry to the skeleton
Game Development
6.8. Test (skeleton can be posed in Pose mode)
6.9. Undo transformation of a bone
6.10. Vertex groups
Game Development
6.11. Bone weight painting
Red: high influence (1.0) Blue: low influence (0.0)
6.12. Just paint weights until we are satisfied...
Game Development
7. 7 Game engine modules
7.1. What is a game engine?
• An extremely complex software package
• A class library
• Additional tools
• level editors
• modeling software plugins
7.2. Tasks of a game engine I
• Multi-threading
Game Development
• Rendering
• resource (tesh, texture, shader) management
• material/shader system
• GPU state change management
• geometry instancing
• visibility culling
7.3. Tasks of a game engine II
• Animation
• Physics simulation
• Character animation
• Particle systems
• Camera animation
• Audio
• GUI
7.4. Tasks of a game engine III
• Artificial intelligence
• state management
• pathing
• Scripting
• Procedural content generation
• global illumination
• vegetation generation
• Networking
Game Development
7.6. Multi-threading library?
• There are some, e.g.
• Intel Thread Building Blocks
• Microsoft Parallel Patterns Library
• but the challenge is to design engine modularization, parallelism, communication, task granularity
• for garage projects giving their own thread to physics and audio suffices
7.7. Rendering - resource management
• Mesh models, textures, shaders must be loaded from files
• Streamed/removed from CPU/GPU memory
• Game objects can reference these resources
• Intermediate buffers, render targets
7.8. Rendering - material/shader system
• New materials should be editable, changeable without touching the code: a kind of scripting is needed
• e.g. Ogre's material scripts
• e.g. the Effects system of D3D
• Assignment of materials to game objects
• Application of material for rendering
7.9. Rendering - GPU state change management
• GPUs are fast - CPU-GPU communication is the bottleneck
• to minimize this, minimize state changes
• render objects with the same materials, textures contiguously
• render queues
• geometry instancing
7.10. Rendering - Visibility culling
• Do not render hidden geometry
• View frustum culling
• PVS - possibly visible set
• a conservative guess on what is visible
Game Development
• if a proxy object inside A fully occludes a proxy object around B, then B is surely not visible
• hierarchies
• GPU support - visibility queries
• when rasterizing proxy of B, did we draw anything?
7.11. Rendering Engine
• Ogre3D
• Crystal Space
• Genesis3D
• Irrlicht
• Truevision3D
7.12. Animation - Physics simulation
• The virtual world should not only look real - it should act real!
• Rigid body mechanics
• Collision detection and response
• Contact forces and joints
• Cloth simulation
• Fluid simulation
7.13. Physics Engine
• Bullet
• open source
• ODE - Open Dynamics Engine
• NVidia PhysX
•
Game Development
• input: bone orientations at keyframes
• skinning
8. 8 Rendering pipeline - Ogre3D
8.1. Pipeline stages I.
• Prepare vertex data
• Vertex Shader
• World and View transformation
• Shading
• Projection Transformation
• Make up primitives
• Geometry Shader [sm4, DX10]
• Additional geometry creation
8.2. Pipeline stages II.
• Rasterization
• Backface culling
• Clipping
• Homogeneous division
Game Development
• Viewport transformation
• Pixel shader
• Defining pixel color
• z-test
• blending
8.3. Preparing vertex data
• Vertex buffer
• Array of vertex records
8.4. Vertex shader
• Input data
• varying: [position, normal, color, texture coordinates, ...]
• uniform: model, view, projection matrices, light data, ...
• Output data
• Position in homogenous screen coordinates
• Shaded color
• Other data [normal, texture coordinates]
8.5. Primitive assembler
• non-indexed / indexed
• Adjacent vertices define a triangle
Game Development
8.6. Backface culling
• Based on vertex order (clockwise, counter clockwise)
• If the model has a consistent vertex ordering (preferable)
• The model should be a closed shell
8.7. Clipping
• Offscreen triangle parts are cut
• normalized screen coordinates[-1, -1, 0] [1, 1, 1] [Cartesian]
• Wrap-around problem
• Clipping in homogeneous coordinates
8.8. Rasterization
• Homogeneous division
• Viewport transformation: pixel coordinates
• Linear interpolation
• Interpolation of vertex output data for each covered pixels
• Execute pixel shader for each covered pixel
8.9. Pixel shader
• Input data
• vertex shader output data, linearly interpolated
• pixel coordinates
• Output data
Game Development
• pixel color [RGBA]
• Pixel depth
• Optional, interpolated values can be overriden
• If not overriden: early test
8.10. Output merger
• buffers
• target: frame buffer or texture
• depth-stencil buffer
• operations
• Depth test
• Stencil test
• Alfa blending
8.11. Z-test
• Solution for visibility problems
8.12. Blending
Game Development
8.13. "Standard" vertex shader (Cg)
Game Development
8.14. "Standard" pixel shader
Game Development
8.16. Phong shading
8.17. Ogre3D
8.18. Object-Oriented Graphics Rendering Engine
• www.ogre3d.org
• Manual
• API reference
• SDK
• Demos
• Tools (exporter)
• Wiki
• Forum
8.19. Object Oriented
Game Development
• Main interfaces are independent from:
• 3D API
• Scene type
• Platform
• Extendable
• plugins
• Clear design
8.20. Features
• Multi platform
• Various scene graph management
• Resource management
• Dedicated model format
• Level of detail
• Skinning
• Morphing
• Material scripting system (XML)
• Render state
• Textures(2D,3D,CUBE,animated)
• Shaders
• Particle system (scripts)
• Common shadow computation methods
• Render to texture
• Post processing framework (scripts)
• Overlay framework (scripts)
Game Development
8.21. Basic Ogre usage
OgreRoot root = new Root(...);
root.loadPlugin("RenderSystem_Direct3D9");
RenderSystemList list = root.getAvailableRenderers();
root.setRenderSystem(list.at(0));
root.initialise(...);
RenderWindow renderWindow = root.createRenderWindow(...);
SceneManager sceneManager = root.createSceneManager(...);
ResourceGroupManager.getSingleton().addResourceLocation(...);
ResourceGroupManager.getSingleton().initialiseAllResourceGroups();
setupScene();
setupListeners();
root.startRendering(); //main loop ( )
8.22. setupScene
SceneNode rootSceneNode = sceneManager.getRootSceneNode();
camera = sceneManager.createCamera("Main Camera");
camera.setPosition(0, 10, 20);
Viewport viewport = renderWindow.addViewport(camera, ...);
renderWindow.setActive(true);
Game Development
Entity entity = sceneManager.createEntity("cake", "zuh.mesh");
SceneNode cakeNode = rootSceneNode.createChildSceneNode();
cakeNode.attachObject(entity);
cakeNode.setPosition(-3.5f, 0, 0);
8.23. setupListeners
8.24. Material script (.material)
Game Development
8.26. Shader program definitions (.program)
Game Development
8.27. The End
9. 9 Ogre3D
9.1. Ogre3D
Basic initialization Model loading Materials Lightsources Shaders
9.2. Media files
Game Development
Win32 Console Application
9.4. Settings for all configurations
Game Development
Game Development
9.6. Required dlls (files ending with _d are from the debug folder, others are from the release folder)
9.7. OgreLab1.cpp
Game Development
9.8. Test: build and run
9.9. Log file
Game Development
9.10. Camera / viewport
9.11. Test
Game Development
9.12. Exported Ogre meshes
9.13. Test
Game Development
9.14. Several copies of the model
9.15. Test
Game Development
9.16. Lightsource!
9.17. Test
Game Development
9.18. Animated light
9.19. Test
Game Development
9.20. Ground
Game Development
9.21. Test
9.22. Tessellated ground
Game Development
9.23. Test
Don't forget to set segmentation back to 1!!
Game Development
9.25. Test
9.26. Shaders / Phong shading
Game Development
9.27. Shaders / Phong shading
Game Development
9.28. Test
Yes, this is our shader!!!
Game Development
9.29. Test
Game Development
9.30. Test
Game Development
9.31. Test
Game Development
9.32. The End
10. 10 Billboard, Particle System
10.1. Basics
• http://cg.iit.bme.hu/gamedev/KIC/04_GraphicsEngine/
• 04_03_Ogre3D_BillboardsParticles_Base.zip
• Extract
• Run: OgreBillboardParticles.sln
• Set include and library paths (if not correct)
• Set working directory (if not (SolutionDir)/bin)
• Compile
• Run
10.2. Run
Game Development
10.3. New file: Tree.h
Game Development
10.5. OgreBillboardParticles.cpp
10.6. Test
Game Development
10.7. Blending
Game Development
10.9. Several trees
10.10. Test
Game Development
10.11. No depth buffer write
Game Development
10.13. Sorted rendering of transparent objects
• Individual work: Rewrite the code to contain only one billboard set which should contain all billboards
• Take care of:
• Ordering
• Culling
• Pool (maximal size of the billboardset)
10.14. Solution
10.15. Test
Game Development
10.16. A more realistic approach: Billboard Clouds
Game Development
10.17. A more realistic tree
10.18. Tree.material: new material
Game Development
10.19. Test
Game Development
10.20. Tree.material: new material
10.21. Test
Game Development
10.22. Particle systems
10.23. New file: Particles.h
Game Development
10.24. New file in media folder: example.particle
10.25. New material file: Particles.material
10.26. OgreBillboardParticles.cpp
Game Development
10.27. Test
10.28. Individual Work
Explore the scripts, play with them, try several:
• Emitters
Game Development