OpenGL(十五) 雾效 的 shader 实现


雾效 可以表现出一个线性的颜色变化,常用于烘托场景气氛。这种效果的实现原理并不复杂,本文着重讨论如何通过shader编写完成雾效的实现。

核心原理

雾效的核心在于:计算视点与物体之间的距离,然后根据一个衰减公式进行颜色混合。常规的算法有线性衰减,指数衰减,指数幂衰减。

线性雾效

使用线性差值衰减,即可达到这种 雾效 。示意图如下:

对应shader如下:

指数雾效

指数雾效与上面的shader大体相同,唯一要更改的是衰减算法。添加一个density参数来控制曲线的弧度。

指数幂雾效

通过Gradiant可以控制雾效的衰减速度。

总结

本文通过三种shader实现,介绍了如何制作 雾效 来烘托氛围效果。

本文出自 松阳论道 转载必须注明出处

http://blog.songyang.net/419.html

说点什么吧...

电子邮件地址不会被公开。 必填项已用*标注