Проста 3D-сцена — це тривимірне графічне представлення геометричних даних. У цій статті ми дізнаємося, як створити 3D-сцену за допомогою C# з нуля без необхідності інсталювати будь-яке програмне забезпечення для 3D-моделювання чи візуалізації. Ми збережемо 3D-сцену у форматі FBX, популярному форматі 3D-файлів, який використовується для обміну 3D-форматами. FBX можна зберегти на диску як двійковий або файл даних ASCII.
У цій статті будуть розглянуті такі теми:
- C# 3D API для створення 3D-сцени – безкоштовне завантаження
- Створіть просту 3D-сцену в C#
- Прочитати 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-сцену, дотримуючись наведених нижче кроків:
- Створіть екземпляр класу Scene.
- Викличте метод CreateChildNode(), щоб додати деяку геометрію, форму для відображення на екрані, наприклад, циліндр.
- Встановіть властивості дочірнього вузла, наприклад матеріал.
- Ініціалізація об’єкта класу Light.
- Викличте метод CreateChildNode(), щоб додати сутність Light.
- Нарешті, збережіть сцену як 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, виконавши наведені нижче кроки:
- Створіть екземпляр класу Scene.
- Завантажте існуючий 3D-документ за допомогою методу Open().
- Перегляд властивостей ChildNodes
- Нарешті, відобразити значення властивостей.
У наступному прикладі коду показано, як завантажити та прочитати 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 за допомогою документації. У разі будь-яких неясностей зв’яжіться з нами на нашому безкоштовному форумі підтримки.