ue4 材质表达式分类

https://api.unrealengine.com/CHN/Engine/Rendering/Materials/ExpressionReference/index.html
在官方文档目录结构上:分材质表达式材质函数2种

绿色节点 函数

颜色 Color Desaturation
数学 Math GO
字体 Font FontSample,FontSampleParameter

实用程序 Utility

  • 常用: Desaturation(去饱和度),Distance(距离),Fresnel(菲涅尔,边框),GIReplace(GI 替换,反射数据替换),LinearInterpolate(线性插值 Lerp)
  • 优化用:FeatureLevelSwitch(功能级别开关),QualitySwitch(质量开关)
  • 蒙版:SphereMask(球体蒙版),AntialiasedTextureMask(抗锯齿纹理蒙版)
  • BumpOffset(视差贴图):视差贴图,本质上,是一种位移贴图(Displacement Mapping)。它的原理,是根据视线方向,对当前看到的像素位置进行一定的坐标偏移,显示偏移过后的像素颜色 https://www.jianshu.com/p/98c137baf855
  • Noise(噪声): 生成噪点。 注意:Position要的像素坐标变3维会有些特别的效果
  • RotateAboutAxis(绕轴旋转): 1、设定好旋转轴(0,0,1) 2、如果想移动这个旋转轴(100,100,0) 3、LocalPosition=WorldPosition TransformPosition Locatoin Space
  • 网格距离场:DistanceToNearestSurface(与最近表面的距离),DistanceFieldGradient(距离场梯度)...生成了网格距离场后这两个函数就可使用了,有点像A*寻路里的格子,算距离很方便。
  • 不常用:BlackBody(黑体),ConstantBiasScale(常量偏差比例),hlsl函数 ddx ddy(往屏幕右边走,是离光源更远还是更近,变化幅度由多大)。DepthOfFieldFunction(视野深度函数)
  • ??:LightmassReplace(光照系统替换 两种输入,在两种使用阶段)

DepthFade

红色节点 输入OR表达式

常量 Const

  • ??? 按实例消退、随机
  • 时间(period?周期?),双面法线,VertexColor,ViewProperty(视野大小)

粒子的:颜色,方向,全局空间位置,动运,半径,大小,生存时间,速度

坐标 Coordinates

  • 对象:ActorPositionWS,ObjectPositionWS,ObjectOrientatoin,ObjectRadius
  • 像素:PixelNormalWS,WorldPosition
  • 场景:ViewSize,SceneTexelSize,SceneColor,SceneDepth,ScenePosition //Texel:纹理元素 texture element
  • 其他:ParticlePositionWS,VertexNormalWS,CameraPositionWS

WS是全局的意思。LightmapUVs:???。
绿节点:Panner,Rotator

粒子 Particle

ParticleMotionBlurFade(粒子运动模糊的值) ParticleMacroUV(使用粒子拼好贴图) SphericalParticleOpacity(利用透明度达到圆形) ParticleSubUV(粒子动画贴图用)

粒子的:颜色,方向,全局空间位置,动运,半径,大小,生存时间,速度

其他

大气 Atmosphere AtmosphericFogColor
深度 Depth DepthFade(深度消退) PixelDepth(像素深度) SceneDepth(场景深度)

其他

定制 Custom

自t定义HLSL代码,CalcPixelMaterialInputs 最后一步计算函数

函数 Function

多数与材质函数配合使用,除TextureObject与TextureSample配合使用

材质属性 Material Attribute

BreakMaterialAttributes中断材质属性 MakeMaterialAttributes建立材质属性

参数 Paramaters

  • CollectionParameter(参数文件) DynamicParameter(粒子系统用) FontSampleParameter TextureObjectParameter(纹理取样用)
  • StaticBoolParameter(编译时用的) StaticComponentMaskParameter(编译时用 蒙版)
  • 材质实例,代码用:ScalarParameter VectorParameter
  • 材质实例,代码用:TSP2D(功能与TextureSample相同),TSPSubUV(功能与ParticleSubUV相同) TSPCube(只接立方体贴图) TSPMovie(只接电影贴图) //TSP=TextureSampleParameter

景观 Landscape

LandscapeLayerBlend:景观模式专用的材质表达式,可将多个材质混合,按需涂到景观上。

1、给景观选择材质 2、在景观模式的颜料下选择层,涂到景观上。要为每个层创建一个文件(Landscape Layer))。

三种混合模式:LB_ALphaBlend、LB_HeightBlend、LB_WeightBlend。

  • LB_WeightBlend:按重量混合,使用一个层涂的次数越多混合权重越高。
  • LB_HeightBlend:这个会在混合层上加一个H层。H层在与别的层混合时会显示出来,H层的值:白色混合权重0,黑色权重1。

节点:LandscapeLayerCoords,LandscapeLayerSwitch,LandscapeLayerWeight,LandscapeVisibilityMask

纹理 Texture

蓝的节点

  • FontSample,FontSampleParameter,TextureObject,TextureSample
  • ParticleSubUV,TextureObjectParameter,TextureSampleParameter2D,TextureSampleParameterCube

红的节点

  • SpriteTextureSample??定制精灵纹理取样
  • SceneColor,TextureProperty

失量操作

ObjectOrientation(对象方向),ReflectionVectorWS(反射全局空间矢量:表面法线上的摄像机方向)

其他的与参考坐标目录

失量

AppendVector(追加矢量),ComponentMask(分量蒙版),CrossProduct(矢量积),Normalize(规范化),Transform(转换 本地<->全局)
DeriveNormalZ(派生法线 Z。。根据X,Y值生成Z),DotProduct(标量积。。参考向量投影,全局向量法线Dot相机相对表面向量 可做出类似菲涅尔效果)

材质相关源代码

Runtime/Engine/Classes/Material MaterialExpressionSceneTexture

posted @ 2017-11-16 13:35  晨祷  阅读(5121)  评论(0编辑  收藏  举报