AMIGAWORLD – Persistence of Vision Ray Tracer

Caro Paolo Pettinato, molte grazie per aver conservato per tutti questi anni il testo della mia presentazione. Lo ripropongo in questo mio angolino in rete. E vado a cercare le immagini che avevo usato allora.

Sorgente: AMIGAWORLD – Persistence of Vision Ray Tracer

Cos’è?

Persistence of Vision(tm) Ray Tracer è un programma per le creazione di immagini fotorealistiche che utilizza le tecniche note col nome di “Ray Tracing” e “Radiosity”. Negli intenti di chi lo ha creato, il POV-Team, vuole essere un’alternativa efficace, portabile e gratuita ai costosissimi programmi che affollano l’affascinante mondo della grafica fotorealistica Ray Tracing.

Storia Persistence of Vision(tm)

Ray-Tracer è stato sviluppato da DKBTrace 2.12 (scritto da David K. Buck e Aaron A. Collins per Amiga). La loro opera, continuata con coraggio dal POV-Team, è stata quella di dare agli utenti di personal computer programmi ed algoritmi che fino a pochissimi anni fa erano esclusivo appannaggio di università o di programmi costosissimi. Il loro lavoro è sfociato nel 1991 nel programma chiamato POV-Ray 1.0 che si è evoluto negli anni fino ad arrivare alla versione 3.1, di prossima “pubblicazione”, divenendo col passare del tempo uno dei motori di rendering fra i più potenti e versatili.

Filosofia

  • Il suo linguaggio “simil-C”Non potendo fare affidamento su una interfaccia grafica comune a tutte le piattaforme, il POV-Team si ha dovuto ripiegare su di un formato testuale che descrivesse formalmente l’ambiente da simulare, ispirandosi ad una “lingua” riconosciuta universalmente del mondo dei computer: il linguaggio C. Da esso hanno tratto la struttura ed il modo di impostare il problema, tant’è che chi ha anche una minima familiarità con questo linguaggio riesce ad impadronirsi in pochissimo tempo del “POV-Ray’s scene description language”, l’idoma con cui si assemblano gli oggetti e si costruiscono le scene e le animazioni in POV-Ray.

  • Portabilità
    L’obiettivo di rendere disponibile POV-Ray sul maggior numero di piattaforme possibili ha spinto gli autori del programma, il “POV-Team”, a puntare alla realizzazione di un codice molto “pulito” ed altamente portabile. Il nucleo centrale del programma consiste infatti nel nudo motore di rendering, privo di qualsiasi funzionalità “grafica”; esso è infatti progettato per essere pienamente operativo da una semplice shell. Ciò permette di avere delle versioni scarne ma pienamente funzionali su praticamente tutti i sistemi operativi attuali. È compito poi del responsabile della singola piattaforma inserire in maniera organica e razionale il supporto “grafico” con caratteristiche quali l’output in tempo reale su sistemi WYSIWYG, utilizzo di sistemi a finestre ecc. Sono però disponibili numerosissimi modellatori “front-end” per molte piattaforme, che facilitano notevolmente il lavoro creativo dell’utente finale. Purtroppo su Amiga, al momento in cui scrivo questo articolo, non è disponibile alcun modellatore grafico, simile a quelli messi a disposizione da software commerciali come Imagine, Lightwave, Real 3D. È allo studio un porting di SCED, un modellatore disponibile sotto Unix e X-Windows distribuito con licenza GNU.
  • Lo sviluppo pianificatoPOV-Ray è un software definito come copyrighted-freeware; questa particolare licenza implica che finchè l’utente finale riconosce i diritti d’autore del POV-Team, esso liberamente distribuibile. Questa politica di distribuzione del programma permette la massima diffusione dello stesso, assicurandone allo stesso tempo uno sviluppo organico e coerente. Infatti i sorgenti di ogni versione sono disponibili sul sito Internet di POV-Ray, in modo da incentivare la realizzazione di versioni per nuove piattaforme. Contemporaneamente però nel file “PovLegal.Doc” vengono specificate precise regole per lo sviluppo di versioni personalizzate, che non sono incentivate. Questa modalità di procedere ha il fine ben preciso di impedire il proliferare di innumerevoli versioni del programma incompatibili fra di loro. Ciò comporterebbe una ancor maggiore frammentazione dell’utenza, che oggi si ritrova legata ad innumerevoli prodotti diversi. Credo sia ben presente nella mente dei responsabili di POV-Ray la incredibile frammentazione che si è prodotta negli applicativi dell’ambiente GNU. Presi singolarmente questi software sono spessissimo molto validi ma le numerosissime versioni impediscono all’utenza di aggregarsi e superare quella “massa critica” che genera club di utenti, FAQ, scene e file di esempio, utility di supporto e che fa la differenza fra un programma poco usato ed uno ad ampia diffusione.

