2011-01-13 12 views
10

È possibile creare uno shader GLSL per ottenere che qualsiasi oggetto sia circondato da un effetto luminoso? Diciamo che ho un cubo 3d e se è selezionato il cubo dovrebbe essere circondato da un effetto luminoso blu. Qualche suggerimento?Oggetto GLSL incandescente

risposta

12

Beh, ci sono diversi modi per farlo. Se ogni oggetto è anche rappresentato in un formato winged edge, allora è banale calcolare la sagoma e quindi estruderla per generare un bagliore. Questo è tuttavia, molto, un metodo CPU.

Per un metodo GPU, è possibile provare il rendering su un buffer fuori schermo con lo stencil impostato su incremento. Se si esegue una sfocatura sull'immagine (anche se si scrive solo su pixel in cui lo stencil non è zero) si otterrà una sfocatura attorno al bordo dell'immagine che può quindi essere disegnata nella scena principale con l'alpha blending. Questa è più una sfocatura che un bagliore, ma sarebbe relativamente facile ridimensionare la luminosità in modo da renderla luminosa.

Ci sono un sacco di altri metodi troppo ... Qui ci sono un paio di link per voi a guardare attraverso:

http://http.developer.nvidia.com/GPUGems/gpugems_ch21.html
http://www.codeproject.com/KB/directx/stencilbufferglowspart1.aspx?display=Mobile

Avere un giro su google caccia perché c'è un sacco di informazioni :)