분할 병합 메쉬

3D 장면의 모든 메시를 여러 하위 메시로 분할할 수 있습니다. 마찬가지로 C#을 사용하여 프로그래밍 방식으로 여러 메시를 단일 메시로 병합할 수 있습니다. 이 문서에서는 다양한 시나리오에서 3D 메시의 분할 및 병합에 대해 설명합니다.

3D 씬 메시 스플리터 또는 병합 – C# API 설치

Aspose.3D for .NET API는 C#을 사용하여 프로그래밍 방식으로 3D 메쉬를 분할하거나 병합하는 데 사용할 수 있습니다. 다운로드 섹션에서 설치하거나 아래의 NuGet 설치 명령을 사용하여 API를 구성할 수 있습니다.

PM> Install-Package Aspose.3D

C#을 사용하여 프로그래밍 방식으로 재질별로 장면의 메시 분할

FBX 형식과 같은 3D 파일에는 장면의 여러 메시가 포함될 수 있습니다. 메시에 단일 재료가 할당되지 않은 경우 모든 메시를 재료당 여러 하위 메시로 분할할 수 있습니다. 재료별로 장면의 메쉬를 분할하려면 아래 단계를 따르십시오.

  1. 입력 3D 파일을 로드합니다.
  2. SplitMesh 방법으로 모든 메시를 분할합니다.
  3. 분할된 메쉬와 함께 출력 파일을 저장합니다.

다음 코드는 C#을 사용하여 프로그래밍 방식으로 재질별로 장면의 메시를 분할하는 방법을 보여줍니다.

// 입력 FBX 3D 파일 로드
Scene scene = new Scene("test.fbx");

// 모든 메쉬 분할
PolygonModifier.SplitMesh(scene, SplitMeshPolicy.CloneData);

// 분할된 메쉬로 출력 파일 저장
scene.Save("test-splitted.fbx", FileFormat.FBX7500ASCII);

C#을 사용하여 프로그래밍 방식으로 특정 재질로 메쉬 분할

재질을 수동으로 지정하여 메쉬를 분할할 수 있습니다. 이러한 방식으로 하나의 재료만 포함하는 여러 개체를 만들 수 있습니다. 데모를 위해 아래 코드는 6개의 평면이 있는 상자의 메쉬를 만듭니다. 그런 다음 다음 단계를 사용하여 수동으로 재질을 지정하여 기본 메시를 분할합니다.

  1. 6개의 평면이 있는 상자의 메쉬를 만듭니다.
  2. 둘째, 재료 요소를 생성하고 각 평면에 대한 인덱스를 지정합니다.
  3. SplitMeshPolicy 열거를 사용하여 메시를 분할합니다.

아래 코드는 C#을 사용하여 프로그래밍 방식으로 특정 재질로 메쉬를 분할하는 방법을 설명합니다.

// 상자의 메쉬 생성(상자는 6개의 평면으로 구성됨)
Mesh box = (new Box()).ToMesh();

// 이 메쉬에 재료 요소 생성
VertexElementMaterial mat = (VertexElementMaterial)box.CreateElement(VertexElementType.Material, MappingMode.Polygon, ReferenceMode.Index);

// 그리고 각 평면에 대해 다른 재료 인덱스를 지정합니다.
mat.Indices.AddRange(new int[] { 0, 1, 2, 3, 4, 5 });

// 이제 6개의 하위 메쉬로 분할하고 각 평면에 6개의 다른 재료를 지정했습니다. 각 평면은 하위 메쉬가 됩니다.
// CloneData 정책을 사용했으며 각 평면은 동일한 제어점 정보 또는 제어점 기반 정점 요소 정보를 갖습니다.
Mesh[] planes = PolygonModifier.SplitMesh(box, SplitMeshPolicy.CloneData);

mat.Indices.Clear();
mat.Indices.AddRange(new int[] { 0, 0, 0, 1, 1, 1 });

// 이제 2개의 하위 메쉬로 분할합니다. 첫 번째 메쉬에는 0/1/2 평면이 포함되고 두 번째 메쉬에는 3/4/5 평면이 포함됩니다.
// 우리는 CompactData 정책을 사용했으며, 각 평면에는 자체 제어점 정보 또는 제어점 기반 정점 요소 정보가 있습니다.
planes = PolygonModifier.SplitMesh(box, SplitMeshPolicy.CompactData);

C#에서 프로그래밍 방식으로 3D 파일의 메쉬를 단일 메쉬로 병합

아래 단계에 따라 서로 다른 메시를 하나의 유효한 메시로 병합할 수 있습니다.

  1. 입력 3D 장면 파일을 로드합니다.
  2. 모든 메쉬를 병합합니다.
  3. 마지막으로 병합된 메쉬를 인코딩합니다.

다음 코드는 C#을 사용하여 프로그래밍 방식으로 메쉬를 단일 메쉬로 병합하는 방법을 자세히 설명합니다.

// 입력 3D 장면 로드
Scene scene = new Scene("LAD-TOP.rvm");

// 모든 메쉬 병합
Mesh mesh = PolygonModifier.MergeMesh(scene);

// 이 메시를 PLY 형식으로 인코딩
FileFormat.PLY.Encode(mesh, "LAD-TOP.ply");

무료 임시 라이센스 받기

API를 제한 없이 테스트할 수 있는 무료 평가판 라이선스를 얻을 수 있습니다.

결론

결론적으로 3D 장면의 메쉬를 병합하거나 분할하는 방법을 배웠습니다. API는 요구 사항에 따라 활용할 수 있는 하나 이상의 메시를 분할하거나 병합하는 다양한 방법을 제공합니다. 또한, 다른 여러 기능도 설명되어 있는 문서를 자유롭게 방문하십시오. 문의 사항이 있으시면 무료 지원 포럼으로 연락해 주십시오.

또한보십시오