Domanda

Lasciate che ho qualche maglia (per ex.sfera al centro della stanza, piena di cubi e una sorgente di luce.Come posso fare facile e veloce ombra-casting in OpenGL, tramite "standard" (fisso) funzioni solo?Nota:il risultato deve contenere cubo e sfera ombre così.

È stato utile?

Soluzione

Se è possibile generare una silhouette della sfera, quindi si potrebbe utilizzare ombra volumi.nVidia ha inoltre sostenuto funzione fissa shadow mapping per un po ' così.

Ombra volumi hanno lo svantaggio di molto alto il tasso di riempimento dei requisiti.Shadow maps può essere migliore, ma necessitano di un ulteriore passaggio.

Se si sta proiettando su di un unico piano, potrebbe essere più facile progetto di un oggetto su di un piano.

Altri suggerimenti

Non v'è alcun veloce e facile. Ci sono un sacco di techiques differenti, che ogni hanno i loro pro e contro. È possibile guardare un ospite io progetto su GitHub, che utilizza il codice molto semplice per creare un'ombra, utilizzando la tecnica shadow del volume (http://iuiz.github.com/VolumeShadow/). Tuttavia è scritto in Java, ma non dovrebbe essere difficile per crearlo in qualsiasi altra lingua.

I modi più importanti per creare ombre sono il metodo cosiddetto "mappatura ombra", in cui si esegue il rendering la scena (con la fotocamera a fonte di luce, diretta a ciascun oggetto colata ombra) per una texture. E la seconda tecnica è il metodo ombra voulume (resa famosa con Doom3).

Ho trovato un modo utilizzando StencilBuffers. Essere un po 'confusa per un po', ho finalmente avuto l'idea - whith questa la cosa più difficile sarebbe scorrendo ogni fonte di luce e proiettando tutti gli oggetti di scena. Questo sembra più bella di consistenza shadowing e le opere più veloce di ombre volumeric. qui e qui alcune risorse, che mi ha aiutato a capire passo moltiplicazione di matrici (che mi ha confuso un po 'quando stavo guardando attraverso dino demo). Per quanto mi riguarda, questo metodo è più facile da capire e da usare. L'unica domanda che resta da risolvere è come calcolare moltiplicazione di matrici.

Anche se questo metodo potrebbe essere cambiato un po 'con le texture come mostrato qui .

Grazie a tutti! =)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top