Persistence
of Vision Ray Tracer Versione Amiga 3.02
Potevamo forse dimerticarci di offrire uno spazio alla grafica 3D? La gentilezza di Paolo Redaelli si è messa a servizio di noi tutti, non solo concedendo la pubblicazione dell'articolo degli ATTI, ma persino aprendo uno spazio su Amiga World dedicato al fantastico mondo di POV!
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 pianificato
POV-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.