unity shader graph node

本文详细介绍了Unity Shader Graph中的一些关键节点,包括混合、遮罩、法线贴图处理、颜色转换、通道操作以及各种输入节点如基本类型、几何信息、光照和纹理采样等,帮助理解Shader Graph在游戏开发中的应用。

artistic -> blend
在这里插入图片描述
这个应该是 混合两张图片,每个图片的每个像素进行叠加,可在MODE中选择不同的方式
artistic -> mask
在这里插入图片描述
mask就是在该图层上加一层遮罩是(类型于PS的图层叠加)
– 不知道是否是这样

artistic -> normal
法线贴图部分
在这里插入图片描述
将两张法线贴图做个加法

在这里插入图片描述
将一张贴高度图生成为法线贴图,可以选择切线空间 和世界空间

在这里插入图片描述

贴图生成法线贴图

在这里插入图片描述
用Z轴生成法线图

在这里插入图片描述
对法线贴图的强度调整
artistic -> utility
在这里插入图片描述
对颜色的表示方法转换,RGB -> HSV

嗯 下一个节点

channel ->combine
在这里插入图片描述
split将贴图的颜色通道分解为RGBA ,combine则相反

channel -> flip
在这里插入图片描述
意为翻转 通道

channel -> swizzle

在这里插入图片描述
可以互换通道的值

input -> basic 里没什么说的
在这里插入图片描述
依次为:
bool型
color
对比度 (为常数)
int型
时间
vector 1/2/3/4

input -> Geometry

在这里插入图片描述
这些节点为几何学的上的,值从文件的mesh中读取
以此为:
双切线向量
法线向量
顶点坐标
屏幕坐标
切线向量
UV坐标
顶点颜色
视图方向(摄像机方向)

input ->gradient
在这里插入图片描述
一般与 sample gradient 一起用

input -> lighting
在这里插入图片描述
环境光
baked global light 应该是这这个缩写
反射探针

input -> matrix
在这里插入图片描述
其中transformation matrix (未知)
在这里插入图片描述
input -> pbr
在这里插入图片描述
电解质镜面
在这里插入图片描述
金属反光
在这里插入图片描述
input texture
在这里插入图片描述
sample xxx 的为采样器
xxx asset 为贴图资源
在这里插入图片描述
texel size 为采样的大小

在这里插入图片描述
samp;er state 为设置采样器的参数

### Unity Shader Graph 使用教程与问题解决 Unity Shader GraphUnity 提供的一个可视化着色器编辑工具,允许开发者通过节点的方式构建自定义着色器,而无需直接编写 HLSL 代码。它适用于 Universal Render Pipeline(URP)和 High Definition Render Pipeline(HDRP),为美术人员和技术美术提供了更直观的创作方式。 #### 基础概念与界面介绍 Shader Graph 的核心是节点系统,用户可以通过拖拽节点并连接它们来创建复杂的着色效果。主要节点包括: - **属性节点**(Property Node):用于暴露材质参数,如颜色、浮点数、向量等。 - **数学节点**(Math Node):执行基本的数学运算,如加法、乘法、取反等。 - **纹理采样节点**(Texture Sample Node):用于在着色器中使用纹理贴。 - **Fresnel Effect 节点**:根据视角方向与表面法线之间的角度生成边缘光效果,常用于实现轮廓高亮[^2]。 - **自定义函数节点**(Custom Function Node):支持插入 HLSL 函数以扩展功能。 #### 创建第一个 Shader Graph 1. 在 Unity 编辑器中,右键点击项目窗口,选择 `Create > Shader > PBR Graph` 或 `Unlit Graph`,具体取决于所需光照模型。 2. 打开新创建的 Shader Graph 文件,进入形化编辑界面。 3. 添加必要的节点,例如: - **主节点**(Master Node):决定输出类型(Base Color、Emission、Metallic 等)。 - **属性节点**:设置可调整的材质参数。 - **Fresnel Effect 节点**:用于边缘光效果,通常与颜色节点相乘后连接到 Emission 输入[^2]。 4. 连接各个节点,确保逻辑正确。 5. 保存并应用到材质上进行测试。 #### 常见问题与解决方案 ##### 1. Shader Graph 不出现在材质球上? 确保使用的渲染管线为 URP 或 HDRP,并检查材质的 Shader 字段是否设置为对应的 Shader Graph 类型。如果未显示,可能是因为没有正确安装或配置渲染管线包。 ##### 2. 如调试 Shader GraphUnity 提供了“Preview”面板用于实时查看中间结果。此外,可以使用 `Debug` 模式将任意节点的输出连接到 `Preview` 节点进行分析。 ##### 3. 边缘光效果不明显? Fresnel Effect 节点的强度受 Power 参数影响较大。尝试增大该值以获得更明显的边缘高亮效果。也可以结合视角方向与法线的点积计算(Dot 节点)来增强控制。 ##### 4. 如优化性能? 避免在每帧中频繁更新复杂计算。对于静态效果,考虑烘焙到纹理中;动态部分尽量简化逻辑结构,减少不必要的节点数量。 ##### 5. 自定义 HLSL 函数如使用? 使用 `Custom Function` 节点插入自定义的 HLSL 代码片段。需要指定输入输出变量,并确保其类型与连接的节点匹配。 #### 示例:实现边缘发光效果 以下是一个简单的边缘发光 Shader Graph 实现步骤: 1. 添加一个 `Fresnel Effect` 节点。 2. 添加一个 `Color` 属性节点,作为边缘光颜色。 3. 将 Fresnel 输出与颜色节点相乘。 4. 将结果连接到 Master Node 的 Emission 输入端口[^2]。 ```c // 示例自定义函数:边缘光强度控制 void CustomEdgeLight(float3 viewDir, float3 normal, float power, out float edge) { float dotProduct = dot(normalize(viewDir), normalize(normal)); edge = pow(1.0 - dotProduct, power); } ``` #### 学习资源推荐 - [Unity 官方 Shader Graph 文档](https://docs.unity3d.com/Packages/com.unity.shadergraph@latest/) - [ShaderGraph_ExampleLibrary GitHub 仓库](https://github.com/UnityTechnologies/ShaderGraph_ExampleLibrary)[^1] - Unity Learn 上的 Shader Graph 教程课程 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值