基于距离的体积雾和displcement纹理操作实现的烟雾流动

请见Demo:

http://www.artvily.com/renderCase?sample=depthFogDisplace

效果图:

基于距离的体积雾和displcement纹理操作实现的烟雾流动

体积雾的实现原理网络上很多,这里就不再赘述

只需要将displacement的结果去影响fog因子就能出现这样的烟雾流动的效果

通过不同的方式使用displace计算结果(例如vec3 fogColor3 = mix(vec3(1.0,0.0,0.1),vec3(0.0,0.0,0.8), factor);)可以生成各种效果, 例如:

基于距离的体积雾和displcement纹理操作实现的烟雾流动

基于距离的体积雾和displcement纹理操作实现的烟雾流动

基于距离的体积雾和displcement纹理操作实现的烟雾流动

如果有需要交流,请留言,感谢