Простая 3D-сцена представляет собой трехмерное графическое представление геометрических данных. В этой статье мы узнаем, как создать 3D-сцену с помощью C# с нуля без необходимости установки какого-либо программного обеспечения для 3D-моделирования или рендеринга. Мы сохраним 3D-сцену в формате файла FBX, популярном формате 3D-файла, используемом для обмена 3D-форматами. FBX можно сохранить на диск как двоичный файл или файл данных ASCII.
В этой статье должны быть раскрыты следующие темы:
- C# API для создания 3D-сцены — скачать бесплатно
- Создание простой 3D-сцены на C#
- Читать 3D-сцену с помощью C#
C# API для создания 3D-сцены — скачать бесплатно
Для создания и чтения 3D-сцены мы будем использовать API Aspose.3D для .NET. Это позволяет создавать и сохранять 3D-сцены в поддерживаемых форматах. Он также позволяет работать с геометрией и иерархией сцен, анимировать объекты в сцене и преобразовывать форматы 3D-файлов.
API предоставляет класс Scene, который представляет собой объект верхнего уровня, содержащий узлы, геометрию, материалы, текстуры, анимацию, позы, подсцены и т. д. Метод CreateChildNode(Entity) создает новый дочерний узел с прикрепленным данным объектом. API предоставляет модель затенения для LambertMaterial, PhongMaterial и ShaderMaterial. Свет освещает сцену, класс API Light позволяет добавить немного света в сцену.
Пожалуйста, либо загрузите DLL API, либо установите его с помощью NuGet.
PM> Install-Package Aspose.3D
Создание простой 3D-сцены на C#
Мы можем создать простую 3D-сцену, выполнив следующие шаги:
- Создайте экземпляр класса Scene.
- Вызовите метод CreateChildNode(), чтобы добавить некоторую геометрию, форму для отображения на экране, например, цилиндр.
- Установите свойства дочернего узла, такие как Материал.
- Инициализируйте объект класса Light.
- Вызовите метод CreateChildNode(), чтобы добавить объект Light.
- Наконец, сохраните сцену как FBX, используя метод Save(). В качестве аргументов он принимает путь к выходному файлу и FileFormat.FBX7500ASCII.
В следующем примере кода показано, как создать простую трехмерную сцену с помощью C#.
// В этом примере кода показано, как создать простую трехмерную сцену в файле FBX.
// Инициализировать 3D-сцену
var scene = new Scene();
// Инициализировать объект цилиндра
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;
// Добавить световой объект
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
- Наконец, отобразите значения свойств.
В следующем примере кода показано, как загрузить и прочитать трехмерную сцену с помощью C#.
// В этом примере кода показано, как прочитать 3D-сцену из файла FBX.
// Инициализировать объект класса сцены
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 (int i = 0; i < props.Count; i++)
{
var prop = props[i];
Console.WriteLine("{0} = {1}", prop.Name, prop.Value);
}
}
}
Получить бесплатную временную лицензию
Вы можете получить бесплатную временную лицензию, чтобы попробовать Aspose.3D для .NET без ограничений пробной версии.
Вывод
В этой статье мы узнали, как:
- создать 3D-сцену программно;
- добавлять в 3D-сцену объекты/сущности, такие как цилиндр, материал, свет и т. д.;
- чтение дочерних заметок и свойств 3D-сцены в C#.
Кроме того, вы можете узнать больше об Aspose.3D для .NET API, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на нашем форуме.