Pregi e difetti

Fra i maggiori pregi che mi sento di attribuire a POV-Ray vi è senza ombra di dubbio la qualità delle immagini prodotte: lo testimoniano le migliaia di stupende immagini realizzate dagli utenti; inoltre, durante la recente fiera dello SMAU ho avuto occasione di comparare le features di POV-Ray con quelle di quotatissimi (e se mi permettete, costosissimi) programmi quali 3D Studio Max, e mi pare di non aver trovato in essi caratteristiche di rendering che non fossero presenti in POV-Ray, che spesso le implementava meglio, almeno secondo la mia opinione. Ecco elencate qui di seguito alcune delle caratteristiche di POV-Ray che ne hanno decretato il successo:

  • Linguaggio di descrizione di scena facile da apprendere e da usare. Si basa su una descrizione geometrica-vettoriale dell’ambiente modellato. Per molti aspetti (convenzioni, direttive, stile) ricorda il C. È inoltre sintetico, ma non criptico; permette l’uso di shortcut, direttive di preprocessore, variabili, cicli for e while che sono usati per esempio per realizzare mesh di triangoli o oggetti “ricorsivi” ed organici quali alberi.
  • È dotato di un’ampia biblioteca di stupefacenti file scena di esempio. 
  • I file include standard estendono in maniera estremamente intuitiva il linguaggio, aggiungendo definizioni per numerosissimi colori, forme geometriche e tessiture, molte delle quali incredibilmente realistiche. Questi file di semplice testo spesso offrono “procedure” che producono oggetti di incredibile realismo, quali alberi, catene, persone, oppure effetti speciali quali lens flare di ogni tipo e qualità. Con essi si riescono ad ottenere risultati non ottenibili con il linguaggio base, tant’è che qualcuno comincia a chiamarli “plug-in”. 
  • Elevatissima qualità delle immagini prodotte: arriva infatti fino a 48 bit per pixel, senza alcuna limitazione sulla risoluzione. 
  • Output realtime truecolor con sistemi CyberGraphx e Picasso 96 su Amiga (supporto diretto per AGA ed ECS sarà fornito successivamente e probabilmente sarà disponibile quando leggerete queste righe). 
  • Crea paesaggi fotorealistici utilizzando delle “mappe di elevazione”. Questa caratteristica è stata sfruttata da numerosi artisti, fra cui si distingue fra tutti Dan Farmer, personaggio veramente poliedrico: è infatti comtemporaneamente programmatore di POV-Ray, “artista” abilissimo; la sua pagina web merita decisamente una visita, come per quella di tutti gli “artisti” riconosciuti dal POV-Team. 
  • Sofisticato controllo dell’illuminazione. Sono infatti disponibili luci puntiformi, proiettori “ad occhio di bue”, luci cilindriche ed aree luminose che permettono combinazioni molto suggestive. – Riflessi speculari e phong per superfici riflettenti. 
  • Riflessione inter-diffusa (radiosity) per un’illuminazione ultra realistica. Questo algoritmo di tracciamento è parzialmente sperimentale per svariati motivi; uno dei principali è le notevolissime risorse di calcolo necessarie per attuarlo: infatti pur utilizzando formule e strutture di calcolo semplificate ed approssimate per non appesantire eccessivamente i calcoli, questo algoritmo è ancora più esigente in termini computazionali rispetto alle tecniche “ray tracing” tradizionali: di fatto la “lentezza” degli attuali microprocessori ne limita l’uso ad immagini di piccola risoluzione o a piattaforme dotate di notevole capacità di calcolo (e per notevole intendo molto oltre le prestazioni degli attuali Intel e PowerPC). 
  • Effetti atmosferici come simulazione efficace dell’atmosfera, nebbie dotate di innumerevoli caratteristiche diverse ed arcobaleni.
    Sono disponibili vari modelli di simulazione come sparpagliamento isotropico, Rayleigh, Mie, Henrey Greenstein, modellati analiticamente su fenomeni come nebbie, foschie, inquinamento ecc.
     
  • Innumerevoli formati di immagine supportati, includendo Targa, PNG, PPM e disponibile in ingresso solo su Amiga, tutti i formati disponibili con DataTypes. 
  • Primitive geometriche basilari come sfere, scatole, quadriche, cilindri, coni triangoli e piani infiniti. 
  • Forme geometriche più avanzate quali tori (ciambelle), superfici di bezier, campi di elevazione (per paesaggi), blob (isosuperfici di campi scalari tridimensionali), quartiche, triangoli smussati, testi tridimensionali, frattali 3D, superquartiche, superfici di rivoluzione, prismi, poligoni e superfici tornite. 
  • Le forme possone essere combinate per ottenerne di più complesse utilizzando la Constructive Solid Geometry (CSG, Geometria Solida Costruttiva) che in POV-Ray offre unioni, intersezioni, differenze e merge. – Gli oggetti sono dotati di caratteristiche superficiali molto particolareggiate, tramite textures (tessiture), che descrivono il comportamento fisico della superficie stessa. 
  • Sono presenti motivi di colore e di rilievo, caratterizzati da una flessibilità decisamente sopra la media: Agate, Bozo, Bumps, Checker, Crackle, Dents, Granite, Gradient, Hexagon, Leopard, Mandel, Marble, Onion, Quilted, Ripples, Spotted, Sprial, Radial,Waves, Wood, Wrinkles. È possibile effettuare mappaggi di materiali tramite immagini (ad ogni colore corrisponde un materiale assegnato). 
  • Gli utenti possono creare le loro tessiture superficiali personali, oppure utilizzare la vasta e sempre crescente libreria di superfici predefinite, che comprendono materiali come ottone, cromo rame, oro, argento, numerosissimi tipi di pietre, marmi e graniti, assieme a legni di ogni genere e vetri. 
  • È possibile combinare le tessiture superficiali stratificando texture semi-trasparenti oppure rivestire la superficie a mo’ di piastelle oppure con mappe di materiali. Queste ultime quattro caratteristiche sono sicuramente uno dei maggiori punti di forza di POV-Ray: infatti molti utenti di rinomati programmi di Ray tracing commerciali (non faccio nomi…) hanno candidamente ammesso di usare POV come “generatore di textures” da usare al posto di quelle fornite con quei programmi. 
  • È visibile opzionalmente un’anteprima dell’immagine durante il suo calcolo (presente su Amiga, questa caratteristica non è però presente su tutte le piattaforme) 
  • Si può continuare il calcolo di una immagine in un secondo momento.

