UE4Material_材质属性(1)

材质中的属性:
在这里插入图片描述
物理材质
在这里插入图片描述
Phys Material(物理材质)
与该材质关联的物理材质 。物理材质(Physical Material)提供了物理属性的定义,例如碰撞(弹力)以及其他基于物理的方面会保留多少能量。物理材质(Physical Material)对材质的外观没有影响。

在这里插入图片描述
材质域(Material Domain)
此设置允许您指定如何使用此材质。某些材质的使用(例如贴花)需要额外的说明,以便渲染引擎加以考虑。正因为如此,指定用于这些情况的材质十分重要。材质域(Material Domain)包括以下选项:

说明
表面(Surface)该设置将材质定义为将用于对象表面的东西;您可以联想金属、塑料、皮肤或任何物理表面。因此,这是您大部分时间里都会用到的设置。
延迟贴花(Deferred Decal)在制作贴花材质 时,您将使用此设置。
光源函数(Light Function)在创建与光源函数配合使用的材质时使用此设置。
量(Volume)当前官网并没有介绍
后期处理(Post Process)如果材质将用作后期处理材质 ,则使用此设置。
界面UI (User Interface)当前官网并没有介绍

混合模式(Blend Mode)
混合模式(Blend Mode)描述了当前材质的输出如何与背景中已经绘制的内容进行混合。更专业地说,它允许您控制引擎在渲染时如何将这个材质(源颜色(Source color))与框架缓冲区中已经存在的材质(目标颜色(Destination color))结合起来。可用混合模式为:

模式说明
混合(BLEND)不透明(Opaque)_最终颜色 = 源颜色。这意味着材质将在背景顶部绘制。此混合模式与照明兼容。
混合(BLEND)遮罩(Masked)_最终颜色 = 如果OpacityMask (不透明蒙版)> OpacityMaskClipValue(不透明蒙版剪辑值),则为源颜色,否则该像素将被丢弃。此混合模式与照明兼容。
混合(BLEND)半透明(Translucent)_最终颜色 = 源颜色 不透明度 + 目标颜色 (1 - 不透明度)。此混合模式 不 与动态照明兼容。
混合(BLEND)添加(Additive)_最终颜色 = 源颜色 + 目标颜色。此混合模式 不 与动态照明兼容。
混合(BLEND)调制(Modulate)_最终颜色 = 源颜色 x 目标颜色。此混合模式 不 与动态照明或雾化兼容,除非该材质是贴花材质。

有关混合模式的连接:http://api.unrealengine.com/CHN/Engine/Rendering/Materials/MaterialProperties/BlendModes/index.html

贴花混合模式(Decal Blend Mode)
此属性定义了如何通过贴花材质通道操作GBuffer(渲染缓冲器)信道。(仅当MaterialDomain == MD_DeferredDecal时)

顾名思义,它定义了混合模式(Blend Mode),当材质域(Material Domain)属性设置为_延迟贴花(Deferred Decal)_时将使用这种混合模式,并且在对材质域(Material Domain)进行相应的设置之前不能更改。它包含的混合模式不同于表面可用的混合模式。

模式说明
半透明(Translucent)这将使贴花混合底色(Base Color)、金属感(Metallic)、镜面反射(Specular)、粗糙度(Roughness)、自发光(Emissive)颜色、不透明度(Opacity)和法线(Normal)。利用此模式,您可以混合完全独立的材质,比如一个波浪起伏的水坑,周围是普通的基于地图的多泥建筑。
污点(Stain)仅混合底色(Base Color)和不透明度(Opacity)。适用于只改变颜色的贴花,如墙上的干喷漆。
法线(Normal)仅混合法线(Normal)和不透明度(Opacity)。适用于向表面添加裂纹。
自发光(Emissive)仅混合自发光(Emissive)和不透明度(Opacity)信道。非常适用于让原本不发光的东西发光。
。。。。。。。。。。。。

着色模型(Shading Model):
着色模型决定了材质输入(如自发光、漫射、镜面反射、法线)如何组合以形成最终颜色。(MaterialDomain ==Sueface)

模型说明
无光照(Unlit)材质仅由自发光(Emissive)和世界位置偏移,像素深度偏移输入定义。它不对应光源。
默认光照(Default Lit)默认着色模型。非常适用于大部分实体对象。
次表面(Subsurface)用于次表面散射材质,如蜡和冰。激活次表面颜色(Subsurface Color)输入。
预整合皮肤(Preintegrated Skin)用于类似于人类皮肤的材质。激活次表面颜色(Subsurface Color)输入。
透明涂层(Clear Coat)用于表面有半透明涂层的材质,如车漆或清漆。激活透明涂层(Clear Coat)和透明涂层粗糙度(Clear Coat Roughness)输入。
次表面配置文件(Subsurface Profile)用于类似于人类皮肤的材质。需要使用次表面配置文件 才能正确工作。

双面(Two Sided):
法线将被翻转到背面,这意味着将同时为正面和背面计算光照。这通常用于植物上,以避免多边形数量加倍。“双面”无法正常用于静态照明,因为网格体仍然只使用单一的紫外线集进行光源映射。因此,使用静态照明的双面材质两侧会有相同的阴影。双面显示 ,渲染的时候比较耗资源

