用hlsl/glsl实现内发光效果

本文介绍了一种实现内发光效果的方法,主要针对hlsl和glsl shader。通过透明度采样和颜色乘以透明度值,达到删除物体外部边框,仅保留内部发光的效果。作者分享了实现步骤,并提供了实例图,邀请读者交流学习。
摘要由CSDN通过智能技术生成

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
评论 38
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值