前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >溶解效果

溶解效果

作者头像
逍遥剑客
发布2018-05-23 14:22:26
1.5K3
发布2018-05-23 14:22:26
举报

<圣域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的参数范围就能很好地实现溶解效果. 当然如果要按区域溶解, 原理也一样, 怎么控制区域就不关我事了

代码语言:javascript
复制
sampler2D Texture0;  
float fDissolve : SinTime0_X;  
float4 ps_main(float2 tex : TEXCOORD0) : COLOR0  
{  
   float4 color = tex2D(Texture0, tex);  
   clip(color.r + fDissolve * 0.15f);  
 return color;  
}  

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2009年07月15日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • clip (DirectX HLSL)
    • Parameters
      • Return Value
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档