bölünmüş birleştirme ağı

Bir 3B sahnenin tüm ağlarını birkaç alt ağa bölebilirsiniz. Aynı şekilde, C# kullanarak programlı olarak birden çok ağı tek bir ağda birleştirebilirsiniz. Bu makale, 3B kafeslerin farklı senaryolarda bölünmesini ve birleştirilmesini kapsar:

3B Sahne Ağlarını Ayırıcı veya Birleştirici – C# API Kurulumu

Aspose.3D for .NET API, C# kullanarak programlı olarak 3B ağları bölmek veya birleştirmek için kullanılabilir. API’yi İndirilenler bölümünden yükleyerek veya aşağıdaki NuGet kurulum komutuyla yapılandırabilirsiniz:

PM> Install-Package Aspose.3D

C# kullanarak Programlı Olarak Malzeme Başına Sahnenin Ağlarını Bölme

FBX formatı gibi bir 3B dosya, bir sahnenin birkaç ağını içerebilir. Ağa tek bir malzeme atanmamışsa, tüm ağları malzeme başına birkaç alt ağa bölebilirsiniz. Bir sahnenin kafeslerini malzeme başına bölmek için lütfen aşağıdaki adımları izleyin:

  1. Giriş 3D dosyasını yükleyin.
  2. Tüm ağları SplitMesh yöntemiyle ayırın.
  3. Çıktı dosyasını bölünmüş kafeslerle kaydedin.

Aşağıdaki kod, C# kullanarak programlı olarak bir sahnenin kafeslerinin malzeme başına nasıl bölüneceğini gösterir:

// Giriş FBX 3D dosyasını yükle
Scene scene = new Scene("test.fbx");

// Tüm ağları böl
PolygonModifier.SplitMesh(scene, SplitMeshPolicy.CloneData);

// Çıktı dosyasını bölünmüş kafeslerle kaydet
scene.Save("test-splitted.fbx", FileFormat.FBX7500ASCII);

Bir Mesh’i C# kullanarak Programlı Olarak Belirli Bir Malzemeye Göre Bölme

Malzemeyi manuel olarak belirterek bir ağı bölebilirsiniz. Bu şekilde, yalnızca bir malzeme içeren birkaç nesne oluşturabilirsiniz. Gösterim amacıyla, aşağıdaki kod 6 düzlemli bir kutu ağı oluşturur. Ardından, aşağıdaki adımları kullanarak malzemeyi manuel olarak belirleyerek ilkel bir ağı böleceksiniz:

  1. Altı düzlemli bir kutu ağı oluşturun.
  2. İkinci olarak, bir malzeme elemanı oluşturun ve her bir düzlem için indeksler belirleyin.
  3. SplitMeshPolicy numaralandırmasını kullanarak Mesh’i ayırın.

Aşağıdaki kod, bir ağın C# kullanarak programlı olarak belirli bir malzemeye göre nasıl bölüneceğini açıklar:

// Bir kutu ağı oluşturun (Bir kutu 6 düzlemden oluşur)
Mesh box = (new Box()).ToMesh();

// Bu ağ üzerinde bir malzeme elemanı oluşturun
VertexElementMaterial mat = (VertexElementMaterial)box.CreateElement(VertexElementType.Material, MappingMode.Polygon, ReferenceMode.Index);

// Ve her düzlem için farklı malzeme indeksi belirtin
mat.Indices.AddRange(new int[] { 0, 1, 2, 3, 4, 5 });

// Şimdi onu 6 alt ağa ayırın, her düzlemde 6 farklı malzeme belirledik, her düzlem bir alt ağ olacak.
// CloneData politikasını kullandık, her uçak aynı kontrol noktası bilgisine veya kontrol noktası tabanlı köşe elemanı bilgisine sahip olacaktır.
Mesh[] planes = PolygonModifier.SplitMesh(box, SplitMeshPolicy.CloneData);

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

// Şimdi onu 2 alt ağa ayırın, ilk ağ 0/1/2 düzlemlerini içerecek ve ikinci ağ 3/4/5 düzlemlerini içerecektir.
// CompactData politikasını kullandık, her düzlemin kendi kontrol noktası bilgisi veya kontrol noktası tabanlı köşe öğesi bilgisi olacaktır.
planes = PolygonModifier.SplitMesh(box, SplitMeshPolicy.CompactData);

Bir 3B dosyadaki Ağları Programlı Olarak C# ile Tek Bir Ağda Birleştirin

Aşağıdaki adımlarla farklı ağları tek bir geçerli ağda birleştirebilirsiniz:

  1. Giriş 3D sahne dosyasını yükleyin.
  2. Tüm ağları birleştir.
  3. Son olarak, birleştirilmiş ağı kodlayın.

Aşağıdaki kod, ağların C# kullanarak programlı olarak tek bir ağda nasıl birleştirileceğini detaylandırır:

// Giriş 3B sahnesini yükleyin
Scene scene = new Scene("LAD-TOP.rvm");

// Tüm kafesleri birleştir
Mesh mesh = PolygonModifier.MergeMesh(scene);

// Bu ağı PLY formatına kodlayın
FileFormat.PLY.Encode(mesh, "LAD-TOP.ply");

Ücretsiz Geçici Lisans Alın

API’yi herhangi bir sınırlama olmaksızın test etmek için bir Ücretsiz Değerlendirme Lisansı alabilirsiniz.

Çözüm

Sonuç olarak, bir 3B sahnenin ağ örgüsünü nasıl birleştireceğinizi veya ayıracağınızı öğrendiniz. API, gereksinimlerinize göre kullanabileceğiniz bir veya daha fazla ağı bölmek veya birleştirmek için farklı yöntemler sunar. Ayrıca, diğer bazı özelliklerin de açıklandığı Belgeleri ziyaret etmekten lütfen çekinmeyin. Herhangi bir sorunuz olması durumunda lütfen Ücretsiz Destek Forumu üzerinden bizimle iletişime geçin.

Ayrıca bakınız