C# kullanarak 3B Sahne oluşturun

Basit bir 3B sahne, geometrik verilerin üç boyutlu bir grafik temsilidir. Bu yazımızda herhangi bir 3D modelleme veya render yazılımı yüklemeye gerek kalmadan C# kullanarak sıfırdan 3D sahne oluşturmayı öğreneceğiz. 3B sahneyi, 3B biçimleri değiş tokuş etmek için kullanılan popüler bir 3B dosya biçimi olan FBX dosya biçiminde kaydedeceğiz. FBX, bir diske ikili veya ASCII veri dosyası olarak kaydedilebilir.

Bu yazıda aşağıdaki konular ele alınacaktır:

  1. 3B Sahne Oluşturmak için C# API’si - Ücretsiz İndirme
  2. C#‘da Basit Bir 3B Sahne Oluşturun
  3. C# kullanarak 3B Sahneyi Okuyun

3B Sahne Oluşturmak için C# API’si - Ücretsiz İndirme

Bir 3B sahne oluşturmak ve okumak için Aspose.3D for .NET API’sini kullanacağız. Desteklenen biçimlerde bir 3B sahne oluşturmaya ve kaydetmeye olanak tanır. Ayrıca geometri ve sahne hiyerarşisi ile çalışmayı, bir Sahnedeki nesneleri canlandırmayı ve 3D Dosya Formatlarını dönüştürmeyi sağlar.

API, düğümleri, geometrileri, malzemeleri, dokuları, animasyonu, pozları, alt sahneleri vb. içeren üst düzey bir nesne olan Scene sınıfını sağlar. CreateChildNode(Entity) yöntemi ekli belirli bir varlık ile yeni bir alt düğüm oluşturur. API, LambertMaterial, PhongMaterial ve ShaderMaterial için gölgeleme modeli sağlar. Işık sahneyi aydınlatır, API’nin Light sınıfı sahneye biraz ışık eklenmesini sağlar.

Lütfen API’nin [DLL’sini 13 indirin] veya NuGet kullanarak kurun.

PM> Install-Package Aspose.3D

C# ile Basit Bir 3B Sahne Oluşturun

Aşağıda verilen adımları izleyerek basit bir 3D sahne oluşturabiliriz:

  1. Scene sınıfının bir örneğini oluşturun.
  2. Silindir gibi ekranda gösterilecek bir şekil olan biraz geometri eklemek için CreateChildNode() yöntemini çağırın.
  3. Malzeme gibi alt düğüm özelliklerini ayarlayın.
  4. Bir Light sınıfı nesnesi başlatın.
  5. Light varlığı eklemek için CreateChildNode() yöntemini çağırın.
  6. Son olarak, Save() yöntemini kullanarak sahneyi FBX olarak kaydedin. Çıktı dosyası yolunu ve FileFormat.FBX7500ASCII’yi bağımsız değişken olarak alır.

Aşağıdaki kod örneği, C# kullanarak basit bir 3B sahnenin nasıl oluşturulacağını gösterir.

// Bu kod örneği, FBX dosyasında basit bir 3B sahnenin nasıl oluşturulacağını gösterir.
// 3B sahneyi başlat
var scene = new Scene();

// Silindir nesnesini başlat
var cylinder = new Cylinder();
cylinder.Name = "Cylinder";

// Bir alt düğüm oluşturun ve Silindir nesnesi ekleyin
var node = scene.RootNode.CreateChildNode(cylinder);

// Alt düğüm özelliklerini ayarla
var material = new LambertMaterial() { DiffuseColor = new Vector3(Color.LightBlue) };
material.Name = "Lambert";
node.Material = material;

// Işık varlığı ekle
var light = new Light() { LightType = LightType.Point };
light.Name = "Light";
scene.RootNode.CreateChildNode(light).Transform.Translation = new Vector3(10, 0, 10);

// Çıktı dosyası yolu
var output = @"C:\Files\3D\document.fbx";

// 3B sahne belgesini kaydet
scene.Save(output, FileFormat.FBX7500ASCII);

C# kullanarak 3B Sahneyi Oku

Aşağıda verilen adımları izleyerek FBX belgesinden bir 3B sahneyi okuyabiliriz:

  1. Scene sınıfının bir örneğini oluşturun.
  2. Open() yöntemini kullanarak mevcut bir 3B belgeyi yükleyin.
  3. ChildNodes özellikleri arasında geçiş yapın
  4. Son olarak, özellik değerlerini görüntüleyin.

Aşağıdaki kod örneği, C# kullanarak bir 3B sahnenin nasıl yüklenip okunacağını gösterir.

// Bu kod örneği, FBX dosyasından bir 3B sahnenin nasıl okunacağını gösterir
// Bir Scene sınıfı nesnesi başlat
Scene scene = new Scene();

// Mevcut bir 3B belgeyi yükleyin
scene.Open(@"C:\Files\3D\document.fbx");

foreach(var node in scene.RootNode.ChildNodes)
{
    var entity = node.Entity;
    Console.WriteLine("{0}", entity.Name); 

    if (node.Material != null)
    {
        Material material = node.Material;
        Console.WriteLine("{0}", material.Name);

        PropertyCollection props = material.Properties;
        //foreach kullanarak tüm özellikleri listele
        foreach (var prop in props)
        {
            Console.WriteLine("{0} = {1}", prop.Name, prop.Value);
        }
        //veya döngü için sıralı kullanma
       for (int i = 0; i < props.Count; i++)
        {
            var prop = props[i];
            Console.WriteLine("{0} = {1}", prop.Name, prop.Value);
        }
    }
}

Ücretsiz Geçici Lisans Alın

Aspose.3D for .NET’i değerlendirme sınırlamaları olmaksızın denemek için ücretsiz bir geçici lisans alabilirsiniz.

Çözüm

Bu makalede, şunların nasıl yapılacağını öğrendik:

  • programlı olarak bir 3B sahne oluşturun;
  • 3B sahneye Silindir, malzeme, ışık vb. gibi nesneler/varlıklar ekleyin;
  • C# dilinde 3B sahne alt notlarını ve özelliklerini okuyun.

Ayrıca, belgeleri kullanarak Aspose.3D for .NET API hakkında daha fazla bilgi edinebilirsiniz. Herhangi bir belirsizlik durumunda, lütfen forumumuzdan bizimle iletişime geçmekten çekinmeyin.

Ayrıca bakınız