签到

05月05日
尚未签到

共有回帖数 0

    长街旧港00

    等级:
    一个小技巧实现黑夜中照明效果。灰常简单而且灰常实用!原理是用shader的纹理透明度混合,然后在脚本中对纹理的位置进行修改。这次我们实现猪脚一圈照明效果,并且光圈随猪脚移动。
    工具/原料一台电脑unity4.0以上













    我们先来吧第一行代码“”里的名字改为“mask shader”这个仅仅表示shader的外部显示名,没大意义。我们看第三行这个_MainTex就是主纹理了,“Base (RGB)"是也外部名字没多大意义,我们按他的格式添加一个贴图作为遮罩:      _Mask ("Culling Mask", 2D) = "white" {}下面这个用来调整后期边缘的透明度:      _Cutoff ("Alpha cutoff", Range (0,1)) = 0.1
    我们将SubShader中的tages改为:      Tags {"Queue"="Transparent"}这个决定了渲染方式,是保证所有的不透明物体都会在半透明物体之前被渲染,简单的说就是我们可以进行透明度的渲染了。
    然后我们删除tages到endcg里的内容,添加下面的代码: Lighting Off      ZWrite Off      Blend SrcAlpha OneMinusSrcAlpha      AlphaTest GEqual [_Cutoff]      Pass      {                  SetTexture [_Mask] {combine texture}         SetTexture [_MainTex] {combine texture,texture-previous}                           }里面的settexture就是进行纹理的设置了,看   SetTexture [_MainTex] {combine texture,texture-previous}里面逗号前的是颜色计算,后面的是透明度计算“combine texture”颜色维持原样,“texture-previous”是与上一句的计算结果进行减法计算,而我们上一句没有计算透明度,所以就是我们的主纹理“_MainTex”的透明度减去了遮罩光斑“_Mask”的透明度。注意:这里透明度为0-255,0为完全透明所以不透明减去不透明就是0,就透明了,哈哈简单吧!最后如下:







    楼主 2015-09-28 19:42 回复

共有回帖数 0
  • 回 帖
  • 表情 图片 视频
  • 发表

登录直线网账号

Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号 意见反馈 | 关于直线 | 版权声明 | 会员须知