Risultati da 1 a 23 di 23

Discussione: Primo tutorial su RenderMan

  1. #1
    Banned
    Data Registrazione
    18-12-01
    Località
    Rescaldina beach
    Messaggi
    5,298

    Predefinito Primo tutorial su RenderMan

    Olà!

    Questo tutorial cerca di spiegare cosa è Renderman e spiega come è organizzato un file RIB.

    In primo luogo definiamo cos’è Renderman: Renderman è un’interfaccia, esattamente come lo è OGL.
    Esistono vari motori di rendering “Renderman compliant”, e ne trovate un po’ qui:

    http://www.renderman.org/RMR/OtherLinks/ index.html

    Aggiungo “Pixie”, un motore sotto licenza GPL.

    Prima di tutto, dove viene utilizzato Renderman? Fondamentalmente nelle produzioni cinematografiche. Essendo stato inventato da Pixar, viene utilizzato in tutti i suoi film, ma anche in moltissimi altri. Trovate maggiori info qui:
    https://renderman.pixar.com/products/wha tsrenderman/movies.html

    Un motore “Renderman compliant” è un motore che supporta tutte le funzionalità spiegate in questo documento:
    https://renderman.pixar.com/products/ris pec/rispec_pdf/RISpec3_2.pdf

    Che, se vi interesserà la questione, diverrà il documento che maggiormente consulterete mentre lavorate con Renderman.

    Per comodità in questa trattazione parlerò sempre di Renderman come se fosse un motore di Rendering, in modo da essere indipendente da quello che sceglierete di usare.
    Io uso “Blue Moon Rendering Tool”, che potete trovare qui:

    http://klee.usr.dico.unimi.it/~dan/grafi ca/doc/bmrt/bmrt-2.6.zip

    Ed è uno dei pochi posti dove ancora lo potete trovare, poichè la ditta che lo faceva ha chiuso.

    Renderman riceve in input un file RIB, che altro non è che un file di testo, contenente tutta la descrizione della scena.
    In una scena possono esserci, come ci immaginiamo, luci ed oggetti.

    Gli oggetti possono essere fatti di vari materiali, che interagiranno in maniera diversa con la luce a seconda di come sono fatti. Questi materiali si chiamano “Shaders”.

    Vediamo un esempio semplicissimo di file RIB:
    ----INIZIO----
    Display "simple.tif" "framebuffer" "rgb"

    Format 320 240 1
    Projection "perspective" "fov" 45
    PixelSamples 2 2

    WorldBegin
    Color [1 0 0]
    Translate 0 0 5
    Sphere 1 -1 1 360
    WorldEnd

    ----Fine----

    Vediamolo meglio:
    “Display” specifica in che modo la nostra scena verrà salvata e visualizzata.
    “simple.tif” è il file nel quale sarà salvata
    “framebuffer” significa che mentre la scena viene creata, verrà mostrata sullo schermo
    potrebbe essere “tiff”, e non verrebbe mostrata, ma solo salvata.
    “rgb” è il formato dei colori che verranno salvati. Potrebbe essere ad esempio “rgba”

    “Format” dice quanto grande deve essere la scena in pixel
    “Projection” definisce il tipo di proiezione. In questo caso, e nel 99% dei casi, la proiezione è in prospettiva.
    “PixelSamples” è il nostro amato Antialiasing. Oltre 4x4 inizia a diventare decisamente troppo pesante.

    Tra “WorldBegin” e “WorldEnd” ci sono tutte le definizioni del mondo.
    Nel nostro mondo c’è solo una sfera
    La sfera si definisce in questo modo:



    Renderman è una macchina a stati, quindi se settiamo uno stato, esso è valido fino a che non cambia.
    In questo caso ho settato il colore ed una traslazione (abbastanza chiara da sé), e saranno valide anche sugli oggetti successivi.
    Sulle traslazione c’è altro da dire, ma ne parleremo dopo.

    Se lanciamo il rendering di questa cosa (in blue moon è così “rendrib file.rib”) otterremo questo :


    Non molto, vi pare? Questo perché non ho definito alcuna luce, non ho definito nessuno shader e non ho settato nulla.

    Avrete notato la sfera: in genere si usano le primitive (tipo il piano, la sfera, il toroide e così via) solamente per fare i test degli shaders, questo perché, come immaginerete, si modella il tutto con u software qualsiasi e poi si esporta in RIB, dove poi si lavora con gli shaders.

    In Renderman la parte fondamentale quindi non è la modellazione, ma la resa visiva dei nostri modelli.
    Ed anche perché sarebbe stupido fare i test degli shaders con il modello di Mike Wazowski

    TRASLAZIONI: PROBLEMA.

    Prima parlavo di traslazioni. Bene, le traslazioni sono applicate in una maniera un po’ strana.
    Prendiamo un esempio:

    WorldBegin
    Color [1 0 0]
    Translate 0 0 5
    Scale 4 4 1
    Sphere 1 -1 1 360
    WorldEnd

    Prima viene cercata la mesh (in questo caso la sfera), poi si cercano tutte le trasfomazioni da applicargli che si trovano sopra. Quindi verrà prima applicata la “Scale” e poi la “Translate”.
    Se mettiamo sotto un’altra cosa (esempio):

    WorldBegin
    Color [1 0 0]
    Translate 0 0 5
    Scale 4 4 1
    Sphere 1 -1 1 360

    Translate 1 0 5
    Scale 4 6 1
    Sphere 1 -1 1 360

    WorldEnd

    La seconda sfera avrà anche tutte le trasformazioni della precente:


    Questo potremmo non volerlo (o esgierlo, se stiamo facendo animazioni con bones), quindi dovremo isolare il tutto così:

    WorldBegin

    AttributeBegin
    Color [1 0 0]
    Translate 0 0 5
    Scale 4 4 1
    Sphere 1 -1 1 360
    AttributeEnd
    AttributeBegin
    Translate 1 0 5
    Scale 4 6 1
    Sphere 1 -1 1 360
    AttributeEnd
    WorldEnd

    Così:



    Direi che per questa volta può bastare
    Nella prossima vedremo qualche shader, che altro non sono che dei programmi scritti in simil-C.

  2. #2
    Banned
    Data Registrazione
    18-12-01
    Località
    Rescaldina beach
    Messaggi
    5,298

    Predefinito Re: Primo tutorial su RenderMan

    Visto l’enorme interesse suscitato dal mio primo articolo, scriverò un secondo tutorial

    In questo tutorial spiegherò cos’è uno shader e quali tipi di shader esistono in Renderman.

    Uno shader è un modello matematico che descrive qualche cosa, e questo qualche cosa può essere:
    - Una luce
    - Una superficie (materiale)
    - Uno “spiazzamento” (displacement)
    - Un’interazione con un Volume
    - Un’immagine (Image)

    Noi oggi vedremo il tipo “Luce” (light source shader) e “Materiale” (Surface shader)
    Mai come oggi vi consiglio di scaricarvi le specifiche, poichè lì trovate davvero tutto, ed è molto di più di quello che posso mostrarvi in questa sede.

    In primo luogo parliamo un po’ di luci: vedremo due tipi di luce preimpostati in tutti i motori di rendering: i tipi “distant” ed i tipi “point”.

    I tipi “distant” simulano sorgenti di luce proveniente dall’infinito, descritte da un fascio di rette parallele ad una da noi impostata. Non hanno attenuazione.
    I tipi “point” simulano una luce puntiforme, quindi un pallino infinitamente piccolo che irradia luce (immaginate una lampadina vista da mooooolto lontano). Ha attenuazione. Si attenua secondo il quadrato della distanza dalla sorgente.
    Ne esistono altri, ma per ora vanno bene questi



    In questa immagine capite come funzionano.

    Ora facciamo un esempio:
    -----INIZIO-----
    Display "distant.tif" "framebuffer" "rgb"

    Format 320 240 1
    PixelSamples 2 2
    Projection "perspective" "fov" 45

    WorldBegin

    LightSource "distantlight" 1 "intensity" 0.8 "from" [ 4 4 -4 ] "to" [ 0 0 0 ]

    Translate 0 0 5
    Color [1 0 0]
    Surface "matte"
    Sphere 1 -1 1 360

    WorldEnd
    -----FINE-----

    Qui cosa vediamo? Vediamo la definizione di luce “distant”. Il numero dopo la definizio del tipo serve a dare un numero alle luce. Questa è la prima luce, quindi ho messo “1”.
    Il “Surface” serve a definire lo shader di superficie (materiale). Ne uso uno preimpostato, il “matte”, un materiale perfettamente diffusivo. Uso lo impostazioni standard, quindi non metto nessun parametro.



    Questa è una peculiarità di ogni shader: devono avere dei parametri standard, in modo che io non debba definirli tutti, e volendo (come ho fatto) potrei non definirne alcuno.
    Vediamo il risultato di questo rendering.
    Ancora non vi appaga, vero? Lo immagino
    Un materiale puramente diffusivo non è un gran chè.
    Ora, però andremo a scrivere il nostro Shader per i materiali diffusivi, e poi gli metteremo un po’ di cosette. Se avete già scritto shaders in HLSL questo sarà una passeggiata.

    In primo luogo definiamo le variabili predefinite:




    Queste variabili mi consentono di accedere a tutta una serie di dati assolutamente indispensabili per programmare il mio shader. Per sapere il loro significato è necessario sapere un filo di matematica e geometria, ma penso siano prerequisiti accettabili.

    Ora possiamo scrivere il nostro shader:
    -------Inizio------
    surface simpleDiffuse (float Kd = 1)
    {
    normal Nf = faceforward (normalize(N),I);
    Ci = Cs * Kd * diffuse(Nf);

    Oi = Os;
    Ci *= Oi;
    }
    ----Fine----

    Vedete? Semplicissimo
    Notiamo qualche cosa: la sintassi è molto simile al C.
    Priama mettiamo il tipo di shader (surface), poi il nome (simpleDiffuse) e poi i parametri (in questo caso è solo un peso).
    Notiamo che ho usato delle variabili predefinite ed una funzione “faceforward” che non è molto chiara (mentre normalize si spiega da sola).
    N è il vettore normale, mentre I è il vettore Eye-to-point.
    “Faceforward” serve nei casi in cui abbiamo un oggetto cavo: se è cavo, vedremo il suo interno, ma la normale punterà verso l’esterno, quindi non lo vedremo. “faceforward” risolve questo problema.
    Vediamo un esempietto:

    Senza faceforward:

    Con faceforward:


    La seconda parte invece è assai semplice: pesa il colore secondo un peso da noi assegnato (di deafult 1, ossai tutto) e la componente diffusiva, che calcolo con la funzione predefinite “diffuse”, che richiede come parametro una normale.
    La componente diffusiva è calcolata secondo il modello lambertiano, quindi niente di complesso, ma trovate la sua completa implementazione nelle specifiche di Renderman. Se non vi interessa, va benissimo, tanto a noi la funzione serve per essere utilizzata

    Già che sono qui, implementerò un semplice modello di Phong.
    Il modello di Phong aggiunge al normale modello diffusivo una componente speculare, per simulare oggetti metallici o plastici.

    Anche qui useremo una funzione predefinita, ma per completezza, vi spiego come funziona:



    Ok?
    Ottimo, spieghiamo tutta questa roba:
    Ia è la componente ambientale
    Id la componente diffusiva (come capite dalla formula)
    Is la componente speculare. Se diminuiamo il numero “n” la campana del coseno si chiude molto, rendendo la riflessione sempre più piccola.

    L= vettore luce
    N= normale
    R= raggio riflesso
    V= vettore eye

    Vediamo come lo implementiamo in Rendeman:

    ----Inizio----
    surface simplePhong (float Ka = 1, Kd = 1, Ks = 1,
    roughness = 0.1; color specColor = 1
    {
    normal Nf = faceforward (normalize(N),I);
    vector In = -normalize(I);

    Ci = Cs * ( Ka * ambient() +
    Kd * diffuse(Nf)) +
    Ks * specColor * specular(Nf, In, roughness);

    Oi = Os;
    Ci *= Oi;
    }

    ----Fine----

    Qui abbiamo un sacco di parametri:
    Ka= peso luce ambientale
    Kd= peso componente diffusiva
    Ks=peso componente speculare
    Roughness= esponente di cos^n
    SpecColor= colore della riflessione. Di solito è bianco.

    Ultra-semplice: semplicemente va a implementare la formula di sopra, usando anche delle belle funzione predefinite, tra cui ambient (che userebbe luce ambientale, se vi fossero), e specular, che calcola la componente diffusiva come abbiamo visto (un po’ più complessa in realtà, ma alla base ha quello).

    Cambiamo il nostro file RIB così:

    ----Inizio----
    Display "phong.tif" "framebuffer" "rgb"

    Format 320 240 1
    PixelSamples 2 2
    Projection "perspective" "fov" 45

    WorldBegin

    LightSource "distantlight" 1 "intensity" 0.8 "from" [ 4 4 -4 ] "to" [ 0 0 0 ]

    Translate 0 0 5
    Color [1 0 0]
    Surface "simplePhong" "roughness" 0.1
    Sphere 1 -1 1 360

    WorldEnd

    ----Fine----


    Ok, per questa volta direi basta La prossima volta vediamo i displacement ed altri tipi di luce.

  3. #3
    Suprema Borga Imperiale L'avatar di Cherno
    Data Registrazione
    13-01-04
    Località
    Milano
    Messaggi
    17,991

    Predefinito Re: Primo tutorial su RenderMan

    ma sto rendercose...si può usare anche per fare i videogame..magari integrandolo con qualche linguaggio di programmazione?Oppure si possono fare solo animazioni preimpostate?
    Ed i tempi di rendering come sono?

    Su su..dimmi!

  4. #4
    Banned
    Data Registrazione
    18-12-01
    Località
    Rescaldina beach
    Messaggi
    5,298

    Predefinito Re: Primo tutorial su RenderMan

    Solo animazioni e rendering Non è un sistema per le cose in tempo reale.

    I tempi di rendering dipendono dal motore che scegli di utilizzare e dalla macchina, ma considera che tutto ciò che è Renderman è fatto per la qualità.
    Una scena con caustiche fatte con Photon mapping (di cui parlerò) deve prima sparare i fotoni e poi fare il rendering.
    Questo può prendere parecchio, anche per un solo fotogramma 320x240.
    Se poi scegliamo un algoritmo di radiosity (tipo Monte Carlo o un radiosity vero), i tempi aumentano moltissimo, ma la qualità aumenta in maniera spaventosa. Ad esempio, con radiosity se due superfici sono vicine, in prossimità del loro contatto i colori di una andranno sull'altra, come nella realtà.

    Tutti questi conti richiedono tempo Se vai sul sito Pixar però ti fai un'idea del tipo di macchine che usano per fare i rendering Sono cose pazzesche, intere stanze piene di computer

    Certo, rendeman non è una cosa da grafici, ma da programmatori: il grafico si occupa della modellazione, mentre il programmatore si occupa del rendering.

  5. #5
    Suprema Borga Imperiale L'avatar di Cherno
    Data Registrazione
    13-01-04
    Località
    Milano
    Messaggi
    17,991

    Predefinito Re: Primo tutorial su RenderMan

    ho capito

  6. #6

    Predefinito Re: Primo tutorial su RenderMan

    Ho, finalmente si comincia ad entrare nell'interessante. Continua così. Aspetto aggiornamenti

  7. #7
    Banned
    Data Registrazione
    18-12-01
    Località
    Rescaldina beach
    Messaggi
    5,298

    Predefinito Re: Primo tutorial su RenderMan

    Olà!

    Oggi vedremo il displacement e come utilizzarlo per perturbare una superficie.
    Poi cercheremo di applicare quello che abbiamo imparato per scrivere uno shader per un materiale che ricordi alla lontano quello dei globuli rossi.

    Ho detto “Alla lontana” questo perché lo faremo ancora su una sfera. Se qualcuno di voi ha un globulo rosso modellato in qualunque formato, allora basterà mettere il modello 3D e avremo un bel globulo rosso vero

    Allora: cos’è il displacement? Semplicemente significa prendere i punti che compongono la nostra mesh e spostarli da qualche parte.

    Dove andranno a finire lo decideremo noi, secondo formule matematiche o secondo una texture che descriva come devono essere spostati i punti, come per le bump map.

    Ad esempio, questa può essere una displacement map



    Il nostro scopo è trattare i colori come dei valori numerici, e spostare il punto lungo la sua normale di quanto dice il colore della texture.

    In più aggiungeremo il “Termine di Fresnel” che altro non è che questa formula:
    (1-N°E)^n

    dove E è il vettore di vista girato (in modo che sia applicato sulla superficie e non sull’occhio) e “°” è il prodotto scalare.

    Vediamo come fare il displacement.
    Per farlo scriveremo un nostro shader di displacement:

    ----Inizio----
    displacement bumpyDisp( float Km = 1; string texturename = ""
    {
    float amp = Km * float texture(texturename, 2*s, 2*t);
    P += amp * normalize(N);
    N = calculatenormal(P);
    }
    ----Fine----

    Ok. Vediamo come funziona.
    Prima di tutto definisco il tipo (displacement) proprio come i “surface” e come loro, definisco dei parametri.
    “Km” è un peso e definisce quanto deve essere importante il valore preso dalla texture.
    In genere tutti i “Kqualcosa” sono pesi, e variano da 0 ad 1, ma potete anche usare valori esterni, però attenti, perché potreste avere dei picchi esagerati o delle voragini

    La funzione “texture” è presente in due versioni: quella che restituisce un float e quella che restituisce un colore. Userei quella del colore se volessi mettere la texture sulla superficie, ma non è così (e di certo non lo farei in un displacement shader, ma in un surface), perché mi serve il valore.
    Questo valore lo moltiplico per la normale nel punto, ottenendo un punto che sta sulla normale, ma un po’ più in su (o in giù) e poi lo sommo al punto (P).
    In questo modo ho spostato il punto della superficie.
    Poi ricalcolo la normale (che sarà di certo cambiata).

    Prendiamo la scena della volta scorsa e applichiamoci questo shader:

    ----Inizio----
    Display "phong.tif" "framebuffer" "rgb"

    Format 320 240 1
    PixelSamples 2 2
    Projection "perspective" "fov" 45

    Attribute "render" "truedisplacement" [1]

    WorldBegin

    LightSource "distantlight" 1 "intensity" 0.8 "from" [ 4 4 -4 ] "to" [ 0 0 0 ]

    Translate 0 0 5
    Color [1 0 0]
    Displacement "bumpyDisp" "texturename" "bump.tif" "float Km" 0.5
    Surface "simplePhong" "roughness" 0.1
    Sphere 1 -1 1 360

    WorldEnd

    ----Fine----


    Notiamo l’aggiunta del displacement. Il file di texture deve essere per forza tiff.
    Ho aggiunto anche questa linea:
    Attribute "render" "truedisplacement" [1]

    Così Blue Moon sa che deve fare il vero displacement e non del semplice bump mapping.

    Ho ottenuto questa immagine


    Ok.
    Ora è il momento di togliere quel brutto fondo nero.
    Tra gli shader predefiniti, ce n’è chiamato “fakesky” che mette su una superficie una distribuzione di colore che la faccia sembrare un cielo.
    Noi useremo questo shader su una sfera che avvolga tutta la scena.
    In più, metterò una luce puntiforme, perché altrimenti, accendendo più tardi le ombre, la luce all’infinito renderebbe tutta la mia scena buia, poichè inserita in una sfera:
    ----Inizio----
    Display "phongbianco.tif" "framebuffer" "rgb"

    Format 320 240 1
    PixelSamples 2 2
    Projection "perspective" "fov" 45
    Attribute "render" "truedisplacement" [1]
    WorldBegin

    LightSource "pointlight" 2 "intensity" 1400 "from" [ 30 28 -14 ]

    AttributeBegin
    Surface "fakesky"
    Sphere 2000 -2000 2000 360
    AttributeEnd

    AttributeBegin
    Translate 0 0 5
    Color [1 0 0]
    Displacement "bumpyDisp" "texturename" "bump.tif" "float Km" 0.5
    Surface "simplePhong" "roughness" 0.1
    Rotate 90 1 0 0
    Sphere 1 -1 1 360
    AttributeEnd

    WorldEnd

    ----Fine----

    Cosa ho cambiato? Ho solamente avvolto tra “AttributeBegin” e “AttributeEnd” la mia sfera, così è ben isolata.
    La LightSource “pointlight” ha solo il “from” da settare. Io l’ho messa un po’ distante.
    Noterete che l’intesità è decisamente maggiore. Questo perché la luce distant non diminuisce mai di potenza, mentre la point sì, quindi se la metto così lontano, dovrò potenziare moltissimo la sua emissione per illuminare la scena.
    Di solito gli esportatori di scene non lo fanno (la mettono a 1) quindi state attenti.

    Ottengo questo:


    Ora ho uno sfondo biancastro. A me piace di più, così vedo bene i contorni
    Avrei potuto usare uno shader di Imager chiamato “background” che mette lo sfondo ad un colore fisso, ma poi quando faremo un materiale trasparente, avrebbe avuto la trasparenza nera (perché in realtà sullo sfondo c’è il nero), quindi meglio così.

    Ora aggiungiamo il Fresnel Term al nostro vecchio shader Phong:

    ----INIZIO----
    surface simplePhong (float Ka = 1, Kd = 1, Ks = 1,
    roughness = 0.1; color specColor = 1;float exp=2)
    {
    normal Nf = faceforward (normalize(N),I);
    vector In = -normalize(I);

    Ci = Cs * ( Ka * ambient() +
    Kd * diffuse(Nf)) +
    Ks * specColor * specular(Nf, In, roughness);
    color fres=pow(1-Nf.In,exp);

    Ci+=fres;
    Oi = Os;
    Ci *= Oi;
    }
    ----FINE----


    Ho aggiunto solamente queste due linee:
    color fres=pow(1-Nf.In,exp);

    Ci+=fres;

    Che altro non fanno che calcolare il termine di Fresnel proprio come volevo sopra.
    In realtà questo non sarebbe necessario, ma se avete presente come sono i globuli rossi, notate che anche dove sono neri, hanno delle riflessioni sugli spigoli. Il Termine di Fresnel fa esattamente quello.

    Se ricompiliamo e renderizziamo otteniamo questo:



    Vedendo questa immagine credo capirete subito cosa intendo.

    Ok, anche per oggi direi basta
    La prossima volta vediamo: importazione di un modello da Maya e rendering con texture perturbate e rendering con il sistema di Global Illumination (è una figata )

  8. #8
    L'Onesto L'avatar di Nightmare
    Data Registrazione
    04-10-01
    Località
    Roma
    Messaggi
    1,421

    Predefinito Re: Primo tutorial su RenderMan

    veramente interessante! peccato non ci capisca nulla... prima che mi legga tutto questo tutorial perdendomi tra calcoli e roba varia, posso leggerli e capirc qualcosa sapendo che la mia conoscenza grafica rasenta il ridicolo?

  9. #9
    Banned
    Data Registrazione
    18-12-01
    Località
    Rescaldina beach
    Messaggi
    5,298

    Predefinito Re: Primo tutorial su RenderMan

    Oddio, sarebbe meglio conoscere un pochino di matematica inerente la grafica, ma siccome ho messo molte immagini dovresti riuscire a capire cosa intendo guardando quelle.

    Se ti interessa l'argomento, ti consiglio di cercare su google (non ho link già pronti, mi spiace ) su questi argomenti:

    "light models" o "modelli di illuminazione"
    "Lambert" che è il modello diffusivo. E' facilissimo, c'è solo un coseno.
    "Phong" cerca il modello, perchè di phong c'è anche lo shading.
    Questo è quello che le riflessioni speculari.

    "Cook" & "Torrace" o "Torrance" non ricordo mai Questi signori hanno fatto un modello un po' più complesso, ma sempre locale, come gli altri.

    Poi abbiamo "radiosity" che è un modo di fare rendering di cui parlerò,
    "Photon mapping" che è un altro modo di fare rendering,
    "Ray tracing" che è un altro ancora, ma più vecchio
    "Global Illumination" che è quello che fanno le cose di cui sopra

    Nella grafica c'è davvero tanta matematica, spesso non troppo semplice per chi decide di entrarci, ma è il solo modo per capire cosa fanno i grandi software come 3DStudioMax o Maya a lavorare, ed è anche un modo per capire perchè nei grossi studi si usano per fare la modellazione, ma per i rendering si usa sempre Rendeman

  10. #10

    Predefinito Re: Primo tutorial su RenderMan

    Non va più avanti il corso?
    Utilissimo il link per BlueMoon. Mi sono dannato l'anno scorso a cercarlo sulla rete. Per chi avesse dubbi sulla sua bontà, si guardi "A Bug's Life" che è stato renderizzato con quello

    Renderman è stato pensato per il cinema, ma le schede programmabili attuali permettono molte cose descritte dalle specifiche Renderman. Ati ha reso disponibile un tool per convertire gli shader da Renderman a shader DirectX o OpenGL compatibili ( http://www.ati.com/developer/ashli.html ).
    Inoltre la prossima generazione di schede (corrispondente a DirectX Next) prevede l'Unified Shader Model, in pratica non si distingue più fra pixel e vertex shader, proprio come in Renderman.

    Imparare nei dettagli Renderman forse è superfluo, ma secondo me è importante sapere almeno i concetti e le idee principali perchè sono alla base della grafica (realtime e non) attuale.

    Il photon mapping è secondo me la tecnica di rendering che garatisce la migliore resa visiva. Ovviamente al prezzo di una quantità di calcoli mostruosi. E' una variante del classico raytracing, in parole mooolto semplici invece di usare raggi con un preciso percorso si usano fotoni che possono rimbalzare casualmente nella scena.

    Per maggiori dettagli:
    http://www.ypoart.com/tutorials/Photon-M apping.htm

    Per chi volesse farsi un'idea delle possibilità del photon mapping consiglio di vedere http://www.3dluvr.com/marcosss/
    Da notare come nonostante la maggior parte dei modelli sia semplice e su sfondo neutro, le immagini sembrano fotografiche.
    Il renderizzatore usato per generare quelle immagini è integrato in Project:Messiah ( http://www.projectmessiah.com/ )
    E' da vedere sicuramente http://www.3dluvr.com/marcosss/morearni/ arnold03sorenson.zip

    Per chi vuole giocare con un renderizzatore photon mapping compatibile Renderman può vedere Pixie ( http://www.cs.berkeley.edu/~okan/Pixie/p ixie.htm)

  11. #11
    Banned
    Data Registrazione
    18-12-01
    Località
    Rescaldina beach
    Messaggi
    5,298

    Predefinito Re: Primo tutorial su RenderMan

    Ho le lacrime agli occhi: pensavo che non interessasse a nessuno

    Ora mi rimbocco le maniche e finisco la lezione che stavo facendo

  12. #12

    Predefinito Re: Primo tutorial su RenderMan

    Mi dispiace vedere interrotte delle iniziative che si distinguono dal solito commento o opinione, e che richiedono un po' di sbattimento...

    Proprio un anno fa mi è capitato di scrivere un exporter per Renderman sapendo poco o nulla del linguaggio. Dopotutto è molto facile da imparare. Ed è usato tantissimo per gli effetti speciali dei film. Final Fantasy e tutti i film della Pixar, viene usato dalla Industrial Light & MAgic di Lucas...

  13. #13
    L'Onesto L'avatar di Chip&Chop
    Data Registrazione
    18-02-02
    Località
    Firenze
    Messaggi
    954

    Predefinito Re: Primo tutorial su RenderMan

    DreamPainter ha scritto sab, 18 settembre 2004 alle 12:35
    Ho le lacrime agli occhi: pensavo che non interessasse a nessuno

    Ora mi rimbocco le maniche e finisco la lezione che stavo facendo

  14. #14
    Lo Zio L'avatar di Edward Gein
    Data Registrazione
    18-11-01
    Località
    Steuerland
    Messaggi
    2,837

    Predefinito Re: Primo tutorial su RenderMan

    Banus80 ha scritto gio, 16 settembre 2004 alle 23:09
    Non va più avanti il corso?
    Utilissimo il link per BlueMoon. Mi sono dannato l'anno scorso a cercarlo sulla rete. Per chi avesse dubbi sulla sua bontà, si guardi "A Bug's Life" che è stato renderizzato con quello
    Scusa, ma non credo che quelli della Pixar, gli ideatori dello standard RenderMan, si siano messi ad usare BlueMoon.
    Loro utilizzano PhotoRealistic RenderMan.

    BlueMoon fu utilizzato da altre compagnie in quanto PRMan non si basava sul raytracing ma su un algoritmo chiamato REYES (ma ora se non erro supporta anche il raytracing), al contrario di BlueMoon.

  15. #15

    Predefinito Re: Primo tutorial su RenderMan

    Edward Gein ha scritto dom, 28 novembre 2004 alle 15:47

    Scusa, ma non credo che quelli della Pixar, gli ideatori dello standard RenderMan, si siano messi ad usare BlueMoon.
    Loro utilizzano PhotoRealistic RenderMan.
    L'hanno usato per il renderind del vetro, che richiedeva raytracing.
    http://www.faqs.org/faqs/graphics/render man-faq/

    Il fondatore di Exluna, la compagnia che ha creato Renderman, aveva lavorato per un po' alla Pixar. Exluna era stata denunciata poi dalla Pixar con l'accusa di usare tecnologie proprietarie della Pixar. Mi pare che l'algoritmo REYES sia ancora di proprietà della Pixar.

  16. #16
    Lo Zio L'avatar di Edward Gein
    Data Registrazione
    18-11-01
    Località
    Steuerland
    Messaggi
    2,837

    Predefinito Re: Primo tutorial su RenderMan

    Banus80 ha scritto dom, 28 novembre 2004 alle 16:10
    Edward Gein ha scritto dom, 28 novembre 2004 alle 15:47

    Scusa, ma non credo che quelli della Pixar, gli ideatori dello standard RenderMan, si siano messi ad usare BlueMoon.
    Loro utilizzano PhotoRealistic RenderMan.
    L'hanno usato per il renderind del vetro, che richiedeva raytracing.
    http://www.faqs.org/faqs/graphics/render man-faq/

    Il fondatore di Exluna, la compagnia che ha creato Renderman, aveva lavorato per un po' alla Pixar. Exluna era stata denunciata poi dalla Pixar con l'accusa di usare tecnologie proprietarie della Pixar. Mi pare che l'algoritmo REYES sia ancora di proprietà della Pixar.
    Ma da qui a dire che A Bug's Life sia stato renderizzato tutto con BMRT ce ne vuole .

  17. #17

    Predefinito Re: Primo tutorial su RenderMan

    Edward Gein ha scritto dom, 28 novembre 2004 alle 17:53
    Ma da qui a dire che A Bug's Life sia stato renderizzato tutto con BMRT ce ne vuole .
    Al tempo avevo letto che era stato usato BMRT come renderizzatore di Bug's Life. Non era specificato dove
    Ho ritenuto che fosse stato usato per tutto

  18. #18
    La Borga L'avatar di Raytheon
    Data Registrazione
    25-11-04
    Località
    Vancouver
    Messaggi
    12,719

    Predefinito Re: Primo tutorial su RenderMan

    .....ma per usar renderman devo inserire le rifhe di comando? non ha valori da inserire in determinate aree o via dicendo?...

    ps poi il displace map credo sia supportato dal 90 % dei programmi....

    cmq bella lezione ...provvederò a procurarmi renderman ....magari i miei render saranno più carini...

    ps uso 3ds max 7.0

  19. #19
    Banned
    Data Registrazione
    18-12-01
    Località
    Rescaldina beach
    Messaggi
    5,298

    Predefinito Re: Primo tutorial su RenderMan

    Renderman, nella sua forma base, è a riga di comando.
    Chiaramente ci sono molti frontend. Se vai sul sito Pixar troverai un frontend per Maya, ad esempio, ed un programma per scriversi gli shaders in maniera più visuale.

    In realtà questa seconda opzione viene utilizzata per le cose più semplici, non certo per gli shaders complessi.

    Mi scuso per aver interrotto le lezioni, ma diamine, non ho più un secondo libero. Magari durante l'estate ne scrivo una sfilza e le posto in blocco.

    Attento perchè Renderman è potentissimo, ma se vuoi ottenere dei rendering migliori di quelli che ottieni con un motore fortemente integrato in 3dstudio, devi conoscere la matematica degli effetti che vuoi applicargli molto, molto bene, altrimenti ti conviene rimanere al renderer di 3dstudio max (se non sbaglio mental ray è assolutamente ottimo, anche se Renderman rimane in Re delle produzioni cinematografiche).

  20. #20
    La Borga L'avatar di Raytheon
    Data Registrazione
    25-11-04
    Località
    Vancouver
    Messaggi
    12,719

    Predefinito Re: Primo tutorial su RenderMan

    ultimament mi sto dedicando al low poly quindi credo che il motore d 3ds mi basterà e avanzerà

    questo non vuol dire che non aspetti ugualmente update al tutorial


  21. #21
    Il Fantasma L'avatar di ariok
    Data Registrazione
    19-01-04
    Località
    milano
    Messaggi
    115

    Predefinito Re: Primo tutorial su RenderMan

    CIao!! ma prima o poi riprendera' il "corso" ? erano molto interessanti i primi tutorial.... e sopratutto sarei cursioo di vedere come importare modelli fatti con maya xsi ecc..

  22. #22
    Banned
    Data Registrazione
    18-12-01
    Località
    Rescaldina beach
    Messaggi
    5,298

    Predefinito Re: Primo tutorial su RenderMan

    ariok ha scritto lun, 30 gennaio 2006 alle 00:36
    CIao!! ma prima o poi riprendera' il "corso" ? erano molto interessanti i primi tutorial.... e sopratutto sarei cursioo di vedere come importare modelli fatti con maya xsi ecc..
    Mi spiace, non ho nemmeno il tempodi respirare in questo periodo

  23. #23
    Lo Zio L'avatar di zago
    Data Registrazione
    28-09-01
    Località
    bologna
    Messaggi
    2,649

    Predefinito Re: Primo tutorial su RenderMan

    [uppino anti-apocafud]*

    *ho sentito che vanno 'uppati' i topic più importanti per evitare che vangano cancellati durante il cambiamento del forum pervisto per il 12 Settebmre: entro tale data mandatemi un PM per segnalarmi i Topic che volete salvare, motivando il tutto. grazie!
    Questo messaggio si autodistruggerà a passaggio efettuato

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice HTML è Disattivato