+ All Categories
Home > Documents > Programmare l’AGP: gli Shader - Plone sitespigarol/slides/shader.pdf · 2009. 4. 3. · Insomma,...

Programmare l’AGP: gli Shader - Plone sitespigarol/slides/shader.pdf · 2009. 4. 3. · Insomma,...

Date post: 24-Apr-2021
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
11
Programmare l’AGP: gli Shader 5 Scuola Estiva di Visualizzazione Scientifica e Grafica 3D Relazione finale Relazione di Micaela Spigarolo [email protected] 28 novembre 2005 1 Introduzione Le interfacce di visualizzazione rappresentano un metodo per interagire in maniera efficace con le applicazioni che stanno dietro a un determinato sistema di acquisizione di dati. L’idea ` e quella di riuscire a fornire una sembianza grafica all’innumerevole quantit` a di dati prodotti dal modello di interrogazione per lo studio e la soluzione di un determinato problema (si pensi, per esempio, ai modelli climatici). Tali dati, opportunamente visualizzati all’interno di un set virtuale, potranno pi` u facilmente essere interrogati e compresi. Un semplice colpo d’occhio potr` a, infatti, bastare per farsi un’idea ben precisa della situazione che si ha di fronte e per determinarne una soluzione. Alle spalle dell’applicazione, esiste una base di dati (BD) sulla quale si potr` a avere l’esi- genza di fare interrogazioni. Per tale motivo ` e interessante prevedere un approccio interattivo sul modello. In tal senso, parliamo di grafica real-time. L’idea ` e quella di determinare un framework all’interno del quale muovere. Il modello pu` o essere interrogato per ottenere dati sulla base della ricostruzione fatta. Si tratta di un ambiente di Problem solving. Attraverso lo sviluppo di strumenti di visualizzazione si vuole: guidare l’interazione, interagire con parametri significativi, prospettare soluzioni del problema. Il set virtuale permette una comunicazione pi` u efficace anche per la presentazione dei risultati a persone esterne all’ambito di ricerca. ` E obiettivo del Cineca fornire strumenti avanzati per la sperimentazione. In tal senso, l’attivit` a di sviluppo ` e rivolta a ricondurre in un unico framework tutte le librerie di base in modo da poterle integrare (Visman). Avremo, pertanto: 1. Librerie di base: Open GL, sorta di assembler per la CG. ` E la libreria di base; 2. Performer: libreria a pi` u alto livello che poggia su Open GL; 3. VISMAN: navigazione in tempo reale del modello pi` u interrogazione del DB. 1
Transcript
Page 1: Programmare l’AGP: gli Shader - Plone sitespigarol/slides/shader.pdf · 2009. 4. 3. · Insomma, una sorta di unisci i puntini della Settimana Enigmistica con una sua logica ben

Programmare l’AGP: gli Shader

5◦ Scuola Estiva diVisualizzazione Scientifica e Grafica 3D

Relazione finale

Relazione di Micaela [email protected]

28 novembre 2005

1 Introduzione

Le interfacce di visualizzazione rappresentano un metodo per interagire in maniera efficacecon le applicazioni che stanno dietro a un determinato sistema di acquisizione di dati.

L’idea e quella di riuscire a fornire una sembianza grafica all’innumerevole quantita di datiprodotti dal modello di interrogazione per lo studio e la soluzione di un determinato problema(si pensi, per esempio, ai modelli climatici). Tali dati, opportunamente visualizzati all’internodi un set virtuale, potranno piu facilmente essere interrogati e compresi. Un semplice colpod’occhio potra, infatti, bastare per farsi un’idea ben precisa della situazione che si ha di frontee per determinarne una soluzione.

Alle spalle dell’applicazione, esiste una base di dati (BD) sulla quale si potra avere l’esi-genza di fare interrogazioni. Per tale motivo e interessante prevedere un approccio interattivosul modello. In tal senso, parliamo di grafica real-time.

L’idea e quella di determinare un framework all’interno del quale muovere. Il modello puoessere interrogato per ottenere dati sulla base della ricostruzione fatta.

Si tratta di un ambiente di Problem solving. Attraverso lo sviluppo di strumenti divisualizzazione si vuole:

• guidare l’interazione,

• interagire con parametri significativi,

• prospettare soluzioni del problema.

Il set virtuale permette una comunicazione piu efficace anche per la presentazione deirisultati a persone esterne all’ambito di ricerca.

E obiettivo del Cineca fornire strumenti avanzati per la sperimentazione. In tal senso,l’attivita di sviluppo e rivolta a ricondurre in un unico framework tutte le librerie di base inmodo da poterle integrare (Visman). Avremo, pertanto:

1. Librerie di base: Open GL, sorta di assembler per la CG. E la libreria di base;

2. Performer: libreria a piu alto livello che poggia su Open GL;

3. VISMAN: navigazione in tempo reale del modello piu interrogazione del DB.

1

Page 2: Programmare l’AGP: gli Shader - Plone sitespigarol/slides/shader.pdf · 2009. 4. 3. · Insomma, una sorta di unisci i puntini della Settimana Enigmistica con una sua logica ben

2 La pipeline grafica

Volendo rappresentare per mezzo della computer graphics (CG) un qualsiasi oggetto del mon-do reale, il problema principale e costituito dal passaggio da coordinate tridimensionali (spaziodi coordinate dell’occhio) a quello intrinsecamente bidimensionale del sistema in cui l’oggettoviene, appunto, reso (pixel e colori del computer). Questo determina un insieme di passaggidi lavorazione tutti tesi all’intento di mantenere quell’illusione di tridimensionalita peculiaredell’oggetto stesso.

Non si dimentichi, tuttavia, il contesto specifico nel quale siamo chiamati ad operare. Nonsi tratta, infatti, di gestire oggetti e animazioni frame by frame come avviene, per esempio,nel cinema, bensı, come gia sottolineato nell’introduzione, ci occupiamo di grafica real-time.L’esigenza e quella di determinare un set virtuale all’interno del quale sia possibile interagirecon dati dinamici che definisco scene a loro volta dinamiche.

Sotto questa prospettiva, diamo, pertanto, uno sguardo generale ai vari aspetti di lavora-zione:

• Processo grafico: individua l’insieme dei passi necessari per determinare la visua-lizzazione di un oggetto tridimensionale nello spazio reale nella sua rappresentazioneall’interno di uno scenario virtuale;

• Trasformazioni: riguarda il modo in cui il computer gestisce le geometrie (translazione,rotazione, scaling, ossia quali sono le trasformazioni rese in modo geometrico in unascena);

• Geometrie: Punti, linee e poligoni (esistono dati che descrivono geometrie cosı comepossiamo avere noi stessi la necessita di usare scenari geometrici);

• Modeling: comprende oggetti, camera e luci. Si tratta dell’astrazione di posizionareuna camera e interagire con determinati punti di luce;

Il processo grafico e alla base di tutto il contesto. Esso si occupa di modellare i dati e leeventuali animazioni per renderle graficamente nella maniera piu opportuna. Nello specifico,esso puo essere dettagliato come segue:

• Geometrie, modelli 3D: rappresentano l’ossatura della scena (p.e. i dati provenientida qualche fonte);

• Definizione di Animazione 3D: la scena puo contenere animazione;

• Informazioni di luce (lighting): occorre determinare i punti di luce che illuminannol’oggetto o la scena per poter modellare (modeling) correttamente l’oggetto;

• RENDERING: i precedenti tre passaggi determinano la resa dell’immagine. Qui simanifesta il prolema di cui si e sopra accennato. Il fatto, cioe, che occorra necessa-riamente passare da un sistema di coordinate tridimensionale del mondo reale a quellointrinsecamente bidimensionale del computer);

• Informazione di texture: e possibile applicare all’oggetto determinate informazionidi tessitura (che possono essere immagini acquisite, disegnate o calcolate a partire daaltre);

• Image storage and display: al termine dei precedenti passaggi, deve essere possibilememorizzare l’oggetto per poterlo nuovamente visualizzare.

2

Page 3: Programmare l’AGP: gli Shader - Plone sitespigarol/slides/shader.pdf · 2009. 4. 3. · Insomma, una sorta di unisci i puntini della Settimana Enigmistica con una sua logica ben

Figura 1: Scomposizone dell’immagine in poligoni elementari

La situazione e rappresentata graficamente in Fig.2. I dati in questione sono primitive chedescrivono geometrie di scenari 3D. In generale, l’oggetto viene scomposto in una sequenza digeometrie semplici, ossia e descritto per mezzo delle coordinate di tali geometrie (per comoditasi utilizzano i triangoli, come mostrato nell’esempio in Fig.1 e quindi parleremo di vertici).

Ciascun pixel (RGB) deve essere settato sulla base dei valori assunti dai singoli coloricostituenti e con una certa luminosita (in relazione con i punti di luce precedentemente fissati).Occorrera, inoltre, determinare che prospettiva dare all’occhio, definire il piano a partire dalquale si inizia a vedere qualcosa e quello oltra il quale non si vedra piu nulla (clipping).Insomma, una sorta di unisci i puntini della Settimana Enigmistica con una sua logica benprecisa.

Definiamo rendering pipeline il processo che esegue il passaggio dal sistema tridimensiona-le originario a quello bidimensionale della macchina, determinato dall’associazione biunivocadei vertici ai pixel dello schermo. Come mostrato in Fig.3, i dati iniziali vengono generati daun’applicazione che determina i vertici e le relative informazioni di connettivita. Esse vengo-no processate dal vertex processor che determina il passaggio vero e proprio da un sistema dicoordinate all’altro, genera o trasforma le coordinate di texture e calcola l’illuminazione perpixel. Tale processo genera gli attributi modificati dei vertici e le nuove informazioni di con-nettivita che vengono date in pasto al rasterizzatore per assemblare le primitive1, determinai pixel coperti dalle primitive e per interpolazione, anche i valori corrispondenti agli attributidei vertici. A questo punto non si parla piu di pixel (termine con cui intendiamo l’elementofisico dello schermo), bensı di frammento, ossia di singolo pixel o insieme di pixel disegnatie appartenenti a una primitiva. Le informazioni di posizione e attributi interpolati vengonoquindi passati al fragment procesor che applica le texture ed esegue i calcoli per determinareil valore finale del frammento (in particolre, determina i valori di color e depth).

A processo ultimato, il risultato di tutte queste elaborazioni viene passato al buffer che sioccupa della memorizzazione e tra le altre cose, esegue anche determinate operazioni tra lequali l’alpha test per derminare se il frammento debba realmente essere disegnato o meno.

Nel complesso, questo insieme di trasformazioni definisce quella che viene chiamata pipelinegrafica. Essa e determinata da un misto di software che utilizza la CPU e hardware dedicato(ruolo svolto dalla scheda grafica). L’idea e che ogni pipeline grafica determina passaggi inparte a carico della CPU in parte a carico della scheda grafica stessa.

1L’assemblaggio avviene sulla base di ben specifiche convenzioni e determina anche il clipping di cui abbiamogia in precedenza accennato

3

Page 4: Programmare l’AGP: gli Shader - Plone sitespigarol/slides/shader.pdf · 2009. 4. 3. · Insomma, una sorta di unisci i puntini della Settimana Enigmistica con una sua logica ben

Figura 2: Graphic pipeline

3 Gli shader

3.1 Cos’e uno shader

Per chi abbia un minimo di feedback in ambito di CG, e facile che suonino familiari termi-ni quali Vertex Shader e Pixel Shader, su cui sono attualmente in atto un ampio numerodi discussioni. Shader e, tuttavia, un termine generico che sta ad indicare le proprieta direndering di una superficie (ossia, come essa appare). Si tratta di uno script di testo che de-termina le proprieta di una superficie quali, per esempio, le texture da applicare, le coordinatedi mapping (eventualmente modificate a seconda delle specifiche necessita) e la trasparenza(impostando i render state necessari).

Gli shader sono, pertanto, programmi che funzionano sugli acceleratori 3D e schede videopiu recenti e definiscono come il device video stesso debba lavorare.

Fino a qualche tempo fa, infatti, le normali schede grafiche che equipaggiavano i PC eranosemplici rasterizzatori. Gran parte dell’elaborazion grafica (pipeline grafica), veniva svoltadal software della CPU stessa che si occupava di gestire lo scambio di informazioni lungoi bus PCI o AGP. E facile immaginare come questo modus moperandi potesse determinaresvantaggi quali, per esempio, l’overhead determinato dal traffico lungo i bus. Forse, pero,l’inconveniente piu grosso era determinato dal fatto di mettere in gioco dispositivi hardwareche non erano stati progettati per il compito che veniva loro affidato. In tal senso, si inizioa parlare di processori general purpose proprio in riferimento al fatto che erano in grado di

4

Page 5: Programmare l’AGP: gli Shader - Plone sitespigarol/slides/shader.pdf · 2009. 4. 3. · Insomma, una sorta di unisci i puntini della Settimana Enigmistica con una sua logica ben

Figura 3: Rendering pipeline

svolgere una innumerevole quantita di compiti senza essere pensati nello specifio per alcunodi essi.

Con l’aumento della complessita delle geometrie utilizzate in molte applicazione, ci si efinalmente decisi a superare tale barriera e si e dotato il rasterizzatore di un coprocessorematematico integrato studiato per svolgere gran parte del lavoro precedentemente destinatoal processore.

Definiamo, pertanto, GPU quel singolo chip che integra al suo interno tutta una seriedi funzioni caratteristiche di una pipeline grafica quali, per esempio, la capacita di tra-sformare e illuminare (Transform & Lighting) autonomamente una scena tridimensionale,indipendentemente dalla sua complessita.

C’e stato, dunque, un graduale spostamento di compiti dalla CPU al processore graficofino a giungere alla situazione attuale in cui la GPU gestisce l’intero processo grafico.

L’ultimo passo, in ordine temporale, in tale avanzamento e stato rappresentato dallapossibilita di programmare l’hardware delle schede video determinando cosı, la resa a video.

Tale scelta e, forse, stata determinata dalla concomitanza di due differenti esigenze: deiprogrammatori che avevano iniziato a eseguire rendering multi-pass e a dedicare sempre piutempo a spingere sul render state per compiti che andavano oltre lo scopo originale di proget-tazione, e dall’altra le case produttrici di GPU, che avevano iniziato a implementare estensionicustom.

Gli shader rappresentano tale possibilita di interagire con la pipeline grafica eseguita dallaGPU. Essi hanno aperto la porta a nuove, stupefacenti tecniche ed effetti di rendering. Torne-remo sull’argomento in chiusura del paragrafo. Diamo ora, invece, un’occhiata agli elementicostituenti che realizzano tale funzionalita.

5

Page 6: Programmare l’AGP: gli Shader - Plone sitespigarol/slides/shader.pdf · 2009. 4. 3. · Insomma, una sorta di unisci i puntini della Settimana Enigmistica con una sua logica ben

4 Tecnologie vertex e pixel shader

Se lo shader indica lo script di resa grafica di una superficie, Vertex e Pixel shader sono ledue principali tecnologie che permettono di implementare tale resa una scena 3D.

Uno shader ha, pertanto, accesso a texture e render state. All’interno della renderingpipeline, gli shader si inserisono come programmi eseguiti da Vertex e Fragment processordell’hardware grafico.

4.1 Vertex shader

Come abbiamo visto, la geometria di ogni scena grafica e composta da triangoli. Il vertexshader e un processo grafico che agisce sui vertici di ogni singolo triangolo per applicaredeterminati “effetti”. Esso, cioe, permette al programmatore di manipolare dinamicamente leoperazioni che la GPU compie sui vertici in entrata sostituendo al motore di Transformation& Lighting funzioni proprie studiate ad hoc per compiere determinate azioni.

In tal modo, e possibile ottenere effetti particolari diversamente irrealizzabili attraversol’uso delle fixed function quali, per esempio, la nebbia o la mimica facciale dei personaggi.

Figura 4: Vertex Shader

Il funzionamento del Vertex Shader e mostrato in figura Fig.4. Esso opera sui singoli verticie non su interi trangoli e soprattutto non e in grado di generare nuovi vertici. Tale processo,infatti, puo essere paragonato a quello di una catena di montaggio in cui il singolo operatoree addetto a un compito specifico, per esempio avvitare il tappino ai tubetti di dentifricio, percui, di volta in volta, preleva un tubetto dal nastro trasportatore, avvita il tappo e rimette iltubetto a posto. Cosı come un tale operaio non puo inserire nuovi tubetti sul nastro, ancheil Vertex Shader non puo immettere nuovi vertici nel buffer d’uscita.

A livello architetturale, il Vertex Shader si configura come un processore di tipo SIMD(Single Instruction Multiple Data) la cui base si fonda su un numero relativamente contenutodi registri atti ad essere utilizzati per i piu disparati scopi.

4.2 Pixel shader

Il risultato finale di ogni hardware grafico tridimensionale consiste in una serie di pixel dise-gnati su schermo. A seconda della risoluzione, e possibile ottenere un numero considerevoledi pixel che devono essere trasformati, illuminati e poi renderizzati.

6

Page 7: Programmare l’AGP: gli Shader - Plone sitespigarol/slides/shader.pdf · 2009. 4. 3. · Insomma, una sorta di unisci i puntini della Settimana Enigmistica con una sua logica ben

Attualmente, e possibile scegliere se compiere tale operazione in maniera tradizionale (ipixel vengono letti, trattati con algoritmi definiti a priori su scheda e quindi inviati al DACper la conversione in un formato idoneo alla visualizzazione su dispositivi analogici, i.e. unmonitor) o per mezzo dei Pixel Shader.

In quest’ultimo modo, viene mandato in esecuzione un programma (lo shader) che ha ilcompito di calcolare gli effetti pixel per pixel. Il livello di dettaglio va oltre il triangolo sulquale lavora il Vertex Shader, contribuendo a rendere maggiormente realistiche le scene. Intal caso, il Pixel Shader sostituisce la Texturing Unit.

Figura 5: Pixel Shader

Esempi di effetti basati sul Pixel Shader sono la barba sul viso dei personaggi, le venaturedi una parte in legno.

Le operazioni svolte dal Pixel Shader non sono molto diverse da quelle del Vertex Shader: idati in entrata vengono letti e poi elaborati in base a un microcodice precedentemente caricatodall’applicazione nella GPU. La principale differenza e rappresentata dal livello di dettagliosu cui i due componenti agiscono: il Vertex Shader, come il termine stesso suggerisce, operasui vertici mentre il Pixel Shader sui pixel che compongono una scena.

In Fig.5 e mostrato il comportamento di Pixel Shader.Definiamo passata il rendering di un modello 3D tramite una coppia di Vertex Shader

e Pixel Shader. E possibile che un effetto (quanto piu e complesso) richieda l’azione dipiu passate. Per ognuna di esse, e possibile utilizzare modelli e/o coppie di shader differenti.Ciascuna passata puo, inoltre, determinare il rendering per una successiva texture da utilizzarenella passata successiva.

E possibile pensare alle fixed functionality originarie della scheda grafica come agli Shaderdi default.

4.3 Perche gli shader

Gli Shader vengono attualmente impiegati per la realizzazione di immagini tridimensionalicinematografiche. I numerosi spot pubblicitari, video musicali o film di animazione 3D (come,per esempio, Monster & Co., Fig.62) fanno largo uso di tali potenzialita. Non e, tuttavia,possibile immaginare risultati simili nel campo real-time. Nel precedente contesto, infatti, ci sie avvalsi di Renderman Shading Language che permettono una totale programmabilita mentrela corrente generazione di GPU offre la possibilita di interagire in un numero limitato di aree

2Grosso lavoro di rendering e stato fatto sulla pelliccia per mantenere la fluidita di movimento di ognisingolo pelo azzurro

7

Page 8: Programmare l’AGP: gli Shader - Plone sitespigarol/slides/shader.pdf · 2009. 4. 3. · Insomma, una sorta di unisci i puntini della Settimana Enigmistica con una sua logica ben

critiche, quali appunto Vertex Shader e Pixel Shader, lasciando il resto delle funzionalita inmano a scelte compiute da parte dei progettisti.

Figura 6: Monster & Co. Disney

Parte della pipeline tridimensionale e, cioe, basata su Fixed Function, ossia su funzioniche il programmatore non e in grado di modificare quali: gli accessi alla memoria video, alletexture, la gestione dei poligoni ed altre complesse operazioni che rappresentao prerogativeesclusive della GPU.

Sono, tuttavia, degne di nota le nuove possibilita offerte dagli shader. Si pensi, per esempio,all’effetto di Anisotropic Lighting. Molti materiali, come ad esempio quelli di sui sono sompostii comuni CD musicali, non riflettono la luce in modo uniforme, bensı in modo diverso a secondadella direzione. Tale comportamento fisico contribuisce a conferire un maggior realismo allascena e puo essere modellato ricorrendo all’impiego degli Shader.

Figura 7: Anisotropic Lighting

Un altro impiego degli Shader permette quello che viene definito Cartoon Rendering. Comesi puo notare dal confronto delle due teiere dell’esempio di Fig.8, l’effetto e quello, appunto,del fotogramma di un cartoon. In entrambi i casi, sono state sfruttate le potenzialita di unVertex Shader che implementava, tuttavia, differenti tecniche di rendering (nessuna delle suestandard).

8

Page 9: Programmare l’AGP: gli Shader - Plone sitespigarol/slides/shader.pdf · 2009. 4. 3. · Insomma, una sorta di unisci i puntini della Settimana Enigmistica con una sua logica ben

Figura 8: Cartoon Rendering

Pixel Shader, in particolare, deve la sua crescente popolarita al fatto che, consentendo dimanipolare il colore di ciascun pixel, permette di realizzare sistemi di illuminazione come ilPhong Shading o di applicare alle superfici l’effetto di Bump Mapping.

La figura Fig.9 mette a confronto differenti metodi di bumpmapping. Si assuma che lediverse normali alla superfice leggano dalla mappa delle normali i risultati in un rapido cam-biamento di intensita dell’illuminazione e che successivamente le ombreggiature meno perfet-te vengano abbandonate come se si trattasse di rumore. Tale tecnica permette di conferiremaggior realismo all’oggetto.

D’altro canto, il Phong Shading permette di conferire maggior realismo a oggetti di ma-teriale plastico. In caso dei metalli, invece, la resa non sarebbe delle piu soddisfacenti eoccorerebbe utilizzare metodi alternativi (p.e. il modello proposto da Cook & Torrente).

In definitiva, possiamo presumere che con il passare del tempo gli acceleratori grafici acqui-steranno sempre piu programmabilita. Il fine e quello di poter dare in mano a programmatori,grafici e artisti in genere la possibilita di esprime al massimo la popria creativita evitandoche la tecnologia rappresenti un limite o una barriera. A tal fine, nel prossimo paragrafodaremo un’occhiata alle potenzialita di uno strumento come Render Monkey, concepito perintegrare la duplice finalita di potenza espressiva per il programmatore e strumento versatileper l’artista.

4.4 Linguaggi di shader

I linguaggi di shading sono molteplici, definiti a differenti livelli di implementazione, da quellidi assemblaggio come HLSL e GLSL, nato un anno dopo a HLSL, piu maturo e pratico, aquelli a livello di application program interface. Le principali interfacce di questo genere sonoOpenGL e Direct3D. La situazione e mostrata in Fig.10.

Esistono anche altri linguaggi come per esempio Sh, un meta-linguaggio che permette discrivere shader come espansione dell’applicazione, come se facessero parte del programma.BrookGPU, invece, e un linguaggio di calcolo scientifico per GPU. Esso permette calcologeneral-purpose su hardware grafico powerful.

Come gia accennato, lo shader e un programma scritto in un linguaggio ad alto livello (ge-neralmente con sintassi C-like). Si tratta di un file di testo che viene compilato quando l’ap-plicazione 3D parte. Tale compilazione determina se lo shader puo funzionare sull’hardwerein questione e lo ottimizza per esso.

9

Page 10: Programmare l’AGP: gli Shader - Plone sitespigarol/slides/shader.pdf · 2009. 4. 3. · Insomma, una sorta di unisci i puntini della Settimana Enigmistica con una sua logica ben

Figura 9: Bump Mapping: confronto tra metodi differerenti

5 Render Monkey

Come indicato nella homepage del progeto3, Render Monkey e un ambiente per lo sviluppodegli Sheder, rivolto a programmatori e artisti in genere, il cui scopo e facilitare la creazionecollaborativa di effetti shader real-time.

Ai programmatori offre:

• Un editor che permette prototipaggio rapido. Il compilatore integrato e la finestra dipreview consentono feedback visivo immediato degli effetti che si stanno sviluppando epermettendo di individuare eventuali errori in fase stessa di sviluppo;

• Un certo numero di feature incorporate, utili per il debugging e l’ottimizzazione degliShader;

• Il plug-in Render Monkey SDK: supporta la creazione di custom importer and exporterconsentendo l’integrazione di render Monkey nel work flow corrente;

• Supporto per MS DirectX: il formato FX assicura interoperabilita con tutti i principaliDCC package.

Agli artisti, Render Monkey offre:

• Artist Specific Workspace View e Artist Editor: strumenti che mascherano in gran partela complessita della programmazione,

• la funzionalita di poter raggruppare i parametri per mezzo di widget familiari;

• Integrated Preview Window: fornisce feedback visivo immediato su ogni modifica;

• L’appaiamento con gli strumenti artistici di texture e modeling esistenti.

Render Monkey include, inoltre, supporto per i linguaggi di Shading DirectX e OpenGLpiu un ampio numero di effetti semplici che possono essere liberamente utilizzati e adattatiper le proprie applicazioni.

3HTTP://www.ati.com/developer/rendermonkey/

10

Page 11: Programmare l’AGP: gli Shader - Plone sitespigarol/slides/shader.pdf · 2009. 4. 3. · Insomma, una sorta di unisci i puntini della Settimana Enigmistica con una sua logica ben

Figura 10: Linguaggi di shading

6 Conclusioni

La programmazione della scheda grafica e in particolare, gli shader hanno aperto la stra-da a tutta un’innumerevole quantita di nuove opzioni grafiche di largo impiego soprattuttonel mondo dei videogiochi e della cinematografia. Nell’ambito specifico della visualizzazionescientifica, la resa di fantastici effetti speciali non e forse la prerogativa piu importante. Nonsi dimentichi, tuttavia, la quantita di informazioni che possono essere rese esplicite grazie auna buona resa grafica. Poche immagini, ben congegnate, possono veicolare in modo ampiouna grande quantita di informazione diversamente non ottenibile.

Il problema principale della visualizzazione scientifica, pertanto, puo essere individuatonella scelta delle modalita di visualizzazione piu indicate per trasmettere in modo quantopiu evidente possibile le principali informazioni che caratterizzano quel dato e la situazionein generale in cui e immerso. L’occhio umano, per esempio, e piu sensibile al gradienteche all’intensita ma e piu sensibile all’intensita rispetto al colore. Davanti a una immagineben strutturata, bastano poche informazioni e l’occhio fa il grosso del lavoro per capire lasituazione d’insieme e trovaer quel determinato particolare che evidenzia il problema. In talsenso, gli sheder possono rappresentare un valido supporto per definire al meglio l’immaginee i suoi particolari.

11


Recommended