Newsgroup: it.comp.grafica
Titolo: domanda di ray tracing

Ciao a tutti.
Sto provando a scrivere un programma di ray-tracing (amatorialmente, una
roba da freeware) e mi sono posto qualche domanda che penso sia chi ha
buone conoscenze di programmazione e sia chi usa tanto i programmi di
ray tracing mi possa rispondere:
Nella realta' ogni singolo punto di un'oggetto illuminato diventa
sorgente luminosa (luce diffusa; mi sembra si parli anche di reticolo di
difrazione ma non sono sicuro , non vorrei dire eresie). Nelk ray
tracing questo non avviene e viene solamente simulato giusto? Se si'
potreste indicarmi anche come?
Supponiamo di avere una zona non raggiunta da sorgenti luminose, ma che
potrebbe venir raggiunta da raggi riflessi da uno specchio. Questa zona
viene effetivamente illuminata?? Se si' come? Ci ho pensato varie volte
ma non ho trvato soluzione.
Grazie e ciao
Scola

 ma non ho trvato soluzione.
I motori di RayTracing solitamente non calcolano l'illuminazione
derivante dalle sorgenti luminose *riflesse* data la complessità del
problema e la mole di calcoli che si deve affrontare, hanno già delle
gatte da pelare con le sorgenti luminose *rifratte*.
Prova a fare dei test con Imagine e Real3D provando ad osservare
l'ombra di una lente, vedrai dei risultati (e differenze)
interessanti.
Comunque il calcolo realistico delle sorgenti luminore riflesse (e
rifratte) non è irrangiungibile ma gli algoritmi che simulino
risultati credibili aumentano il tempo di calcolo da 100 a 10000
volte!! Esistono poi algoritmi che si basano su procedimenti diversi
ma sono altrettanto lenti come il Radiosity.
Ti consiglio questo libro:
Introduction to computer graphics
Autori: Foley, Van Dam, Feiner, Hughes, Phillips
Editore: Addison-Wesley
E' in inglese ma è ottimo per trovare le tue risposte ;-)
--
                                    .--///------------------------------.   
        __  .   DOES IT BETTER    . |-/ ^ \--=( Salvatore Gerace  ) vvvvv\  
       /// /| .    . <>   __     /| |( o-o )  ( Via Paolo VI,10   ) ITALY \ 
__    /// / | |\  /| TT  /  I   / | |--(_)---=( I-56124 Pisa (PI) ) ^^^^^  Y
\\\  /// //|| |.\/.| || |.--'  //|| |EMail: 
Salvator...@iol.it
        |
 \\\/// / ~'| ||\/|| || ||_TT / ~'| |Phone: +39 50 598993__WipeOut on IRC! !
  \/// //~~L| ||  || || |___|//~~L| !~~~~~:~~Y~~Y~~~~~~~Y++Y~~~~~~~~~~~~~~~:
       ~      `'  `' `'      ~      :     .  !  ·       |<>|               ·
                                             ·          `--'               .

 Se si' come? Ci ho pensato varie volte ma non ho trvato soluzione.
Molto semplice. Se un raggio proveniente da una singola sorgente
puntiforme (per comodita'...) collide un singolo oggetto si possono
avere alcuni casi di studio:
1- assorbimento totale (stile superficie "stealth", corpo nero).
2- assorbimento parziale (es. un oggetto comune che riflette una
componente e ne assorbe un'altra).
3- trasparenza totale con IOR ~1,0 (es. aria) o con IOR xx (rifrazione).
4- riflessione totale.
5- ...
Nel caso 4 un raggio incidente la superficie viene riflesso e deviato
verso una precisa direzione. Nel caso 2 la componente riflessa alcune
volte e' sensibile (ad esempio il riflesso azzurro dell'atmosfera in una
giornata autunnale con cielo terso). Inoltre con un motore Radiosity e'
molto semplice suddividere la scena in porzioni inferiori per poi
procedere all'analisi di ogni singolo blocco e quindi alla navigazione
in termpo reale o meno (sono spesso richiesti personal molto veloci e
almeno 64-96MB di RAM).
... prova a studiare i sorgenti di Pestilence of Vision (oppsss....
:-)))
-- 
Saluti,
  Francesco Leonardi
  Black Blade software design - Italia

 tra RayTracing e Radiosity.
Scusa la mia ignoranza ma non so che cosa sia il radiosity. Da quello
che mi hai spiegato nel mail ho capito che e' un metodo alternativo al
ray tracing, ma non ne ho capito il funzionamento.  Potresti
spiegarmelo? :-)
Grazie e ciao.
Scola
PS: se ti interessa, c'e' l'ultimo render che ho fatto all'indirizzo:
http://dewww.epfl.ch/~scola/ray.jpg