溶解效果

http://blog.csdn.net/xoyojank/article/details/4352090

<圣域2>选人界面的角色出现时的效果非常酷, 一直不知道咋做的

还是<龙歌>中speedtree在镜头前时的消隐也是这种溶解效果, 跟<圣域2>的圆形透明消隐差不多, 但是这种方法不用alphablend, 效率高些. (当时我形容是被虫子啃了...这机器上没装<龙歌>, 不截图了)

 

最近研究ShadowMap的Alpha穿透, 用到了clip()函数, 恍然大悟, 原来如此啊~

clip (DirectX HLSL)

Discards the current pixel if the specified value is less than zero.

 

clip(x)

 

Use this function to simulate clipping planes if each component of the x parameter represents the distance from a plane.

Parameters

x

[in] The specified value.

Return Value

None.

clip对应的asm指令是texkill, 这个的字面意思才比较好理解: 把当前像素kill掉.....

那么, 用一张噪声图就可以控制那种不规则的小窟窿(虫子咬了)

PS里只要用一个量来控制clip的参数范围就能很好地实现溶解效果. 当然如果要按区域溶解, 原理也一样, 怎么控制区域就不关我事了

 

[cpp]  view plain copy
  1. sampler2D Texture0;  
  2. float fDissolve : SinTime0_X;  
  3.   
  4. float4 ps_main(float2 tex : TEXCOORD0) : COLOR0  
  5. {  
  6.    float4 color = tex2D(Texture0, tex);  
  7.    clip(color.r + fDissolve * 0.15f);  
  8.    return color;  
  9. }  

 

效果图, Fraps竟然录的视频播放不了, 郁闷:

转载于:https://www.cnblogs.com/kex1n/p/3415863.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值