• Nem Talált Eredményt

Game Development

N/A
N/A
Protected

Academic year: 2022

Ossza meg "Game Development"

Copied!
154
0
0

Teljes szövegt

(1)

Game Development

Szécsi, László Szirmay-Kalos, László

Umenhoffer, Tamás

(2)

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

(3)

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

(4)

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

(5)

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

(6)

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

(7)

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

• ...

(8)

Game Development

1.4. Game history

(9)

Game Development

1947 1952 1958

(10)

Game Development

1971 1972

1.5. Game history

(11)

Game Development

Maze war 1974 SPASIM 1974

1.6. Game history

(12)

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

(13)

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

(14)

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

(15)

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

(16)

Game Development

2.1. Blender

• http://www.blender.org

Explore the interface!!!

2.2.

(17)

Game Development

1.

Camera movement:

ALT + LMB : rotate ALT + RMB : zoom ALT + MMB : pan

(18)

Game Development

2.

3.: Save as Default Concept "art"

2.3. Final goal

(19)

Game Development

[fragile]

2.4. Base blueprint

(20)

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

(21)

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

(22)

Game Development

(23)

Game Development

2.8. Create polygonal object: cube

Move cursor to origin (hit Space and type "snap", Then choose: Snap Cursor to Center)

(24)

Game Development

(25)

Game Development

Helyezzük ide a sarokba TAB

MMB

(26)

Game Development

2.9.

• Result after:

• extrude,

• scaling,

• translate or

(27)

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

(28)

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...

(29)

Game Development

(30)

Game Development

(31)

Game Development

Extruding the side polygon

(32)

Game Development

Delete

(33)

Game Development

(34)

Game Development

Select all

Copy geometry:

"Add duplicate" then ESC!!!

(35)

Game Development

I.

(36)

Game Development

II.

III.

(37)

Game Development

IV.

Create the:

extrude REGION

ESC (zero distance extrusion) Scale it up a bit

(38)

Game Development

Loop cut and slide

(39)

Game Development

Rims and indentations

(40)

Game Development

(41)

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

(42)

Game Development

3.2. Explore the interface...

Windows Single-Window Mode

3.3. Creating selections

• Paths tool

3.4. Path tool

(43)

Game Development

If ready hit ENTER

(44)

Game Development

3.5. New channel

(45)

Game Development

(46)

Game Development

3.6. Use channels as selections

Right click Final chanells!!

(47)

Game Development

3.7. Open: wall.jpg

(48)

Game Development

3.8. Rescale

(49)

Game Development

1000 x 666

3.9. Offset

(50)

Game Development

500 x 333

3.10. Not OK!!! Undo!

(51)

Game Development

Undo

3.11. Correct luminance differences

(52)

Game Development

Soft light, 100% opacity

3.12. Now offset again!

(53)

Game Development

(54)

Game Development

3.13. Clone tool

• CTRL + click: where to copy from

• Start painting

• Source should be reset often(step 1)

(55)

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)

(56)

Game Development

• Select mortared walls

• Use clone tool or bucket paint tools, and set the source to pattern

• Paint or fill...

(57)

Game Development

3.16. Bricks under the mortar

• Load brick3.jpg

• Rescale

• Clone tool, define the source

• Back to archwayBase.psd

(58)

Game Development

3.17. Smoothing the boundaries

• Smudge tool

• Clone tool

• Eraser

• etc...

(59)

Game Development

3.18. Fill all other areas

(60)

Game Development

3.19. Dirt and smudge

(61)

Game Development

Paint dirty areas where water

(62)

Game Development

3.20. Dirt and smudge

(63)

Game Development

Smudge it!

(64)

Game Development

(65)

Game Development

3.21.

The end

4. 4 Character Modelling

4.1. Start

(66)

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)

(67)

Game Development

4.6. Position vertices in front view

(68)

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

(69)

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.

(70)

Game Development

4.11. Smoothed normals

4.12. Freeze rotation

(71)

Game Development

4.13. Duplicate in object mode

(72)

Game Development

4.14. Loop subdivide refinements...

(73)

Game Development

4.15. Refine the geometry along both horizontal and vertical

planes

(74)

Game Development

4.16. After vertex adjustment the geometry is ready...

(75)

Game Development

4.17. Creating texture coordinates

4.18. Texture

(76)

Game Development

4.20. Create an automatic UV layout

(77)

Game Development

4.21. Adjust the uv coordinates in the UV Editor...

We can use:

(78)

Game Development

4.23. The "completed" head model

(79)

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

(80)

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:

(81)

Game Development

5.4. Move vertices to their place

(82)

Game Development

5.5. Refinement (loop subdivide), vertex position adjustment:

(83)

Game Development

5.6. Delete cap faces

(84)

Game Development

