Створення 3D-сцени в C#

Проста 3D-сцена — це тривимірне графічне представлення геометричних даних. У цій статті ми дізнаємося, як створити 3D-сцену за допомогою C# з нуля без необхідності інсталювати будь-яке програмне забезпечення для 3D-моделювання чи візуалізації. Ми збережемо 3D-сцену у форматі FBX, популярному форматі 3D-файлів, який використовується для обміну 3D-форматами. FBX можна зберегти на диску як двійковий або файл даних ASCII.

У цій статті будуть розглянуті такі теми:

  1. C# 3D API для створення 3D-сцени – безкоштовне завантаження
  2. Створіть просту 3D-сцену в C#
  3. Прочитати 3D-сцену за допомогою C#

C# 3D API для створення 3D-сцени — безкоштовно завантажити

Для створення та читання 3D-сцени ми будемо використовувати API Aspose.3D for .NET. Він дозволяє створювати та зберігати 3D-сцену в підтримуваних форматах. Він також дозволяє працювати з геометрією та ієрархією сцен, анімувати об’єкти в сцені та конвертувати формати 3D-файлів.

API надає клас Scene, який є об’єктом верхнього рівня, який містить вузли, геометрії, матеріали, текстури, анімацію, пози, підсцени тощо. Метод CreateChildNode(Entity) створює новий дочірній вузол із приєднаною сутністю. API надає модель затінення для LambertMaterial, PhongMaterial і ShaderMaterial. Світло освітлює сцену, клас Light API дозволяє додавати трохи світла до сцени.

Завантажте DLL API або встановіть його за допомогою NuGet.

PM> Install-Package Aspose.3D

Створіть просту 3D-сцену за допомогою C#

Ми можемо створити просту 3D-сцену, дотримуючись наведених нижче кроків:

  1. Створіть екземпляр класу Scene.
  2. Викличте метод CreateChildNode(), щоб додати деяку геометрію, форму для відображення на екрані, наприклад, циліндр.
  3. Встановіть властивості дочірнього вузла, наприклад матеріал.
  4. Ініціалізація об’єкта класу Light.
  5. Викличте метод CreateChildNode(), щоб додати сутність Light.
  6. Нарешті, збережіть сцену як FBX за допомогою методу Save(). Він приймає вихідний шлях до файлу та FileFormat.FBX7500ASCII як аргументи.

У наступному прикладі коду показано, як створити просту 3D-сцену за допомогою C#.

// Цей приклад коду демонструє, як створити просту 3D-сцену у файлі FBX.
// Ініціалізація 3D-сцени
var scene = new Scene();

// Ініціалізація об'єкта Cylinder
var cylinder = new Cylinder();
cylinder.Name = "Cylinder";

// Створіть дочірній вузол і додайте об’єкт Cylinder
var node = scene.RootNode.CreateChildNode(cylinder);

// Встановіть властивості дочірнього вузла
var material = new LambertMaterial() { DiffuseColor = new Vector3(Color.LightBlue) };
material.Name = "Lambert";
node.Material = material;

// Додати сутність Light
var light = new Light() { LightType = LightType.Point };
light.Name = "Light";
scene.RootNode.CreateChildNode(light).Transform.Translation = new Vector3(10, 0, 10);

// Шлях вихідного файлу
var output = @"C:\Files\3D\document.fbx";

// Зберегти документ 3D сцени
scene.Save(output, FileFormat.FBX7500ASCII);

Читання 3D-сцени за допомогою C#

Ми можемо прочитати 3D-сцену з документа FBX, виконавши наведені нижче кроки:

  1. Створіть екземпляр класу Scene.
  2. Завантажте існуючий 3D-документ за допомогою методу Open().
  3. Перегляд властивостей ChildNodes
  4. Нарешті, відобразити значення властивостей.

У наступному прикладі коду показано, як завантажити та прочитати 3D-сцену за допомогою C#.

// Цей приклад коду демонструє, як читати 3D-сцену з файлу FBX
// Ініціалізація об’єкта класу Scene
Scene scene = new Scene();

// Завантажте існуючий 3D-документ
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
        foreach (var prop in props)
        {
            Console.WriteLine("{0} = {1}", prop.Name, prop.Value);
        }
        //або використовуючи порядковий цикл for
       for (int i = 0; i < props.Count; i++)
        {
            var prop = props[i];
            Console.WriteLine("{0} = {1}", prop.Name, prop.Value);
        }
    }
}

Отримайте безкоштовну тимчасову ліцензію

Ви можете отримати безкоштовну тимчасову ліцензію, щоб спробувати Aspose.3D for .NET без оціночних обмежень.

Висновок

У цій статті ми дізналися, як:

  • створити 3D сцену програмно;
  • додавати об’єкти/сутності до 3D-сцени, наприклад циліндр, матеріал, світло тощо;
  • читати дочірні примітки та властивості 3D-сцени в C#.

Окрім створення та читання 3D-сцени в C#, ви можете дізнатися більше про Aspose.3D for .NET API за допомогою документації. У разі будь-яких неясностей зв’яжіться з нами на нашому безкоштовному форумі підтримки.

Дивись також