• Non ci sono risultati.

Università dell’Insubria

N/A
N/A
Protected

Academic year: 2021

Condividi "Università dell’Insubria"

Copied!
7
0
0

Testo completo

(1)

Computer Graphics

Marco Tarini

Lezione 2: hardware ergo triangoli

Università dell’Insubria

Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2010/11

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a 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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Hardware specializzato per il rendering

• "GPU GPU GPU": GPU

– Graphics Processing Unit – La CPU della scheda video – Instruction Set specializzato!

• Architettura a pipeline pipeline pipeline pipeline

– a "catena di montaggio"

• Modello di computazione SIMD SIMD SIMD SIMD

– sfrutta l'alto grado di parallelismo insito nel problema

• Possiede la propria propria propria propria memoria RAM a bordo – "RAM CPU" vs "RAM GPU"

– grandi copie di memoria da una all'altra dispendiose

Visione di insieme:

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Hardware specializzato per il rendering

• principali produttori:

– NVidia e ATI

(e Intel, AMD - schede integrate)

– supercomp: SUN

• potenza di calcolo – migliaia di GFlops!

• bus molto performante – e.g. PCI-express: ~

16 GB/s

Visione di insieme:

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Hardware dedicato alla grafica : storia – ~25 anni:

• dalla metà degli '80 (e.g.: SGI Iris - 1986)

– dalla metà dei '90, la fiaccola passa dai mainframes ai PC

– progressi enormi

• nella efficienza

– più di "Moore’s Law": ~2.4x ~2.4x ~2.4x ~2.4x / year / year / year / year invece di ~1.6 / year ~1.6 / year ~1.6 / year ~1.6 / year

• nella funzionalità

– aumentano i task che è possibile demandare all'HW spec.

– filosofia di fondo rimasta la stessa

• paradigma di rendering:

basato principalmente su rasterizzazione di triangoli

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Hardware dedicato alla grafica : storia

• aumento potenza: primitive al sec

Peak Perf.

