4

UE4 微笔记 之 调整网格材质参数

 2 years ago
source link: https://blog.csdn.net/tkokof1/article/details/121704268
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

UE4 微笔记 之 调整网格材质参数

tkokof1 2021-12-03 17:56:37 13
同时被 2 个专栏收录
68 篇文章 0 订阅
145 篇文章 1 订阅

简单记录一下调整网格(Mesh)材质参数的方法

修改网格材质参数一般有以下几个步骤:

  • 首先创建材质参数(这里有较详细的说明)
  • 创建动态材质实例(UMaterialInstanceDynamic)
  • 设置动态材质参数(通过 SetVectorParameterValue 等方法)

以下是一段简单的代码示例:

void SetMeshMaterial(UMeshComponent* MeshComponent, int MaterialIndex)
{
	if (MeshComponent)
	{
		auto Material = MeshComponent->GetMaterial(MaterialIndex);
		if (!Material)
		{
		    // create material if needed
		    Material = LoadObject(nullptr, TEXT("/Game/TemplateMaterial"));
		}
		
		if (Material)
		{
		    // check if material is already dynamic
			auto MaterialInstance = Cast<UMaterialInstanceDynamic>(Material);
			if (!MaterialInstance)
			{
				// create dynamic material if needed
				MaterialInstance = UMaterialInstanceDynamic::Create(Material, nullptr);
				// set mesh material
				MeshComponent->SetMaterial(MaterialIndex, MaterialInstance);
			}
			
			// now we can set material params by SetVectorParameterValue etc.
	        //MaterialInstance->SetVectorParameterValue(TEXT("BaseColor"), FLinearColor::White);
		}
	}
}

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK