1近期由于工作需求,需要实现一些地球上行政区域的内发光效果,找了很多资料终于找到了一个比较好的算法,现在一步一步分享给大家
2.首先在学习shader的时候,特别是hlsl和cg语言的,我们可以使用NVIDIA FX Composer 2.5工具。在上面我们可以找到很多shader效果并可以进行调试来改造写出我们自己想要的shader效果
<1>第一步,先来采透明度
由于物体外面的透明度都是0,而我们将物体设置成透明度为1完全不透明的物体,这样就会生成透明度从物体内部到外部从1到0递减的一系列值,由于这些值都是小于1的,因此用1减去它这样就得到了物体内部从0到1一系列递增的值。
实现代码如下:
float TexelIncrement = Stride*QuadScreenSize.x;
float2 QuadTexelOffsets = float2(0.0,0.0);
float2 Coord = float2(TexCoord.xy);
float colour = tex2D(scene,float2(Coord.x + TexelIncrement, Coord.y) ).w * (0.8/WT9_NORMALIZE);
colour += tex2D(scene, float2(Coord.x +2 * Te