自学内容网 自学内容网

【案例】距离限制模型透明

开发平台:Unity 2023
开发工具:Unity ShaderGraph

一、效果展示


在这里插入图片描述

二、路线图


在这里插入图片描述

三、案例分析


核心思路:计算算式:透明值 = 实际距离 / 最大距离 (实际距离 ≤ 最大距离)

3.1 说明 | 改变 Alpha 值

在 Shader 中,RGB颜色范围表现有 (0-1)/(0-255)两种值形式。在 ShaderGraph 中为(0-1)。

3.2 说明 | 获取模型与相机距离

在这里插入图片描述
ShaderGraph 提供

  • Postion(位置节点)标记材质应用的模型对象。
  • Camera(相机节点)映射所有相机类信息(包含 CameraURP CameraCinemachine.Camera


目标是计算相机与模型的世界距离。因此 Position.Space 项限定 World (世界空间)。
Distance (距离计算节点)计算 Vector 类型值。如图传入相机 Postion 与 模型 Positon。与程序中 Vector3.Distance() 一致。

效果表现中,实际不需要一直要求模型保持一定程度的透明化表现。增加了 MaxDistance / MinDistance 变量限制效果表现的距离。因此引入 Clamp(值域节点),表现与程序 Math.Clamp() 一致。

3.3 说明 | 计算 alpha 值

在这里插入图片描述
参考 核心思路 计算算式。ShaderGraph 提供常规计算节点,如

  • Subtract(减法计算节点)
  • Divide(除法计算节点)

同理,为控制透明度表现力,增加 MaxAlpha / MinAlpha 变量管理。当然增加 Color 变量管理材质颜色也是可以。

关于限制上使用 Lerp(插值节点)
  Lerp 本质上具有 Clamp 的性质,仅在结果上做出线性插值的补充,但最大范围值不会超越其透明表现。仍可以使用 Clamp(值域节点)作为最终输出。


原文地址:https://blog.csdn.net/qq_51026638/article/details/142712262

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!