码迷,mamicode.com
首页 > 编程语言 > 详细

关于unity shader的BUG

时间:2015-05-22 07:03:41      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:

(shader这方面的教材、尤其体积光讲的暧昧不清,浑浑昏昏!)

 

由于将要做的一款作品里面要用到体积光特效,于是对这块知识进行了相应的研究。成果:

1.发现了unity shader的一个BUG:

技术分享

参照之前所学的DX的知识,将混合状态设置成这样,进行颜色混合的时候,发现无法进行纯色混色(颜色值,相对于贴图而言),以及部分贴图出现无法混合成功的情况。于是顺着这条线一直往下探索、测试,发现了事件的真相:

unity的fragment着色器在“采色”结束后,不会按照上面标注的那句blend进行操作,也就是说它内部没有实现混合,也不能说完全没有,当标志位 Tags 标明了"renderType"="Transparent"、或者"queue"="transparent"时,贴图会根据贴图自带的ALPHA值进行混合但是贴图像素单元的后期设置的alpha值不会参与Blend混合,你后期修改不修改没啥鸟用;

纯色、某一部分贴图则不会(我这部分测试结果不全面,不能以偏概全)。(Tags这块也是个BUG,透明处理标志的处理,写的非常不严谨,没有规律可循,保险还是两个标志都写上,一个是排序,一个是透明标志)。

解决办法:需要手动进行一步乘ALPHA操作:

技术分享

 

体积光的效果,就另起一篇吧。

这篇先到此结束。

关于unity shader的BUG

标签:

原文地址:http://www.cnblogs.com/SecretMan001/p/4521300.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!