Perchè dovrei usare POV-Ray?
Risorse Internet per POV-Ray, generiche e specifiche per Amiga
.

Il mondo di POV-Ray si svolge soprattutto su Internet, a partire dal sito ufficiale del programma. È un’ambiente caratterizzato da una buona dinamicità e generosità degli utenti. Per quanto riguarda la creazione di paesaggi sintetici con l’ausilio di POV-Ray, campo di applicazione che mi sta particolarmente a cuore trovo che siano molto interessanti, versatili ed utili i programmi creati da John Beale: Gforge ed il suo “successore” HeightField Lab. Il primo è specificatamente mirato alla realizzazione di immagini piastrellabili (tileable) per l’uso con POV. Esso sfrutta tecniche denominate “random fractal forgery”: riempie una matrice quadrata di termini casuali “di frequenza” , su cui è possibile applicare filtri passa-basso, passa-alto, passa-banda, operatori di elevamento a potenza; successivamente viene applicata alla matrice l’operatore trasformata di Fourier inverso, che trasforma questo dominio di frequenze in paesaggi estremamente realistici che spaziano dalle colline tondeggianti all valli glaciali passando per montagne torreggianti e fiordi. HeightField Lab, pur offrendo tutte le caratteristiche di Gforge, possiede tutta una serie di comandi per la manipolazione di innumerevoli immagini in contemporanea, con operatori che ne mixano le caratteristiche, insieme con nuove possibilità quali la simulazione dell’erosione e la definizione di tracciati fluviali e lacustri sulle mappe di elevazione. Gradito add-on di questo nuovo programma sono le anteprime in due e tre dimensioni.

