unity中,常用的ShaderGraph节点介绍。
功能原理
Color节点的作用是用于定义一个颜色值,可以在ShaderGraph中直接使用该颜色值进行着色器的计算。在ShaderGraph中,可以通过拖拽Color节点来创建一个颜色属性,将该属性暴露给材质球进行编辑,以便在Unity编辑器中动态修改颜色值。
Color节点的属性包括RGBA四个通道的颜色值,每个通道的取值范围为[0,1],可以通过调整节点的颜色值来实现不同的效果。例如,可以使用Color节点来设置物体表面的基础颜色、光照反射颜色、轮廓颜色等。
Split节点用于从一个向量中分离出单独的向量组件。Split节点有两个输入端口:Vector和ComponentIndex。Vector输入是一个向量,ComponentIndex是一个整数,表示要分离的向量组件的索引。Split节点的输出是分离出的向量组件。
例如,如果我们有一个Vector3类型的变量vec,我们可以使用Split节点来获取其x、y、z分量。我们可以将vec连接到Split节点的Vector输入端口,然后设置ComponentIndex为0、1、2,分别表示x、y、z分量。然后,我们可以将Split节点的输出连接到需要使用这些分量的其他节点。
color节点可以被拆分成RBGA。
需要注意的是,Split节点只能从一个向量中分离出单个分量,如果需要同时分离多个分量,需要使用多个Split节点。
combine节点用于将多个单独的向量组合成一个向量。combine节点有多个输入端口,每个端口都代表一个向量组件。combine节点的输出是一个向量,其中每个组件的值来自于对应的输入端口。
例如,如果我们有几个单独的向量组件,如x、y、z分量,我们可以使用combine节点将它们组合成一个Vector3类型的向量。我们可以将这些分量连接到combine节点的不同输入端口,然后将combine节点的输出连接到需要使用这个向量的其他节点。
Texture2DAsset节点是UnityShaderGraph中的一个节点,用于将纹理资源转化为Shader可以使用的Texture2D类型的变量。通过该节点,我们可以将纹理资源和Shader进行连接,实现对纹理的处理和渲染。
在使用Texture2DAsset节点时,我们需要将对应的纹理资源拖拽到节点上,并设置一些基本的参数,例如纹理的采样方式、缩放、过滤方式等。这些参数可以在节点的属性面板中进行设置。
Texture2DAsset节点的输出可以连接到一些其他的节点,例如SampleTexture2D节点、UV节点等,用于实现对纹理的采样和处理。同时,我们也可以将Texture2DAsset节点的输出作为材质的纹理属性,用于渲染模型。
SampleTexture2D节点是UnityShaderGraph中的一种节点类型,用于从输入的纹理中采样颜色值,并输出给定坐标处的颜色值。它通常用于在着色器中将纹理映射到模型表面,从而实现纹理贴图的效果。
SampleTexture2D节点包含两个输入:Texture和UV。Texture输入是一个2D纹理,可以是从任何可用的纹理资源中导入的。UV输入是一个二维向量,表示要在纹理中采样的坐标位置。
输出是一个四元组颜色值,包含红、绿、蓝和透明度通道。
Add节点是UnityShaderGraph中的一种节点类型,用于将输入的两个数值相加,并输出它们的和。它通常用于在着色器中计算两个值之间的加和,例如将两个颜色值相加以实现颜色混合的效果。
Add节点包含两个输入:A和B。它们都是标量,可以是浮点数、整数或向量值。Add节点将这两个值相加,并将结果输出到一个输出端口。
需要注意的是,Add节点只能对相同类型的输入进行操作。如果输入不同类型的值,例如向量和浮点数,则需要使用类型转换节点将它们转换为相同的类型,然后再将它们输入到Add节点中进行计算。
同时,Add节点还可以用于将多个值相加,只需将多个Add节点串联起来即可。
在ShaderGraph中,Multiply节点用于将两个输入值相乘,然后输出结果。这个节点通常被用于计算两个变量之间的乘积,例如一个颜色值和一个浮点数。当将两个不同类型的数据类型输入到Multiply节点时,它们会被自动转换为相同的类型,以便可以进行乘法运算。
Float节点是ShaderGraph中的一种节点类型,用于创建一个浮点数值。它可以用于控制材质中的各种参数,例如透明度、反射率、光照强度等。在ShaderGraph中,Float节点可以直接作为其他节点的输入或参数使用。可以通过在ShaderGraph编辑器中拖拽Float节点来创建一个新的浮点数值,并将其与其他节点连接起来以实现更复杂的效果。
TilingAndOffset节点也是ShaderGraph中的一种节点类型,用于控制材质纹理的缩放和偏移。通过调整TilingAndOffset节点中的参数,可以控制纹理在材质表面上的显示方式,例如纹理的大小、重复次数、位置等。在ShaderGraph编辑器中,可以将TilingAndOffset节点与其他节点连接起来,以实现更复杂的纹理效果。
Time节点是ShaderGraph中的一种节点类型,用于获取当前时间信息。在ShaderGraph中,你可以使用Time节点来控制材质的动态效果,例如让材质的颜色随时间变化,或者让材质表面显示随时间变化的图案等。Time节点可以提供多种时间信息,例如当前时间、时间缩放因子、delta时间等。可以将Time节点与其他节点连接起来,以实现更复杂的效果。
Position节点是在ShaderGraph中用于获取当前像素在屏幕上的位置的节点。它返回一个包含像素位置的向量,该向量的x和y分量分别表示像素在屏幕上的水平和垂直位置,而z分量是0。这个节点通常用于屏幕空间效果的创建,例如在屏幕上绘制2D元素或创建屏幕空间效果。
它是一个常用的阈值函数节点,在ShaderGraph中用于将一个输入值与一个阈值进行比较,如果输入值大于或等于阈值,则返回1,否则返回0。它的作用类似于C语言中的条件运算符“?”,可以用于实现一些条件判断的效果,例如在Shader中根据某个值是否达到一个阈值来控制某个特效的显示或隐藏。
Step节点有两个输入端口,一个是输入值,另一个是阈值。当输入值大于或等于阈值时,输出为1,否则输出为0。Step节点的输出可以连接到其他节点的控制端口以控制某个特效的强度或透明度等。
它只有一个输入端口,即输入浮点数。它的输出值是0到1之间的一个浮点数,表示输入值的小数部分。Fraction节点常用于对纹理坐标进行处理,例如将纹理坐标的整数部分去掉,只保留小数部分,以实现纹理的平铺或滚动效果。
FresnelEffect节点是ShaderGraph中的一个节点,它用于实现Fresnel效果,Fresnel效果是在一个表面的边缘,特别是在光线垂直于表面时,光线的反射变得更加明显的现象。这个效果通常用于模拟玻璃、水、金属等材质的反射和折射效果。
该节点有两个输入:表面法线视线向量,以及一个输出:反射率。它会根据表面法线和视线向量计算反射率,反射率越高,表面的反射效果就越明显,折射效果就越弱。通常情况下,我们可以将该节点的输出与其他节点一起使用,以实现更加复杂的效果。
NormalVector节点是ShaderGraph中常用的一个节点,它用于获取表面法线向量。表面法线是指垂直于表面的向量,它通常用于计算光照和阴影效果。使用NormalVector节点可以将表面法线向量从模型空间转换到世界空间或观察空间,从而实现更加精细的光照效果。
NormalVector节点的输出是一个三维向量,表示表面法线的方向。该节点没有输入端口,因为它会自动获取当前像素的表面法线。
DotProduct节点是ShaderGraph中常用的一个节点,它用于计算两个向量之间的点积。点积是一种向量运算,它将两个向量相乘并相加,得到一个标量值。在计算光照和阴影效果时,点积通常用于计算光照向量和表面法线向量之间的夹角,从而确定光照的强度和颜色
Remap节点是ShaderGraph中的一个节点,其作用是对一个范围内的值进行重新映射。它常用于将一个输入范围内的值转化为一个输出范围内的值。例如,将0-1范围内的值映射到0-10范围内的值。
Subtract节点是ShaderGraph中的一个节点,用于计算两个值之间的差值。它将两个输入值进行相减操作,然后输出结果。Subtract节点通常用于计算颜色、坐标或其他值之间的差异,以实现特定的视觉效果。