≡
导航
搜索
教程
插件
模型
模板
博客
交易
朋友
Unity 3D 游戏引擎吧
已关注 | 取消
+关注
关注:
46
帖子:
451
签到
05月05日 尚未签到
看帖
图片
精品
视频
共有回帖数
0
个
【教程】unity用shader遮罩模拟黑夜火把照明效果
只看楼主
收藏
回复
长街旧港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
个
回 帖
表情
图片
视频
欢迎来到本吧,您可以在此发帖和众多大咖交流学习.
选择或直接输入昵称
Tips:支持QQ截图直接粘贴
发表
登录直线网账号
自动登录
忘记密码
免费注册
本吧信息
查看详情
吧主:
mygameplay
本吧公告
优秀文章 【交流】Unity 脚本入门 个人经验及常用方法块 http://www.linecg.com/tieba/content_4292.html 大家可以看一下
我常逛的吧
我管理的吧
Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号
意见反馈
|
关于直线
|
版权声明
|
会员须知