• Non ci sono risultati.

Game Engine

N/A
N/A
Protected

Academic year: 2021

Condividi "Game Engine"

Copied!
9
0
0

Testo completo

(1)

1

Local Lighting

(recall?)

Game Engine

Parte del game che si occupa di alcuni dei task “comuni”

Scena / livello Renderer

Real time transofrm + lighting Models, materials … Physics engine

(soft real-time) newtonian physical simulations Collision detection + response

Networking

(LAN – es tramite UTP)

Sound mixer e “sound-renderer”

Gestore unificato HCI devices

Main event loop, timers, windows manager…

Memory management Artificial intelligence module

Soluz dei sotto task comuni AI Supporto alla localizzazione Scripting

GUI (HUD)

(2)

2

Lighting locale

LUCE

OCCHIO

OGGETTO

riflessione

Lighting in breve

Proprietà del materiale

(dati che modellano i materiali)

Ambiente di illunimazione

(dati che modellano le luci)

Dati geometrici

(es. normale, pos osservatore…)

(lo c a l) L IG H T IN G

R, G, B finale

(un modello di lighting)

(3)

3

Reminder: le normali

Attributo per vertice delle mesh…

Reminder:

seams per hard edges

(4)

4

pre-computazione

Normale di un Triangolo: v1

v2

v1×v2

N ˆ

v

1

Nˆ

2

Nˆ

3

Nˆ

4

Nˆ

5

Nˆ

6

Nˆ Normale di un vertice

(condiviso da ntriangoli):

Nn

N N

N

ˆ ˆ ... ˆ

2

1

+ + +

=

|

| ˆ

N N = N

Lighting in breve

Proprietà del materiale

(dati che modellano i materiali)

Ambiente di illunimazione

(dati che modellano le luci)

Dati geometrici

(es. normale, pos osservatore…)

(lo c a l) L IG H T IN G

R, G, B finale

(un modello di lighting)

(5)

5

Materiale

Lighting in breve

Proprietà del materiale

(dati che modellano i materiali)

Ambiente di illunimazione

(dati che modellano le luci)

Dati geometrici

(es. normale, pos osservatore…)

(lo c a l) L IG H T IN G

R, G, B finale

(un modello di lighting)

(6)

6

Ambiente di illuminazione

Insieme (discreto) di emettitori di luce

+ componente ambient

x ogni luce:

geometria: puntiforme o direzionale?

intensità / colore area affected:

area light spot light

Lighting in breve

Proprietà del materiale

(dati che modellano i materiali)

Ambiente di illunimazione

(dati che modellano le luci)

Dati geometrici

(es. normale, pos osservatore…)

(lo c a l) L IG H T IN G

R, G, B finale

(un modello di lighting)

(7)

7

Per-vertex lighting

(“Gouraud shading”)

Frammenti & varying & varying & varying & varying interpolatiinterpolatiinterpolatiinterpolati Vertici & loro attributi& loro attributi& loro attributi& loro attributi

Screen buffer

Vertici poriettati & & & & varyingvaryingvaryingvarying rasterizer

triangoli

computazioni per frammento set-up

rasterizer segmenti set-up

rasterizer punti set-up

computazioni per vertice

compreso:

proprietà materialedel e normale

proietto applicoe lighting

interpolo

colore Compreso:

col. finale compreso:

colore per vertice

(risultato del lighting)

Per-fragment lighting

(“Phong shading”)

Frammenti & varying & varying & varying & varying interpolatiinterpolatiinterpolatiinterpolati Vertici & loro attributi& loro attributi& loro attributi& loro attributi

Screen buffer

Vertici poriettati & & & & varyingvaryingvaryingvarying rasterizer

triangoli

computazioni per frammento set-up

rasterizer segmenti set-up

rasterizer punti set-up

computazioni per vertice

compreso:

proprietà materialedel e normale

trasformo normalesia posizioneche

interpolo

normale compreso:

normale interpolata compreso:

normale trasformata

applico - lighting - per ottenere

il colore frammentodel

(8)

8

Per vertex lighting

Invece di interpolare il colore

dopo il lighting.

interpolo la normale

prima del lighting!

dettaglio: interpolando due vettori normali, non ottengo un vettore normale:

(bisogna rinormalizzare dopo l'interpolazione)

n r

1

n r

0 interpolaz fra e nr0

nr1

interpolaz fra e rinormalizzatanr0

nr1

Per vertex VS Per fragment

Per-vertex Lighting -(a.k.a. "Gouraud Shading") meno oneroso:

applico il lighting una volta per vertice – di solito #vertici << #frammenti

Per-fragment* Lighting (a.k.a. "Phong Shading“) risultati migliori

specialmente con i riflessi luminosi e piccoli (alta “glossiness”)

Per vertex Per Fragment

(*) talvolta (ma impropriamente) detto: per-pixel lighting

(9)

9

Normal-mapping

Frammenti & varying & varying & varying & varying interpolatiinterpolatiinterpolatiinterpolati Vertici & loro attributi& loro attributi& loro attributi& loro attributi

Screen buffer

Vertici poriettati & & & & varyingvaryingvaryingvarying rasterizer

triangoli

computazioni per frammento set-up

rasterizer segmenti set-up

rasterizer punti set-up

computazioni per vertice

compreso:

e normale Nmat.

espazio tangente

T,B

trasformo posizsia N,T,Bche

interpolo

N,T,B compreso:

N,T,B interpolati compreso:

N,T, B leggo

normale, trasformo, applico - lighting - NORMAL

MAP

Computazione lighting

Scritta nel vertex shader

o nel fragment shader

Riferimenti

Documenti correlati

[r]

[r]

[r]

Neri ha arredato e illuminato questo parco con i sistemi Hydra, Alya e Saiph; prodotti che con il loro design moderno ben si integrano con le forme dello Stadio e contribuiscono

servizio al banco che permette l’acquisto immediato di tutto il materiale disponibile delle migliori marche. ufficio di consulenza tecnica specializzato programma

Temporal diving patterns and relationships between diving and movement speed of Marbled Murrelets captured off the central Oregon coast, May 2016: proportion of satellite fixes by

[r]

Scrivere un metodo che, dato un array bidimensionale di interi a, restituisce true se la somma degli elementi a ij , la cui somma degli indici i e j `e pari, `e uguale alla somma