2013-05-25 4 views
0

Je comprends comment fonctionne un simple brouilleur de GLSL, mais comment peut-il être appliqué? L'appliquer directement à un maillage de terrain ne produit pas le résultat "brouillard" désiré. Comment imiter les effets de brouillard intégrés d'OpenGL avec un shader? La seule chose à laquelle je peux penser est d'appliquer le shader à une série de sphères enveloppées autour de la caméra, mais cela semble être beaucoup de travail pour un peu de brouillard.Applications OpenGL/GLSL Fog

Mise à jour: Quelques images à expliquer plus en détail.

C'est shader j'ai appliqué à mon maillage du terrain, et le résultat est pas ce que je veux:

http://puu.sh/31dft.jpg

C'est le genre d'effet que je cherche à répliquer:

http://mw2.google.com/mw-panoramio/photos/medium/4503932.jpg

+0

Comment ne produit-il pas le résultat souhaité? Vous avez des captures d'écran une référence à la façon dont vous voulez qu'il ressemble? – Grimmy

+0

@Grimmy, voir ma mise à jour – LucasS

+0

Alors vous voulez du brouillard volumétrique? – Grimmy

Répondre

0

Vous devez définir la couleur du brouillard et la couleur de fond comme étant les mêmes. Sinon, les effets ont l'air bizarre. Le point de brouillard est de faire "disparaître les objets éloignés". Le problème avec votre image est que votre arrière-plan est bleu vif, comme si vous vouliez que ce soit une journée ensoleillée et claire. Mais les objets de votre scène passent au blanc, comme s'il y avait un très épais brouillard. Je vous suggère de trouver un compromis - utilisez un bleu grisâtre pour les deux.

1

Le rendu d'atmosphère semi-réaliste est un problème complexe auquel de nombreuses recherches (continues) sont consacrées. Dans votre photo de référence, il y a essentiellement trois facteurs principaux qui peuvent contribuer à la composition particulière: i. brouillard/brume ii. diffusion atmosphérique iii. altitude.

Il suffit d'appliquer le brouillard uniquement sur des objets tels que le terrain, car il s'agit d'un concept intrinsèquement erroné, car le brouillard obstrue/obscurcit le facteur de transmission de la lumière. Cela inclut la lumière du ciel. Donc, pour couvrir le scénario de brouillard appliqué au «ciel», une autre approche est nécessaire, impliquant un post-traitement. Essentiellement, la position de chaque pixel doit être reconstruite dans l'espace 3d, et l'algorithme de brouillard doit être exécuté sur chacun d'entre eux. En fonction du style artistique, cela peut suffire à vos besoins, mais c'est plus compliqué. Ce document, http://developer.amd.com/wordpress/media/2012/10/D3DTutorial_Crytek.pdf donne un bon point de départ en ce qui concerne le rendu atmosphérique (il inclut le brouillard volumétrique).

Questions connexes