UE4定制表达式材质节点Custom的使用

      Custom节点的Code属性可由用户自己编写代码,代码与HLSL语法一致
      节点的输出是Code中return返回的值,返回值类型可在[Output Type]属性修改,比如选择[CMOT Float3],Code写入return float3(0,0,0);(这样简单的表达式也可以不使用return,直接写成float3(0,0,0)),将该节点连接到材质的BaseColor输入,则材质颜色固定为黑色。
Custom节点还有可以添加任意数量的输入,实现更复杂的功能。
1、纹理贴图在模型表面按圆形运动
      添加Custom节点,添加两个输入UV和Degree,输出类型选Float2,Code输入如下代码

float x = cos(Degree)*0.2;
float y = sin(Degree)*0.2;
return float2(x+UV.x,y+UV.y);

       按如下所示连接材质


       该材质中纹理UV随时间偏移,偏移值在半径为0.2(UV空间长度)的圆上,因此看起来就像纹理沿着这个圆在运动。保存才之后可以看到转动效果

  • 6
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
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++编程语言,我们可以创建复杂的材质节点,从而实现更高级的渲染效果和外观。这使得我们能够在游戏中创造出令人印象深刻的图形效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值