Buat Pemandangan 3D menggunakan C#

Adegan 3D sederhana adalah representasi grafis tiga dimensi dari data geometris. Pada artikel ini, kita akan belajar cara membuat pemandangan 3D menggunakan C# dari awal tanpa perlu menginstal perangkat lunak pemodelan atau rendering 3D apa pun. Kami akan menyimpan adegan 3D dalam format file FBX, format file 3D populer yang digunakan untuk bertukar format 3D. FBX dapat disimpan pada disk baik sebagai file data biner atau ASCII.

Topik-topik berikut akan dibahas dalam artikel ini:

  1. C# API untuk Membuat Pemandangan 3D - Unduhan Gratis
  2. Buat Adegan 3D Sederhana di C#
  3. Baca Adegan 3D menggunakan C#

C# API untuk Membuat Pemandangan 3D - Unduhan Gratis

Untuk membuat dan membaca adegan 3D, kita akan menggunakan Aspose.3D for .NET API. Memungkinkan untuk membuat & menyimpan adegan 3D dalam format yang didukung. Ini juga memungkinkan untuk bekerja dengan hierarki geometri & adegan, menganimasikan objek dalam Adegan, dan konversi Format File 3D.

API menyediakan kelas Scene yang merupakan objek tingkat atas yang berisi node, geometri, material, tekstur, animasi, pose, sub-adegan, dll. Metode CreateChildNode(Entity) membuat simpul anak baru dengan entitas yang diberikan terlampir. API menyediakan model bayangan untuk LambertMaterial, PhongMaterial, dan ShaderMaterial. Cahaya menerangi pemandangan, kelas Light API memungkinkan penambahan beberapa cahaya ke pemandangan.

Harap unduh DLL dari API atau instal menggunakan NuGet.

PM> Install-Package Aspose.3D

Buat Adegan 3D Sederhana di C#

Kita dapat membuat pemandangan 3D sederhana dengan mengikuti langkah-langkah berikut ini:

  1. Buat instance dari kelas Scene.
  2. Panggil metode CreateChildNode() untuk menambahkan beberapa geometri, bentuk untuk ditampilkan di layar misalnya Cylinder.
  3. Tetapkan properti node anak seperti Material.
  4. Inisialisasi objek kelas Light.
  5. Panggil metode CreateChildNode() untuk menambahkan entitas Light.
  6. Terakhir, simpan adegan sebagai FBX menggunakan metode Save(). Dibutuhkan jalur file keluaran dan FileFormat.FBX7500ASCII sebagai argumen.

Contoh kode berikut menunjukkan cara membuat adegan 3D sederhana menggunakan C#.

// Contoh kode ini menunjukkan cara membuat adegan 3D sederhana di file FBX.
// Inisialisasi adegan 3D
var scene = new Scene();

// Inisialisasi objek Silinder
var cylinder = new Cylinder();
cylinder.Name = "Cylinder";

// Buat node anak dan tambahkan objek Cylinder
var node = scene.RootNode.CreateChildNode(cylinder);

// Tetapkan properti simpul anak
var material = new LambertMaterial() { DiffuseColor = new Vector3(Color.LightBlue) };
material.Name = "Lambert";
node.Material = material;

// Tambahkan entitas Cahaya
var light = new Light() { LightType = LightType.Point };
light.Name = "Light";
scene.RootNode.CreateChildNode(light).Transform.Translation = new Vector3(10, 0, 10);

// Jalur file keluaran
var output = @"C:\Files\3D\document.fbx";

// Simpan dokumen adegan 3D
scene.Save(output, FileFormat.FBX7500ASCII);

Baca Adegan 3D menggunakan C#

Kita dapat membaca adegan 3D dari dokumen FBX dengan mengikuti langkah-langkah berikut:

  1. Buat instance dari kelas Scene.
  2. Muat dokumen 3D yang ada menggunakan metode Open().
  3. Loop melalui properti ChildNodes
  4. Terakhir, tampilkan nilai properti.

Contoh kode berikut menunjukkan cara memuat dan membaca adegan 3D menggunakan C#.

// Contoh kode ini menunjukkan cara membaca adegan 3D dari file FBX
// Inisialisasi objek kelas Scene
Scene scene = new Scene();

// Muat dokumen 3D yang ada
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;
        //Buat daftar semua properti menggunakan foreach
        foreach (var prop in props)
        {
            Console.WriteLine("{0} = {1}", prop.Name, prop.Value);
        }
        //atau menggunakan ordinal untuk loop
       for (int i = 0; i < props.Count; i++)
        {
            var prop = props[i];
            Console.WriteLine("{0} = {1}", prop.Name, prop.Value);
        }
    }
}

Dapatkan Lisensi Sementara Gratis

Anda bisa mendapatkan lisensi sementara gratis untuk mencoba Aspose.3D for .NET tanpa batasan evaluasi.

Kesimpulan

Dalam artikel ini, kita telah mempelajari cara:

  • membuat adegan 3D secara terprogram;
  • menambahkan objek/entitas ke pemandangan 3D seperti Silinder, material, cahaya, dll.;
  • membaca catatan anak adegan 3D dan properti di C #.

Selain itu, Anda dapat mempelajari lebih lanjut tentang Aspose.3D for .NET API menggunakan dokumentasi. Jika ada ambiguitas, jangan ragu untuk menghubungi kami di forum kami.

Lihat juga