Shader Effects 一些着色器的额外功能

来源:互联网 发布:linux socket tcp udp 编辑:程序博客网 时间:2024/05/11 21:23

Shader渐渐成为主流了,然而大多数公司我估计还是在使用普通的固定管道的功能吧,本文就总结一些用Shader能做,而用固定渲染管道不能做的功能,让大家看看shader的魅力。

1. 丢弃像素

这个是固定渲染管道所没有的功能,当然非要用固定渲染管道做差不多同样的效果是差不多可以的,就直接吧alpha值设计为0.但是之所以我说差不多,是因为用shader做的这个功能更加强大,shader是可以直接让一些特定的像素消失了,就是直接丢弃这些不需要渲染的像素,那样也优化了渲染速度。如实现如下这样的特效:

2.Phong Shading(冯氏渲染?)

这是一种处理光照的算法。一般固定渲染管道就能在vertex shader中逐个定点去计算光照强度,但是如果运用fragment shader编程就可以逐个像素点去计算光照强度,得到非常细腻的光照效果,颜色会变得很平滑。

3.计算特定的单位向量,并使用之来渲染

我们可以在fragment shader中计算单位向量,也就是计算每个像素的单位向量。这样做可以领到图像更加细腻逼真,各种特效也可以做的更加精确。

4.各向异性着色Anisotropic Shading

isotropic的意思就是光线反射的时候,同一表面反射角都一样的。Anisotropic就是同一平面反射角度都会不一样。例如头发反光,粗糙金属面,皮毛等等。

5. 数据驱动颜色

就是可以数据传递给shader。这样大大方便了做科学可视化。例如天气数据,可以根据湿度,紫外线等数据处理之后,在天气预报图上动态显示出来。

6. 利用其它数据做各种特效

例如利用物体离镜头(眼睛)的远近来决定如何画一幅图。如离镜头远的物体就用更少量的几何图形表示,近距离的时候就画图更细腻一点。

总结:

利用好shader可以让我们做游戏,动画等图像要求高的工作中做的更加优秀,利用出色的视觉效果来吸引我们的顾客。

 

Reference:

Graphics Shaders: Theory and Practice

原创粉丝点击