• 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

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

[r]

[r]

[r]

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

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

[r]