Unity3d高级溶解插件 Advanced Dissolve 简单讲解(上)教程

  • 简介

    • Advanced Dissolve 这个插件适用于消融效果的 大概功能介绍是以下
      • 溶解类型方式有 : 球体 ,盒子,圆柱,圆锥,平面,每轴 (X,Y,Z) 。同时可以使用 4 个对象。
        用于 alpha 裁剪和边缘噪声控制的多重纹理混合。
        UV, Triplanar 和 Screen-Space 溶解投影。
      • 各种边缘颜色控制器,包括简单的颜色,梯度和斜坡纹理。
      • 坚实、光滑和有噪声的边缘。
      • 彩色发射是可见的全球照明系统。
      • 与Unity完全兼容的后期处理和图像效果。
      • 包括标准,物理的基础上,遗产,一个方向的光,VertexLit, Unlit,粒子,统一自然和 SpeedTree 着色器。
        与 TextMesh Pro 兼容。

快速开始

创建简单的球体并使用 “插件的” 着色器分配新材质。在此阶段没有溶解作用。 要赋值
Mask 的 Type 选消融的类型才可以


image.png

他的材质全在这 有很多种可以自己选都是带溶解 有个别没在里面 需要去文件夹拖了


image.png
  • 渲染模式和面剔除

    • image.png
    • Advanced Dissolve 着色器支持三种渲染模式 Rendering Mode:
      • image.png
        • Opaque –是默认值,适用于没有透明区域的普通实体。
        • Cutout –启用此选项后,MainMap 将具有其自己的 Alpha Cutoff 参数。
          允许您创建透明效果,在不透明区域和透明区域之间具有硬边。在此模式下,没有半透明区域,
          纹理为 100%不透明或不可见。当使用透明度创建诸如草,头发或有孔和破烂物的材料的形状时,这很有用。
        • Fade (Transparent) 淡入淡出(透明)–允许透明度值完全淡出对象,包括对象可能具有的任何镜面高光或反射。如果要对淡入或淡出的对象设置动画,此模式很有用。阴影不会成为渲染器(标准着色器除外)
  • 面剔除 Face Cull:
    • image.png
      • Off–禁用剔除 绘制所有面 用于实现简单的双面效果 可能不适用于透明材料。
      • Front –不要渲染面向观察者的多边形 用于将物体由内向外翻转。
      • Back –不要渲染背离查看器的多边形


  • 材质Advanced Dissolve里面的讲解

    • image.png
  • Mask 遮罩 主要选择消融类型

    • Type=None 这个遮罩类型要 配合 纹理 Alpha 通过通道定义了 Cutout 形状 才能进行溶解

      • image.png
        • None 是默认值。溶解参数控制切口效果量。注意:Cutout Source 纹理 Alpha 通道定义了 Cutout 形状。
        • 默认情况下,着色器期望来自 Cutout 里的 Sourel类型 的 Alpha 通道的剪切值。
          • image.png
          • 这里就是通过 Cutout 里的 Sourel 里面的 Custom Map (自定义一张消融纹理贴图) 通过更爱Mask里面的Dissolve值进行消融
          • image.png

  • 下面这里的类型会用到一个 Invert数值的 作用就是溶解反转, 放张图吧

    • image.png
    • image.png
    • 就是会反结果嘛 如果打钩的话
  • Type=XYZ Axis 这个遮罩类型 是 就根据xyz轴进行消融的效果

    • X 轴示例:世界位置 X 值小于 “Offset” 参数的所有像素均被完全切除。
    • image.png
    • image.png
    • image.png
    • image.png
  • 下面介绍的遮罩 类型在材质编辑器中都没有参数控制器,它们是从自定义脚本中修改shader参数进行更新的。插件自带了了脚本 同时我们也可以自己定义 最多一个场景只能同时使用 4 个遮罩对象。对于每种遮罩类型,插件包里面有单独的示例场景和控制器脚本。

  • Type=Panel 这个遮罩类型 是由场景中 “Panel物体形状” 的位置及其法线方向定义 (你就算是个球体他也是根据 panel 形状和你的位置大小来算消融) 。着色器需要从脚本中更新位置和法线。

    • 示例场景和其中用于更新着色器参数的 Controller_Mask_Plane 脚本。以下效果示例图
    • image.png
  • Type=Box 着色器需要根据 “正方体” 位置和要从脚本计算其绑定框和转换矩阵。

    • 示例场景和用于更新着色器参数的 Controller_Mask_Box 脚本 。以下效果示例图
    • image.png
  • Type= Sphere 着色器需要根据 “球体” 位置和要从脚本更新的半径。

    • 示例场景和用于更新着色器参数的 Controller_Mask_Sphere 脚本 。以下效果示例图
    • image.png
  • Type=Cylinder:法线方向,高度和半径要从脚本中更新 他是设置一个起点终点 位置然后设置半径成了一个圆柱

    • 示例场景和用于更新着色器参数的 Controller_Mask_Cylinder 脚本 。以下效果示例图
    • image.png
  • Type=Cone 这个就比较好玩了,就一个圆锥形的 根据灯光 大小进行消融的

    • 示例场景和用于更新着色器参数的 Controller_Mask_Cone 脚本 。以下效果示例图
    • image.png

  • Cutout 剪裁 主要是 消融边缘那部分图像调整

    • image.png
      • 消融边缘的属性定义溶解效果的形状 ,Noise 控制影响边缘范围
    • Source 边缘贴图类型
      • Main Map Alpha –从 MainMap alpha 通道读取溶解剪切值。

        • image.png
      • Custom Maps (一个,两个,三个)–自定义溶解纹理 。可以使用滚动参数并通过乘或组合(加)进行混合。

        • image.png
        • 注意:可以通过 Scroll 参数对抠图纹理进行动画处理(就是说这个贴图法线可以进行偏移滚动,可以做出一些飘动的效果,红旗飘然什么的),但请确保将 Wrap Mode 参数设置为内部重复纹理导入设置.
    • Mapping
      • image.png
      • Normal –抠图纹理通过网格 UV 坐标采样。可以选择使用 UV0 或 UV1 布局。

      • Triplanar – Triplanar 地图投影。不需要网格 UV 坐标。注意:1 个纹理投影需要
        3 个纹理采样。

      • Screen Space – 在屏幕空间坐标中采样纹理。不需要网格 UV 坐标。

好了 差不多结束了=。= 不定期更新下篇

u3d萌新QQ群844087555——一个除了unity3d啥都会的群

你可能感兴趣的:(Unity3d高级溶解插件 Advanced Dissolve 简单讲解(上)教程)