# 材质蓝图入门2

此处参考资料为:

# 常用节点

# 流程控制节点

  • SwitchParam:根据真假获取相应的值。
  • Switch节点:根据某个bool参数值来判断要输出哪个值。
  • if节点:比较两个值,根据比较结果来判断输出哪个值。从下面可以看出,box的中心为世界坐标原点。
    • ifNode

# 数值操作节点

下面是一个关于数值节点的例子,可根据这个例子细细体会数值运算:

MathNode

# 向量节点

下面实现的是冲着摄像机的始终是亮的:

VectorNode

# 数据节点

一些节点能输出数据,这样的节点被称为数据节点,它们一般为红色,常用的数据节点有:

  • TexCoord[0]:输出UV坐标。
  • Absolute World Position:会输出每个像素的世界空间位置。
  • Object Position:输出当前物体的世界空间位置。
  • VertexNormalWS:每个顶点的法线。
  • PixelNormalWS:像素的法向量。
  • Object Radius:输出物体的半径。
  • Screen Position:好像是窗口固定了一张图片,TextureSample像是一个矩形小窗口在看这张图片。左上角是00,右下角是11。
  • PixelDepth:像素深度,被渲染的点到镜头的距离。
  • SceneDepth:同PixelDepth一样是被渲染的点到镜头的距离。同PixelDepth不一样:
    • SceneDepth可以被用在后处理材质中,Pixel不能。
    • SceneDepth可以取样被挡住的点。
  • VertexColor:模型顶点上指定的颜色。可用来混合贴图:
    • VertexColor

# 工具节点

下面是一些常用的工具节点,他们很难被划分到某一类:

  • Lerp:常用来做颜色混合。
    • lerpNode
  • BumpOffset:可产生凹凸贴图偏移,视差贴图,位移贴图的效果。
    • bumpOffset
  • Depth Fade:和其他物体交界的地方作透明度的过渡。做烟雾的时候融入场景用它比较合适,可以用在烟雾粒子里面。
    • depthFade0
    • depthFade1
  • Distance:求两个点之间的距离。以厘米单位返回。
    • distance
  • Fresnel:菲涅尔节点,摄像机到那个点的向量和它的法向量做的一个点积。在物体边缘创建高亮区域。
    • fresnel
  • if:判断节点。
    • fracNode

# 材质函数

虽然核心节点都很有用的,但是有时候需要复杂的数学计算,这时候就需要把这些数学计算重复很多次,这个时候可以把这些结构封装进材质函数,重复使用。他们都是蓝色的节点,能够封装材质蓝图中的常用逻辑。可在材质编辑器右边的Function中查看,比如:

  • Blend_Screen,Blend_Exclusion,Blend_PinLight对应于photoshop来混合两张贴图。
  • BlendAngleCorrectedNormals:使用lerp node来混合两张法向贴图。
  • MakeFloat:将多个Append节点压缩。
  • CheapContrast:使用值来将增加贴图的对比度。
  • DepthOfFieldFunction:提供景深的运算结果。0~1的范围代表从聚焦到模糊。
  • Desaturation:减饱和度,会生成一个单调柔和的灰度图。