(∆'s/sec)

Year HP CRX

SGI Iris SGI GT

HP VRX Stellar GS1000 SGI VGX

HP TVRX SGI SkyWriter

SGI

E&S F300

One-pixel polygons (~10M polygons @ 30Hz)

SGI RE2 RE1

Megatek

86 88 90 92 94 96 98 00

104 105 106 107 108 109

UNC Pxpl4

UNC Pxpl5

UNC/HP PixelFlow

Flat shading

Gouraud shading

Antialiasing SGI

IR E&S Harmony

SGI R-Monster

Division VPX E&S Freedom Accel/VSIS

Voodoo Glint Division

Pxpl6

PC Graphics Textures

SGI Cobalt Nvidia TNT

GeForce 3

& Radeon

3DLabs

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Hardware dedicato alla grafica : storia

• aumento potenza: GFLOPS

(ecco il perchè del General Purpose Computation on GPU)

(2)

CPU vs GPU

CPU CPU CPU CPU

• Transistors:

<20% ALU

>80% control

 più flessibilità

GPU GPU GPU GPU

• Transistors

~90% ALU

~10% control

 più potenza!

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a CONTROL ALU ALU

ALU ALU

CHACHE

1.4 G transistors  1 TeraFLOP

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Hardware dedicato alla grafica : storia

Virtua Virtua Fighter Fighter

(SEGA) (SEGA)

50K triangles/sec 50K triangles/sec

Dead or Alive 3 Dead or Alive 3

((TecmoTecmo Corp., Xbox)Corp., Xbox)

100M triangles/sec 100M triangles/sec

Dawn Dawn

(NVIDIA) (NVIDIA)

250 triangles/sec 250 triangles/sec

1995 1995 1995

1995 2001 2001 2001 2001 2008 2008 2008 2008

• aumento potenza

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Hardware dedicato alla grafica : storia

• HW supported…

transform and lighting

• HW supported…

polygon fill

• HW supported…

color interpolation (Goroud)

• HW supported…

texture mapping

• HW supported…

per-pixel shading (Phong)

• HW supported…

alpha blending

• HW supported…

fog computation

• HW supported…

Z-buffers

• HW supported…

bump-mapping

• HW supported…

environment mapping (“Cube-maps”)

• HW supported…

stencil buffers (per pixel masks)

• HW supported…

color transform matrices

• HW supported…

paletted textures

• HW supported…

multiple texture accesses

• HW supported…

texture filtering (MIP-maps)

• HW supported…

Level-of-Detail computation

• HW supported…

dependent texturing

• …

• Programmable HW Programmable HW Programmable HW Programmable HW

• aumento capabilities

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Hardware dedicato alla grafica : storia

• Progresso congiunto HW e Algoritmi – Un po' come ruota e strada

tecnologia ruota

tecnologia strada

te cn ic he a lg or itm ic he sv ilu pp i h ar dw ar e

continua contaminazione fra livelli livelli livelli livelli diversi!

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Livelli? Che livelli?

Scheda Grafica Driver Scheda grafica

API Applicazioni

Monitor Algoritmi

SDK

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Livelli

Scheda Grafica Driver Scheda grafica

API Applicazioni

Monitor

Bomb jack - Tehkan 1984

Il tubo catodico (CRT):

un fascio di elettroni diretto su una superficie coperta di fosfori



Display vettoriali:

il fascio veniva pilotato direttamente in maniera libera



Display raster CRT : linea per linea, si spazza tutto lo schermo N volte al secondo (N = refresh rate) Algoritmi

SDK

(3)

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Livelli

Scheda Grafica Driver Scheda grafica

API Applicazioni

Monitor

Display raster LCD (Liquid Crystal Display) liquido + polarizzazione luce

Plasma display per pixel:

xeno ionizzato via elettrodi reagisce

Proiettori LCD o DLP.

Specchietti controllati x riflettere luce Algoritmi

SDK

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Livelli

Scheda Grafica Driver Scheda grafica

API Applicazioni

Hardware specializzato per CG

Monitor Algoritmi

SDK

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Livelli: Driver

Scheda Grafica Driver Scheda grafica

API Applicazioni

Monitor

 Driver:

- insieme di routine

- controlla a le periferiche hardware - basso livello!

 Seviluppato

dagli stessi produttori HW Algoritmi

SDK

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Livelli: API

Scheda Grafica Driver Scheda grafica

API Applicazioni

Monitor

Application Program Interface

 Insieme di routines - (sotto forma di libreria) - medio livello - x lo sviluppatore

 le 2 API principali:

• OpenGL

• Direct3D

 esempio: con l’API di OpenGL :

glBegin(GL_LINES);

glVertex2f(0.0,0.0);

glVertex2f(1.0,1.0);

glEnd();

Algoritmi SDK

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Livelli: Algoritmi

Scheda Grafica Driver Scheda grafica

API Applicazioni

Monitor Algoritmi

SDK

Il regno dello sviluppatore!

 L’esempio precendente è un algoritmo (*) che, usando le funzioni glBegin,glEnd e glVertex2f della API OpenGl, disegna un segmento tra (0,0) e (1,1)

(*) molto banale

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Scheda Grafica Driver Scheda grafica

API

Livelli: Algoritmi

Applicazioni

Monitor Algoritmi

SDK

Quando un algoritmo che implementa una nuova funzionalità ha successo può venire incluso a livello dell’API.

• chi lo decide?

• chi la scrive!

Per DirectX decide Microsoft Per OpenGL decide il Khronos Group (consorizio non-profit di industrie)

...

... ...

...

API

Scheda Grafica

Driver Scheda grafica

(4)

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Livelli: SDK

Scheda Grafica Driver Scheda grafica

API Algoritmi

SDK Applicazioni

Monitor

Software Development Kit

tutto quel che serve per sviluppare un’applicazione

 ambiente di sviluppo (es: .net, devcpp)

 librerie

 strumenti per la

condivisione/sincronizzazione del codice

 manualistica, guide online

 esempi, benchmarks

 ...

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Livelli: applicazioni

Scheda Grafica Driver Scheda grafica

API Applicazioni

Monitor

Tutte quelle viste nella presentazione sono applicazioni

Algoritmi SDK

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Hardware specializzato per il rendering

• Vantaggio: efficienza efficienza efficienza efficienza

• instruction set specializzato

– (computazioni più comuni sono hard-wired)

• computazioni in parallelo:

1. fra CPU e GPU

» rendering demandato alla scheda grafica

» resto dell'applicazione libera di utilizzare la CPU e RAM base

2. a volte: fra GPU distinte (es. più schede sullo stesso BUS) 3. fra le fasi del pipeline (vanno tutte in parallelo) 4. dentro ogni fase del pipeline (più sottoprocess. per fase) 5. instruction level: operazioni operano su vettori di 4 operandi

• Svantaggio: rigidità rigidità rigidità rigidità

• scelta quasi obbligata dell'approccio al rendering utilizzato

• ... quali approcci al rendering?

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

• Ray-Tracing

• Rasterization based

• Image based (per es. light field)

• Radiosity

• Point-splatting

• Photon mapping

• ...

Paradigmi di rendering

(classi di algoritmi di rendering)

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

• Ray-Tracing

• Rasterization based

• Image based (per es. light filed)

• Radiosity

• Point-splatting

• Photon mapping

• ...

Paradigmi di rendering

(classi di algoritmi di rendering)

Rendering Paradigm:

(Triangle (Triangle (Triangle

(Triangle----) Rasterization Based ) Rasterization Based ) Rasterization Based ) Rasterization Based

detto anche:

Transform and Lighting Transform and Lighting Transform and Lighting Transform and Lighting

( T ( T ( T ( T &&&& LLLL ))))

I. Che si usino solo

le seguenti primitive di rendering : triangoli

triangoli triangoli

triangoli,,,, segmenti segmenti segmenti segmenti,,,, punti punti punti punti

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

screen buffer Punti 3D

detto anche: Transform & Lighting

Segmenti 3D Triangoli 3D

scheda grafica

Transform

&

Lighting video

(5)

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Transform & Lighting...

• Transform :

– trasformazioni di sistemi di coordinate

– scopo: portare la scena davanti all'obiettivo della nostra macchina fotografica (virtuale)

– piazzare i triangoli visibili sullo schermo

• Lighting :

– illuminazione

• (in senso generale)

– scopo: calcolare il colore finale di ogni parte della scena

• risultante da

– le sue caratteristiche ottiche – l'ambiente di illuminazione

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Rasterization-based HW-supported rendering

• anche riferito come

Transform and Lighting (TTTT&&&&LLLL) paradigm Scena 3D rendering screen

buffer

composta da primitive di composta da primitive di composta da primitive di composta da primitive di pochissimi tipi:

pochissimi tipi: pochissimi tipi:

pochissimi tipi:

• punti punti punti punti

• linee linee linee linee

MA SOPRATUTTO MA SOPRATUTTO MA SOPRATUTTO MA SOPRATUTTO

• triangoli triangoli triangoli triangoli

primitive primitive primitive primitive di di di di rendering rendering rendering rendering

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

x

y z

Rasterization-based HW-supported rendering

• punto primo: tutto sia composto da triangoli tutto sia composto da triangoli tutto sia composto da triangoli tutto sia composto da triangoli (3D) – o al limite da punti, o segmenti

v

0

=( x

0

, y

0

, z

0

)

v

1

=( x

1

, y

1

, z

1

) v

2

=( x

2

, y

2

, z

2

)

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

... Rasterization-Based Rendering

• più specificatamente...

vertici 3D

fragment fragment fragment fragment process process process process pixels pixels pixels pixels

finali finali finali finali

"frammenti"

(fragments) transform

transform transform transform

z x

v0 v1

v2

rasterizer rasterizer rasterizer rasterizer

y

triangolo 2D a schermo

(2D screen triangle) v0 v1

v2

il lighting invece avviene insieme alla fase "transform"

e/o alla fase "fragment process"

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

... Rasterization-Based Rendering

• più specificatamente...

vertici 3D

fragment fragment fragment fragment process process process process

pixels pixels pixels pixels finali finali finali finali

"frammenti"

(fragments) transform

transform transform transform

z x

v0 v1

v2

rasterizer rasterizer rasterizer rasterizer

y

triangolo 2D a schermo

(2D screen triangle) v0 v1

v2

carico di lavoro per vertice (sottosistema geometrico)

carico di lavoro per frammento (~per pixel)

(sottosistema raster)

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

... Rasterization-Based Rendering

• Dove è il collo di bottiglia?

– nel sistema geometrico?

• (l'applicaizone è transofrm-limited sinonimo: geometry-limited ) – nel sistema raster?

• (applicaizone è fill-limited ) – nel bus?

• (applicaizone è bus-limited sin: bandwidth-limited ) – nella CPU?

• (applicaizone è CPU-limited ) perché è importante scoprirlo?

come si può predirre (in teoria)?

come si può verificare

in pratica?

(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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Note sulla GPU odierne

• Stima delle prestazioni:

i produttori scrivono tanti numeri, tra i quali:

– Trasformazioni per secondo (sottosistema geometrico) – Fill-rate

(KB al sec, o in frammenti al secondo) – Dimensioni Memoria Video

• I primi due sono da prendersi con le molle – Sono prestazioni picco,

(nella pratica valgono solo su apposito esempio)

– ma danno un'idea

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Esercizio

• State effettuando il rendering di un modello composto da un milione di triangoli su un display con risoluzione 1280 x1024 pixel. Il rendering finale occupa l'80% del display. La scheda che state utilizzando ha una performance di 20 milioni di triangoli al secondo ed un fill-rate di 20 Mpixel al secondo.

• Qual'è il numero massimo di fotogrammi al secondo (fps) che potete ottenere?

• Il sistema è fill-limited o geometry-limited ? Soluzione:

– 1280x1024x0.8 = 838.860,8 numero di pixels da accendere per un rendering – 20*2^20=20.571.920 numero di pixels che la scheda può rasterizzare al sec – Il sottosistema raster può produrre:

20.571.920 / 838.860,8 = 25 fotogrammi al secondo – Il sottositema geometrico può produrre

20 * 10^6 / 10^6 = 20 fotogrammi al secondo Quindi la risposta è 20, e il sistema è transform-limited.

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

fra m m en ti (c an di da ti pi xe ls )

Rasterization-Based HW-Supported Rendering

Ve rti ci (p un ti in R

3

) pixel

finali

(nello screen-buffer)

Ve rti ci pr oi et ta ti (p un ti in R

2

)

Z

co m pu ta zi on i pe r v er tic e

rasterizer

co m pu ta zi on i pe r f ra m m en to set- up

componenti fisiche dell'HW!

Pipeline →Parallelismo →Efficienza

inoltre, molte componenti sono replicate

(negli stages collo di bottiglia)

Fragment proces.

Vertex porcessor

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

fra m m en ti (c an di da ti pi xe ls )

Cenni storici: nei PC...

Ve rti ci (p un ti in R

3

) pixel

finali

(nello screen-buffer)

Ve rti ci pr oi et ta ti (p un ti in R

2

)

Z

co m pu ta zi on i pe r v er tic e

rasterizer

co m pu ta zi on i pe r f ra m m en to set- up

1996

general purpose HW (con CPU)

dedicated HW (con GPU)

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

fra m m en ti (c an di da ti pi xe ls )

Cenni storici: nei PC...

Ve rti ci (p un ti in R

3

) pixel

finali

(nello screen-buffer)

Ve rti ci pr oi et ta ti (p un ti in R

2

)

Z

co m pu ta zi on i pe r v er tic e

rasterizer

co m pu ta zi on i pe r f ra m m en to set- up

1997

general purpose HW (con CPU)

dedicated HW (con GPU)

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

fra m m en ti (c an di da ti pi xe ls )

Cenni storici: nei PC...

Ve rti ci (p un ti in R

3

) pixel

finali

(nello screen-buffer)

Ve rti ci pr oi et ta ti (p un ti in R

2

)

Z

co m pu ta zi on i pe r v er tic e

rasterizer

co m pu ta zi on i pe r f ra m m en to set- up

1999

general purpose HW (con CPU)

dedicated HW (con GPU)

(7)

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

fra m m en ti (c an di da ti pi xe ls )

Rasterization-Based HW-Supported Rendering:

triangoli triangoli triangoli triangoli

Ve rti ci (p un ti in R

3

) pixel

finali

(nello screen-buffer)

Ve rti ci pr oi et ta ti (p un ti in R

2

)

Z

co m pu ta zi on i pe r v er tic e

rasterizer

co m pu ta zi on i pe r f ra m m en to

z y

x v0 v1

v2

set- up

v0 v1

v2

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

fra m m en ti (c an di da ti pi xe ls )

Rasterization-Based HW-Supported Rendering:

triangoli triangoli triangoli triangoli

3 Ve rti ci (p un ti in R

3

) pixel

finali

(nello screen-buffer)

3 Ve rti ci pr oi et ta ti (p un ti in R

2

)

Z

co m pu ta zi on i pe r v er tic e

rasterizer triangoli

co m pu ta zi on i pe r f ra m m en to

z y

x v0 v1

v2

set- up

v0 v1

v2

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

fra m m en ti (c an di da ti pi xe ls )

Rasterization-Based HW-Supported Rendering:

segmenti segmenti segmenti segmenti

2 Ve rti ci (p un ti in R

3

) pixel

finali

(nello screen-buffer)

2 Ve rti ci pr oi et ta ti (p un ti in R

2

)

Z

co m pu ta zi on i pe r v er tic e

rasterizer triangoli

co m pu ta zi on i pe r f ra m m en to

z y

x v0

v1

set- up

v0

v1

rasterizer segmenti set- up

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

fra m m en ti (c an di da ti pi xe ls )

Rasterization-Based HW-Supported Rendering:

punti punti punti punti

Ve rti ce (p un to in R

3

) pixel

finali

(nello screen-buffer)

Ve rti ce pr oi et ta to (p un to in R

2

)

Z

co m pu ta zi on i pe r v er tic e

rasterizer triangoli

co m pu ta zi on i pe r f ra m m en to

z y

x v1

set- up

v1

rasterizer segmenti set- up

rasterizer punti set- up

esempio di point "splat"

(point splatting)

Rasterization-Based HW-Supported Rendering:

alcune regole

1. Ogni vertice viene trasformato trasformato trasformato trasformato – proiettato da spazio 3D (spazio “oggetto”)

a spazio 2D (spazio “schermo”) – indipendentemente dagli altri vertici

• (deve poter avvenire in parallelo!) – indipendentemente da quale primitiva fa parte 2. Ogni primitiva viene rasterizzata rasterizzata rasterizzata rasterizzata in 2D

– primitiva = triangolo, segmento, o punto

• un rasterizzatore distinto per ogni tipo – indipendentemente dalle altre primitive – rasterizzare = produrre i frammenti corrispondenti 3. Ogni frammento in pos [X,Y] viene processato

– indipendentemente dagli altri frammenti – indipendentemente da quale primitiva lo ha generato – output della computazione: un pixel nello screen buffer (RGB)

• quello a pos [X,Y] (prefissata, la computazione decide solo RGB, non X,Y) 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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

in p ar al le lo (in c as ca ta ) (in p ip el in e) (a c at en a di m on ta gg io )

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 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Rasterization-based HW-supported rendering

• tutto sia composto da triangoli (3D) – o al limite da punti, o segmenti

•ma....

...non tutto nasce composto di triangoli quasi nulla

Riferimenti

Documenti correlati

Ai miei compagni d’armi con i quali ho condiviso successi e disfatte affinché, anche in futuro, si possa lavorare assieme.. Alla “signorina” Maryia (Masha) Rylcova che

Per inserire l’organigramma aggiornato sulla pagina della propria sede didattica è necessario copiare in formato word la prima pagina, evidenziare le modifiche da fare e

Gli obiettivi si raggiungono con un unico sistema integrato, che consenta la gestione delle diverse componenti del Piano (modulo di gestione delle varianti, modulo di gestione

La scheda che state utilizzando ha una performance di 20 milioni di triangoli al secondo ed un fill-rate di 20 Mpixel al secondo... Ogni vertice viene trasformato

3. In una scuola elementare, frequentata da 245 alunni, sono sta · attivati due corsi pomeridiani. Le bionde sono tutte carine. Se le precedenti informazioni sono corrette,

Allora esiste una funzione lineare a z per cui ˆz

La somma delle ampiezze degli angoli interni di un triangolo è uguale all’ampiezza dell’angolo piatto, quindi

(a) supponiamo di denire il parallelogramma come un quadrilatero che ha in centro di simmetria (chiamiamo O tale centro); allora, se A, B, C e D sono nell'ordine i vertici