Hi!
I’m using Unreal 5.2.1.
Why this code create a Procedural Mesh on Y axis?
void UPStickProceduralMeshComponent::BuildMesh()
{
TArray<FVector> Vertices;
TArray<FLinearColor> Colors;
TArray<FVector> Normals;
TArray<int32> Triangles;
FVector Point, DirVert, DirHorz; // Direction Up, Out
FVector V0, V1, V2, V3;
FVector LastV0, LastV1, LastV2, LastV3;
int32 I0, I1, I2, I3;
int32 LastI0, LastI1, LastI2, LastI3;
float SinTheta, CosTheta, Theta;
const float UnitSize = 0.05f; // Half size of unit 0.1f
for (uint32 i = 0; i <= Side; ++i)
{
Theta = FMath::DegreesToRadians(i * 360.0f / Side);
FMath::SinCos<float>(&SinTheta, &CosTheta, Theta);
Point = FVector(SinTheta * Radius, CosTheta * Radius, 0.0f);
DirVert = FVector(0.0f, 0.0f, 1.0f);
DirHorz = FVector(SinTheta, CosTheta, 0.0f);
V0 = Point + DirHorz * UnitSize;
V1 = Point + DirHorz * -UnitSize;
V2 = Point + DirVert * UnitSize;
V3 = Point + DirVert * -UnitSize;
I0 = Vertices.Add(V0);
I1 = Vertices.Add(V1);
I2 = Vertices.Add(V2);
I3 = Vertices.Add(V3);
Normals.Add(DirHorz);
Normals.Add(-DirHorz);
Normals.Add(DirVert);
Normals.Add(-DirVert);
Colors.Add(Color);
Colors.Add(Color);
Colors.Add(Color);
Colors.Add(Color);
if (i > 0) // Generate triangles except first index
{
Triangles.Add(LastI0); Triangles.Add(I0), Triangles.Add(I1);
Triangles.Add(I1), Triangles.Add(LastI1), Triangles.Add(LastI0);
Triangles.Add(LastI2); Triangles.Add(I2), Triangles.Add(I3);
Triangles.Add(I3), Triangles.Add(LastI3), Triangles.Add(LastI2);
}
LastV0 = V0;
LastV1 = V1;
LastV2 = V2;
LastV3 = V3;
LastI0 = I0;
LastI1 = I1;
LastI2 = I2;
LastI3 = I3;
}
CreateMeshSection_LinearColor(0, Vertices, Triangles, Normals, TArray<FVector2D>(), Colors, TArray<FProcMeshTangent>(), false);
if (MaterialInstanceDynamic == nullptr)
{
MaterialInstanceDynamic = UMaterialInstanceDynamic::Create(Material, this);
}
MaterialInstanceDynamic->SetScalarParameterValue("Thickness", Thickness);
MaterialInstanceDynamic->SetScalarParameterValue("Intensity", Intensity);
SetMaterial(0, MaterialInstanceDynamic);
}
I need to create it on X axis.
Thanks.