使用材质属性(Use Material Attributes):
此复选框将使材质主节点被压缩为单个标记为“材质属性(Material Attributes)”的输入。当您需要使用分层材质混入多个材质时,或者在使用制作材质属性(Make Material Attributes)表达式节点定义多个材质类型时,这一点非常有用。使用材质属性为true时,将使用材质属性引脚,而非常规引脚
在这里插入图片描述
次表面配置文件(Subsurface Profile):
这允许您更改材质(Material)中使用的次表面配置文件 。

贴花响应(Decal Response):
此属性定义了材质对DBuffer贴花的反应(影响外观、性能和纹理/样本使用)。您可以在基元(例如静态网格体)上禁用非DBuffer贴花。

有关着色器模型的连接 http://api.unrealengine.com/CHN/Engine/Rendering/Materials/MaterialProperties/LightingModels/index.html

不透明遮罩剪辑值(Opacity Mask Clip Value):
此属性是遮罩材质的OpacityMask输入根据每个像素进行剪辑的参考值。任何高于OpacityMaskClipValue的值将符合要求,且像素将被绘制(不透明),而任何低于OpacityMaskClipValue的值将不符合要求,且像素将被丢弃(透明)。

投射动态阴影作为掩蔽(Cast Dynamic Shadow as Masked) :
如为true,半透明材质将根据其不透明投射动态阴影。OpacityMaskClipValue将用作阙值。

颤动LOD过渡(Dithered LOD Transition):
以材质渲染的网格体是否应支持颤动LOD过渡

颤动不透明遮罩(Dith Opacity Mask):
结合临时抗锯齿使用时,这可用作一种受限半透明,其支持所有光照功能

是否允许输出负自发光颜色值(Allow Negative Emissive Color):
只允许在无光照材质上使用

自定义UV数量(Num Customized UVs)
此属性设置要显示的自定义UV输入的数量。未连接的自定义UV输入将仅穿过顶点UV。

生成球形粒子法线(Generate Spherical Particle Normal’s)
当您绕着使用这种材质的粒子系统旋转时,此属性会生成保持球形的表面法线。这对于体积粒子系统非常有用,因为子画面总是旋转以面向摄像机。有了这个选项,它们将具有更加球形的体积外观。

切线空间法线(Tangent Space Normal):
材质将切线空间法线或场景空间法线用作输入。(切线空间需要更多额外指令,但通常更为便利)。

自发光(动态区域光)(Emissive(Dynamic Area Light)):
如果启用,材质的自发光颜色会注入到光传播体积。

阻塞全局照明(Block Global lllumination):
启用后,材质的不透明度将定义使用LightPropagationVolume(光传播的体积)功能时GI被阻挡的量

完全粗糙(Full Rough):
强制材质为完全粗糙。保存若干指令和一个采样器

法曲率到粗糙度(Normal Curvature to Roughness):
基于屏幕空间法线变化降低粗糙度。

线框(Wire Frame):
启用应用该材质的网格体的线框视图。

支持顶点变形的精确速度(Support accurate velocities from Vertex Deformation):
在基础通道中跳过速度的输出。

资源用户数据(Asset User Data):
和资源保存到一起的用户数据组

  • 9
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UE4是一款强大的游戏引擎,其中的材质节点是用来创建和控制游戏中物体的表面外观的。在UE4中编写材质节点需要使用C++编程语言来创建自定义的节点。 首先,我们需要创建一个用于材质编程的MaterialInstanceDynamic对象。我们可以使用以下代码来创建它: UMaterialInstanceDynamic* DynamicMaterial = UMaterialInstanceDynamic::Create(OriginalMaterial, nullptr); 接下来,我们可以通过使用DynamicMaterial来设置和控制材质的参数。例如,我们可以使用以下代码来设置节点的颜色参数: DynamicMaterial->SetVectorParameterValue(FName("Color"), FLinearColor(1.0f, 0.0f, 0.0f)); 除了设置基本的参数,我们还可以设置纹理和其他复杂的节点属性。例如,我们可以使用以下代码来设置一个纹理节点: DynamicMaterial->SetTextureParameterValue(FName("Texture"), Texture); 我们还可以使用C++代码来创建和连接各种节点的输入和输出。例如,我们可以使用以下代码来创建一个常量节点: UMaterialExpressionConstant* ConstantNode = NewObject<UMaterialExpressionConstant>(); ConstantNode->R = 0.5f; ConstantNode->G = 0.5f; ConstantNode->B = 0.5f; 然后,我们可以使用以下代码将该节点连接到材质的Diffuse输入节点上: DynamicMaterial->BaseColor.Expression = ConstantNode; 最后,我们需要将DynamicMaterial应用于我们想要渲染的物体上。我们可以使用以下代码来完成这一步骤: MeshComponent->SetMaterial(0, DynamicMaterial); 通过使用UE4中的C++编程语言,我们可以创建复杂的材质节点,从而实现更高级的渲染效果和外观。这使得我们能够在游戏中创造出令人印象深刻的图形效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值