5.7. Set background image for side view (torso_side.jpg)

(85)

Game Development

5.8. Move vertices to their place in side view

(86)

Game Development

5.9. Extrude the shoulders, adjust vertex positions

(87)

Game Development

5.10. Extrude the collar (torso.blend)

(88)

Game Development

(89)

Game Development

5.11. Extrude the arm, adjust vertices

(90)

Game Development

5.12. Help

Help: Front view image (arms_front.jpg) extrude, scale...

(91)

Game Development

(92)

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

(93)

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

(94)

Game Development

6.2. Create one bone of a skeleton

(95)

Game Development

6.3. Create new bones

(96)

Game Development

(97)

Game Development

(98)

Game Development

(99)

Game Development

6.5. Name the bones (_l postfix)

(100)

Game Development

(101)

Game Development

(102)

Game Development

6.6. Renaming the bones

(103)

Game Development

6.7. Bind geometry to the skeleton

(104)

Game Development

6.8. Test (skeleton can be posed in Pose mode)

6.9. Undo transformation of a bone

6.10. Vertex groups

(105)

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...

(106)

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

(107)

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

(108)

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

(109)

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

(110)

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

(111)

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

(112)

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

(113)

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

(114)

Game Development

8.13. "Standard" vertex shader (Cg)

(115)

Game Development

8.14. "Standard" pixel shader

(116)

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

(117)

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)

(118)

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);

(119)

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)

(120)

Game Development

8.26. Shader program definitions (.program)

(121)

Game Development

8.27. The End

9. 9 Ogre3D

9.1. Ogre3D

Basic initialization Model loading Materials Lightsources Shaders

9.2. Media files

(122)

Game Development

Win32 Console Application

9.4. Settings for all configurations

(123)

Game Development

(124)

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

(125)

Game Development

9.8. Test: build and run

9.9. Log file

(126)

Game Development

9.10. Camera / viewport

9.11. Test

(127)

Game Development

9.12. Exported Ogre meshes

9.13. Test

(128)

Game Development

9.14. Several copies of the model

9.15. Test

(129)

Game Development

9.16. Lightsource!

9.17. Test

(130)

Game Development

9.18. Animated light

9.19. Test

(131)

Game Development

9.20. Ground

(132)

Game Development

9.21. Test

9.22. Tessellated ground

(133)

Game Development

9.23. Test

Don't forget to set segmentation back to 1!!

(134)

Game Development

9.25. Test

9.26. Shaders / Phong shading

(135)

Game Development

9.27. Shaders / Phong shading

(136)

Game Development

9.28. Test

Yes, this is our shader!!!

(137)

Game Development

9.29. Test

(138)

Game Development

9.30. Test

(139)

Game Development

9.31. Test

(140)

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

(141)

Game Development

10.3. New file: Tree.h

(142)

Game Development

10.5. OgreBillboardParticles.cpp

10.6. Test

(143)

Game Development

10.7. Blending

(144)

Game Development

10.9. Several trees

10.10. Test

(145)

Game Development

10.11. No depth buffer write

(146)

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

(147)

Game Development

10.16. A more realistic approach: Billboard Clouds

(148)

Game Development

10.17. A more realistic tree

10.18. Tree.material: new material

(149)

Game Development

10.19. Test

(150)

Game Development

10.20. Tree.material: new material

10.21. Test

(151)

Game Development

10.22. Particle systems

10.23. New file: Particles.h

(152)

Game Development

10.24. New file in media folder: example.particle

10.25. New material file: Particles.material

10.26. OgreBillboardParticles.cpp

(153)

Game Development

10.27. Test

10.28. Individual Work

Explore the scripts, play with them, try several:

• Emitters

(154)

Game Development

10.30. The End

Hivatkozások

KAPCSOLÓDÓ DOKUMENTUMOK

Our aim was not direct human ecological but we analyzed the system of effects in practical point of view (e.g. We considered the land as a CEA, where the development of

Eubasilissa ayubiaensis new species male holotype genitalia 1L, lateral view; 2L, phallic apparatus, lateral view; 3D, segment IX., X, dorsal view; 4V, seg- ment VIII, ventral

View publication stats View

“Mohamedán írók a steppe népeiről,” 185, note 738). I assume that at the moment we cannot determine with certainty which people they might have been, and in my view

This kind of projection is a compromise: the correct values can be measured parallel to an axis and it gives a good image of the objects in a single view but all

Kardashev created his taxonomy to identify the possible targets of the search for extraterrestrial civilizations, but it is simply indifferent from a cosmic point of view, whether

After this we have to analyze the process from the airline point of view in order to understand the real function of the information systems operating at different airlines.. We have

If we represent fore- shortening in one special direction, which is parallel to the di- rection of view, and project parallelly the planes perpendicular to the plane of the