MMD联动Unity学习笔记 Vol.54 Unity Shader Graph 节点解析 纹素大小和采样状态节点
前言
这期我们还是跟着官方的视频学习Unity里关于Shader Graph的内容,这期是这个系列的第十期,纹素大小和采样状态节点。




在对三维表面铺设纹理的时候,通过纹理映射技术,将纹素映射到恰当的输出图像像素上,所以,通常一个像素内,会包含很多个纹素。

在Unity中,纹素节点被用来获取当前贴图的单位值,如异开贴图,对应有1024x1024个纹素。

但在Unity中,这个节点仅仅输出Z和W的值,如果你需要X和Y的分量,只需要用一除以这两个结果,就可以拿到对应的值了。通过这个办法,我们就可以对贴图的某一部分,进行特殊处理,达到需求的各种效果。

通常情况下,在采样贴图时,对应的Wrap Mode和Filter Mode会用到对应的贴图设置。但在Shader Graph中,我们可以直接用Sample State节点覆盖这一设置,做为一种优化方式,复用对多个贴图采样节点。

下面对提到得这两种模式,进行逐一说明。因为linear匀值特性,采用时会使用linear方式,而用point采样的贴图,在近距离会变得块状,很适合采样像素风格的贴图。Trilinear和linear的区别,在于Trilinear会在各级mipmap做混合,使得采样结果更加平滑。

而Warp Mode的这四个模式非常直观,就不多做说明。值得一提的是,导入设置中,贴图类型为Default和Normal时,会使用Repeat做为默认的采样方式。而Sprite精灵贴图,和LightMap光照贴图,则默认为Clamp模式。

目前Sampler State的用法,仅支持DirectX,PS4,XBOX和Metal的API的平台,意味着大多数移动平台都无法使用。