Skip to content
Snippets Groups Projects
Commit b92841eb authored by David Gilbert's avatar David Gilbert :bug:
Browse files

- Fixed a bug when creating the dynamic material instance that somehow...

- Fixed a bug when creating the dynamic material instance that somehow overwrote the material from multiple line actors.
parent 9fcb94e5
No related branches found
No related tags found
No related merge requests found
No preview for this file type
No preview for this file type
No preview for this file type
...@@ -11,8 +11,11 @@ UGPUInstancedLineComponent::UGPUInstancedLineComponent(const FObjectInitializer& ...@@ -11,8 +11,11 @@ UGPUInstancedLineComponent::UGPUInstancedLineComponent(const FObjectInitializer&
SetGenerateOverlapEvents(false); SetGenerateOverlapEvents(false);
static ConstructorHelpers::FObjectFinder<UStaticMesh>LineMeshAsset(TEXT("StaticMesh'/InstancedMeshLineRendering/line.line'")); static ConstructorHelpers::FObjectFinder<UStaticMesh>LineMeshAsset(TEXT("StaticMesh'/InstancedMeshLineRendering/line.line'"));
static ConstructorHelpers::FObjectFinder<UMaterial>LineMaterialAsset(TEXT("Material'/InstancedMeshLineRendering/DynamicLineMaterial.DynamicLineMaterial'"));
UStaticMesh* LineAsset = LineMeshAsset.Object; UStaticMesh* LineAsset = LineMeshAsset.Object;
UMaterial* LineMaterial = LineMaterialAsset.Object;
SetStaticMesh(LineAsset); SetStaticMesh(LineAsset);
SetMaterial(0, LineMaterial);
// three color values + width + 1 texture index value // three color values + width + 1 texture index value
// r | g | b | w | i_T // r | g | b | w | i_T
...@@ -131,7 +134,7 @@ void UGPUInstancedLineComponent::BeginPlay() ...@@ -131,7 +134,7 @@ void UGPUInstancedLineComponent::BeginPlay()
//if (PositionTexture == nullptr) //if (PositionTexture == nullptr)
{ {
UE_LOG(LogTemp, Display, TEXT("UGPUInstancedLineComponent::PostInitProperties Creating Texture")); UE_LOG(LogTemp, Display, TEXT("UGPUInstancedLineComponent::BeginPlay Creating Texture"));
PositionTexture = UTexture2D::CreateTransient(TextureWidth, TextureHeight, PF_A32B32G32R32F); // TODO Hardcoded values PositionTexture = UTexture2D::CreateTransient(TextureWidth, TextureHeight, PF_A32B32G32R32F); // TODO Hardcoded values
// Allocate the texture RHI // Allocate the texture RHI
...@@ -140,12 +143,12 @@ void UGPUInstancedLineComponent::BeginPlay() ...@@ -140,12 +143,12 @@ void UGPUInstancedLineComponent::BeginPlay()
//if (DynamicLineMaterial == nullptr) //if (DynamicLineMaterial == nullptr)
{ {
UE_LOG(LogTemp, Display, TEXT("UGPUInstancedLineComponent::PostInitProperties Creating MID")); UE_LOG(LogTemp, Display, TEXT("UGPUInstancedLineComponent::BeginPlay Creating MID"));
UMaterial* LineMat = LoadObject<UMaterial>(GetTransientPackage(), TEXT("Material'/InstancedMeshLineRendering/DynamicLineMaterial.DynamicLineMaterial'")); //UMaterial* LineMat = LoadObject<UMaterial>(GetTransientPackage(), TEXT("Material'/InstancedMeshLineRendering/DynamicLineMaterial.DynamicLineMaterial'"));
DynamicLineMaterial = UMaterialInstanceDynamic::Create(LineMat, this, "DynamicLineMaterial"); DynamicLineMaterial = CreateAndSetMaterialInstanceDynamic(0);// UMaterialInstanceDynamic::Create(LineMat, this, "DynamicLineMaterialMID");
GetStaticMesh()->SetMaterial(0, DynamicLineMaterial); //GetStaticMesh()->SetMaterial(0, DynamicLineMaterial);
DynamicLineMaterial->SetTextureParameterValue("PositionTexture", PositionTexture); DynamicLineMaterial->SetTextureParameterValue("PositionTexture", PositionTexture);
DynamicLineMaterial->SetScalarParameterValue("TextureWidth", TextureWidth); DynamicLineMaterial->SetScalarParameterValue("TextureWidth", TextureWidth);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment