[gamedev] tools programming - cnrvcg.isti.cnr.it/~tarini/teaching/gamedev13/intro.pdf ·...

8
18/03/2013 1 [GameDev] Tools Programming Marco Tarini This Course this course

Upload: others

Post on 17-Apr-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: [GameDev] Tools Programming - CNRvcg.isti.cnr.it/~tarini/teaching/gamedev13/intro.pdf · 2013-03-18 · [GameDev] Tools Programming Marco Tarini This Course this course. 18/03/2013

18/03/2013

1

[GameDev]

Tools Programming

Marco Tarini

This Course

this

course

Page 2: [GameDev] Tools Programming - CNRvcg.isti.cnr.it/~tarini/teaching/gamedev13/intro.pdf · 2013-03-18 · [GameDev] Tools Programming Marco Tarini This Course this course. 18/03/2013

18/03/2013

2

game

contents

Intro: Game Tools

game

game

engine

game

tools

digital artists

game

contents

Intro: game contents!

(aka game assets)

� 3D data

� models

� textures

� materials

� shaders

� animations

� collision objects

� etc

� audio

� music

� sound fxs

� ambient sounds

� voice overs

� etc

� video

� cut-scenes, intros

� etc

� 2D art

� screen splashes

� backgrounds

� GUI / HUD elements

(e.g. buttons, bars),

� [ sprites & tile-sets ? ]

� etc

� text

� dialogues trees

� messages

� translations

� etc

� etc:

� scripts

� stats

� levels

� etc

Page 3: [GameDev] Tools Programming - CNRvcg.isti.cnr.it/~tarini/teaching/gamedev13/intro.pdf · 2013-03-18 · [GameDev] Tools Programming Marco Tarini This Course this course. 18/03/2013

18/03/2013

3

game

contents

Intro: Game Tools

game

game

engine

game

tools

digital artists

game

contents

[MOD]

contents

digression:

game [MOD] development

game

game

engine

(public)

game

tools

game fans!

[MOD]

contents

Page 4: [GameDev] Tools Programming - CNRvcg.isti.cnr.it/~tarini/teaching/gamedev13/intro.pdf · 2013-03-18 · [GameDev] Tools Programming Marco Tarini This Course this course. 18/03/2013

18/03/2013

4

Intro: game contents!

(aka game assets)

� 3D content

� models

� textures

� materials

� shaders

� animations

� collision objects

� etc

� audio

� music

� sound fxs

� ambient sounds

� voice overs

� etc

� video

� cut-scenes, intros

� etc

� 2D art

� screen splashes

� backgrounds

� GUI / HUD elements (e.g. buttons, bars),

� [ sprites & tile-sets ? ]

� etc

� text

� dialogues trees

� messages

� translations

� etc

� etc:

� scripts,

� stats,

� levels'

� 3D Models i.e. tri-meshes with:

� per vertex attrib

� normals, color, AO,

� LODs

� “uv-mapping”

� keyframes

� cyclic animations

� face-morphs,

� “rigging”

� Materials� lighting model stats / flags

� textures

� RGB maps

� normal maps

� alpha maps

� shaders

� vertex, fragments,

Intro:

3D game contents

� Animations� vertex animations

� skeletal animations

� Skeletons

� Collision objects� hit-boxes

� bounding objects

� Particle systems

� Environments� skydomes

� env. maps

� scene props

Page 5: [GameDev] Tools Programming - CNRvcg.isti.cnr.it/~tarini/teaching/gamedev13/intro.pdf · 2013-03-18 · [GameDev] Tools Programming Marco Tarini This Course this course. 18/03/2013

18/03/2013

5

bounding volumes

� Tipi di bounding volumes:� Axis Aligned Bounding Box (A.A.B.B.)

� (generic) Bounding Box

� Discrete Oriented Polytope (D.O.P.)

� Bounding sphere

� Bounding ellipsoids (axis aligned or not)

� Bounding cylinders

� �

� Difetti e pregi� quanto sono onerosi da pre-computare?

� quanto sono aderenti ?

� sono robusti a rotazioni ?

� quanto sono onerose le query (es.: di intersezione)?

Rendering di scene composite

spazio

mondo

(globale)

spazio oggetto

ruota 1

spazio oggetto

automobile

Page 6: [GameDev] Tools Programming - CNRvcg.isti.cnr.it/~tarini/teaching/gamedev13/intro.pdf · 2013-03-18 · [GameDev] Tools Programming Marco Tarini This Course this course. 18/03/2013

18/03/2013

6

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 2 / 1 3 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Scene graphV

M0

M1M2

M3M4 M5

M6

posizonamento

della automobile

(rispetto

al mondo)

posiz. della

ruota

(rispetto

all’

automobile)

M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 2 / 1 3 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Scene graphV

M0

M1M2

M3M4 M5

M6

posizonamento

della automobile

(rispetto

al mondo)

posiz. della

ruota

(rispetto

all’

automobile)

Page 7: [GameDev] Tools Programming - CNRvcg.isti.cnr.it/~tarini/teaching/gamedev13/intro.pdf · 2013-03-18 · [GameDev] Tools Programming Marco Tarini This Course this course. 18/03/2013

18/03/2013

7

Un robot

animato…M

M0

M1

M2

M4 M6

Robot

(bacino)

spazio

mondo

busto1

gamba

Sx

gamba

Dx

spalla

Dx

spalla

Sx

polpaccio

Dx

busto2

M3

M7

piede

Dx

M8M5

collo

Algoritmo 1

mult_matrix( M );

draw( bacino );

push();

mult_matrix( M0 );

draw( busto1 );

mult_matrix( M1 );

draw( busto2 );

push( );

multMatrix( M3 );

draw( spallaDx );

… /* resto del braccio dx */

pop();

push( );

multMatrix( M3 );

draw( spallaSx );

… /* resto del braccio sx */

pop();

pop();

push();

mult_matrix( M2 );

draw( gambaDx );

pop();

Page 8: [GameDev] Tools Programming - CNRvcg.isti.cnr.it/~tarini/teaching/gamedev13/intro.pdf · 2013-03-18 · [GameDev] Tools Programming Marco Tarini This Course this course. 18/03/2013

18/03/2013

8

poses (for a skeleton)poses (for a skeleton)

skins (rigged meshes)skins (rigged meshes)skeletonsskeletons

(Linear blend) Skinning:

oggetti

Skel Human

rest pose(or: bind pose)

pose 0pose 0pose 0pose t20

Skin 1 Skin 2

pose 0pose 0pose t18

Skel Horse

animation 1 animation 2

“rigging”

poses (for a skeleton)poses (for a skeleton)

skins (rigged meshes)skins (rigged meshes)

(Linear blend) Skinning:

Skel

Human

pose 0pose 0pose t20

Skin 1 Skin 2

pose 0pose 0pose t18

animation 1 animation 2

Vincoli

�+

rag

dolling