Sviluppo futuri e nuove release.

Mentre noi fruiamo della corrente release di POV-Ray, il Pov-Team sta lavorando alacremente, discutendo sulle possibili evoluzioni del programma, per inserire gli algoritmi e le caratteristiche più richieste dagli utenti, razionalizzando il linguaggio durante la sua evoluzione. Al momento in cui leggerete queste righe quasi sicuramente sarà uscita la nuova release, le 3.1. Essa rappresenta un passo intermedio fra la 3.0x e la 4.0, in cui verranno “ufficializzate” tutte quelle feature che fino ad ora erano da considerare “sperimentali”.

Siti di interesse:

Persistence of Vision Freeware Ray Tracer Official Home Page: http://www.povray.org/
La pagina fondamentale, da cui partire per ogni ricerca e punto di riferimento sicuro per lo sviluppo del programma. All’interno del sito è interessante visitare
http://www.povray.org/gallery/index.html è un elenco non esaustivo di utenti validi e capaci: molte loro creazioni sono decisamente accattivanti.

POV-Ray Amiga Home Page: http://www.wearefamily.com/newkirk/povamiga/
La pagina ufficiale di Persist of Vision versione Amiga. È il primo luogo in cui cercare per trovare versioni aggiornate e software specifico per la versione Amiga. È una parte del sito personale di Joel Newkirk, il curatore della versione Amiga.

John Beale Home Page: http://shell3.ba.best.com/~beale/
La pagina del creatore di Gforge ed HeightField Lab. Contiene interessanti dimostrazioni dell’uso del programma, nonchè illuminanti spiegazioni sulla loro logica di funzionamento.

the PILE: Pov Include File Enhancement http://user.baden-online.de/~mbachman/pile/pile_eng.htm
Ovvero, una delle più complete ed aggiornate librerie di file include di POV-Ray. In esso sono presenti file include che realizzano cose che mai avreste creduto possibili con POV-Ray, quali alberi realistici, lens flare ecc.

Texture Shoppe: http://www.fortunecity.com/victorian/priory/78/texindex.html
Sito dedicato principalmente alle textures. Anche se sono archiviate con zip, vale la pena di dar loro un’occhiata.

PovRay Ring HeadQuarter & FAQ: http://www.geocities.com/SiliconValley/Vista/8241/index.html
Il punto focale del ring su POVRay. Collega decine di siti dedicati a POV in un “anello” di links.

Truman Brown: http://www.websharx.com/~ttbrown/warpwufg.html
Dan Farmer:
http://www.websharx.com/~dfarmer/
Robert Mickelsen:
http://www.websharx.com/~kahuna/
Queste ultime tre pagine web sono quelle personali dei tre artisti ufficiali di POV-Ray. Meritano decisamente una visita.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.