注意:Unity 5 引入了标准着色器来取代此着色器。
此着色器的一个注意事项是基础纹理的 Alpha 通道同时定义透明区域以及镜面贴图。
注意:Unity 5 引入了标准着色器来取代此着色器。
此着色器可以通过读取主纹理的 Alpha 通道使网格几何体部分透明或完全透明。在 Alpha 中,0(黑色)表示完全透明,而 255(白色)表示完全不透明。如果主纹理没有 Alpha 通道,则对象将显示为完全不透明。
在游戏中使用透明对象可能很棘手,因为传统的图形编程问题可能会在游戏中带来排序问题。例如,如果在同时透过两个窗口观察时看到奇怪的结果,则表示遇到了在使用透明度方面的典型问题。一般规则是要注意在某些情况下,一个透明对象可能以不寻常的方式在另一个对象之前绘制,特别是在这些对象相交、相互包围或者大小差异巨大的情况下。因此,应该在需要时才使用透明对象,尽量避免过多使用。还应该让设计人员意识到可能发生这样的排序问题,让他们准备改变一些设计来解决这些问题。
镜面反射与漫射一样计算简单 (Lambertian) 光照,此外还有依赖于观察者的镜面高光。这称为 Blinn-Phong 光照模型。此渲染器具有取决于表面角度、光角度和视角的镜面高光。高光实际上只是一种模拟光源模糊反射的实时适用方法。高光的模糊程度由 Inspector 中的 Shininess 滑动条控制。
此外,主纹理的 Alpha 通道充当镜面贴图(有时称为“光泽贴图”),定义对象的哪些区域比其他区域更具反射性。Alpha 的黑色区域表示零镜面反射,而白色区域表示全镜面反射。希望对象的不同区域进行不同程度的镜面反射时,这非常有用。例如,生锈的金属之类的物体会使用低镜面反射率,而抛光的金属会使用高镜面反射率。唇膏比皮肤具有更高的镜面反射率,而皮肤比棉质衣服具有更高的镜面反射率。制作精良的镜面贴图可以给玩家留下深刻的印象。
通常,此着色器的渲染成本属于中等。有关更多详细信息,请查看着色器性能页面。
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.