zoukankan      html  css  js  c++  java
  • Unity Built-in Shader详解二

    这次主要讨论Unity自带的Shader中Transparent Shader Family

           这个家族的Shader一共7种,原理和类型与Normal中的上差不多,只不过这些Shader是用在半透明或者全透明的物体上面的。他们的主纹理接受RGBA4个通道。如果你的模型一部分是半透明,一部分是不透明的。请分开使用两张材质,半透明的材质这个家族的Shader。这个家族的Shader的内容和Normal中同名的几乎一样,只是添加了半透明效果,因此不再做重复介绍。

           通过读取纹理中的alpha值,这个Transparent家族的shader可以让模型变成半透明或者全透明的。在alpha中,0表示全透明,255表示全白。如果你的主纹理不包含alpha通道,那么这个物体将会变成不透明的。

           在游戏中使用半透明的物体是比较有技巧性的,因为他们经常会导致排序问题。比如说,如果你透过两个窗口观察物体,发觉物体很异样,恭喜你,你正在经历着每个人都会遇到的使用半透明对象的问题。一条具有普遍性的规则是:有些时候一个半透明的对象会很诡异的绘制在另外一些对象前面,尤其当这些对象是互相交叉的,或者一个把另一个包围的抑或是。为此,当你需要半透明对象的时候,你应该使用它们,但是不要太过于依赖半透明对象(考虑到性能问题)。你也应该让你的设计者们了解到排序可能会出现问题,让他们做好为此调整的准备。

           (1)Vertex-Lit

               这个家族中最简单的Shader,同样有固定管线和可编程管线两个SubShader,适用于所有的硬件。所有的光只在顶点计算。除了支持半透明,其他特性和Normal里面的Vertex-Lit一致。

               Unity Shader/Transparent/Vertex-Lit

              (2)Transparent Diffuse

               同Normal中的Diffuse,支持了alpha。

               Unity Shader/Transparent/Diffuse

              (3)Transparent Specular

              同Normal Specular,支持了半透明

              Unity Shader/Transparent/Specular

              (4) Transparent Bumped Diffuse

              同Normal中的Bumped Diffuse

              Unity Shader/Transparent/Bumped Diffuse

              (5) Transparent Bumped Specular

              同Normal里面的Bumped Specular,支持半透明

              Unity Shader/Transparent/Bumped Specular

              (6)Transparent parallax Diffuse

              同Normal parallax Diffuse,支持半透明

              Unity Shader/Transparent/Parallax Diffuse

              (7) Transparent Parallax Specular

              同Normal Parallax Specular,支持半透明。

              Unity Shader/Transparent/Parallax Specular

  • 相关阅读:
    事件
    js定时器
    js动画
    oop面向对象编程
    26 正则表达式
    25 异常处理
    javascript操作select的一些基本方法总结
    一个select 列子的思考
    jquery中 toggleClass方法的一种用法
    模拟TAB 采用 attachEvent 遇到的IE兼容问题
  • 原文地址:https://www.cnblogs.com/xpvincent/p/3168926.html
Copyright © 2011-2022 走看看