Просмотрите наши продукты

Aspose.3D для .NET 23.12 Примечания к выпуску

Улучшения и изменения

KeySummaryCategory
THREEDNET-1458Разрешить оптимизацию сетки для удаления дублирующихся контрольных точек.Новая функция
THREEDNET-1468Разрешить указание системы координат при экспорте модели в STL/OBJ/PLYНовая функция
THREEDNET-222Добавить поддержку сложных булевых операций над сеткамиНовая функция
THREEDNET-1441Разрешить булевой операции работать над порядковой сеткойУлучшение
THREEDNET-1451Неправильные текстуры при экспорте OBJ.Исправление ошибки
THREEDNET-1452Невозможно выделить память устройства GPU для текстуры размером 8192 * 8192.Исправление ошибки
THREEDNET-1453Неправильные текстуры при экспорте GLTF.Исправление ошибки
THREEDNET-1454Экспорт FBX - некорректный экспорт группировки моделиИсправление ошибки
THREEDNET-1461Точки привязки на разных объектах возвращают одинаковые, когда имена свойств совпадают.Исправление ошибки
THREEDNET-1462Aspose.3D генерирует несовместимые данные анимацииИсправление ошибки

Изменения API

Добавлен класс Aspose.ThreeD.AxisSystem

Некоторые форматы файлов, такие как OBJ, STL и PLY, позволяют определить систему координат, вектор “верх” и вектор “вперед” во время процесса экспорта. Вы можете использовать этот класс для предоставления и настройки этой информации.

Переименован класс Aspose.ThreeD.CoordinatedSystem в Aspose.ThreeD.CoordinateSystem

Добавлены члены в класс Aspose.ThreeD.Animation.AnimationNode:

        /// <summary>
        /// Находит точку привязки по целевому объекту и имени.
        /// </summary>
        /// <returns>Точка привязки.</returns>
        /// <param name="target">Целевой объект точки привязки для поиска.</param>
        /// <param name="name">Имя точки привязки для поиска.</param>
        public BindPoint FindBindPoint(A3DObject target, string name)

Обновленные перегрузки теперь позволяют указать и целевой объект, и имя, в то время как предыдущая реализация проводила поиск только на основе предоставленного имени.

Добавлены члены в класс Aspose.ThreeD.AssetInfo:

        /// <summary>
        /// Получает или задает вектор "вперед", используемый в этом активе.
        /// </summary>
        public Axis? FrontVector
        {
            get { return frontVector; }
            set { frontVector = value; }
        }

        /// <summary>
        /// Получает или задает систему координат/вектор "верх"/вектор "вперед" информации об активе.
        /// </summary>
        public AxisSystem AxisSystem { get;set; }

Некоторые форматы, такие как FBX, могут определять пользовательский вектор “вперед” внутри файла FBX.

Добавлены члены в класс Aspose.ThreeD.Axis:

        /// <summary>
        /// Ось -X.
        /// </summary>
        NegativeXAxis,
        /// <summary>
        /// Ось -Y.
        /// </summary>
        NegativeYAxis,
        /// <summary>
        /// Ось -Z.
        /// </summary>
        NegativeZAxis,

Дополнительные значения перечисления теперь предлагают более точное указание направления осей при создании системы осей.

Добавлен класс Aspose.ThreeD.Deformers.BoneLinkMode

Добавлены члены в класс Aspose.ThreeD.Deformers.Bone:

        /// <summary>
        /// Режим связи кости относится к способу соединения или связывания кости с ее родительской костью в иерархической структуре. 
        /// </summary>
        public BoneLinkMode LinkMode { get; set; }

Функция LinkMode предлагает совместимые с FBX режимы связи костей в контексте приложения.

Пример кода

        var boneToLimbNode1 = new Bone("")
        {
                Node = limbNode1,
                LinkMode = BoneLinkMode.TotalOne
        };

Добавлены члены в класс Aspose.ThreeD.Entities.Mesh:

        /// <summary>
        /// Оптимизируйте использование памяти сетки, удалив дублирующиеся контрольные точки
        /// </summary>
        /// <param name="vertexElements">Оптимизируйте данные элемента вершины, содержащие дубликаты</param>
        /// <returns>Новый экземпляр сетки с компактным использованием памяти</returns>
        public Mesh Optimize(bool vertexElements)

Пример кода

        var mesh = (new Box()).ToMesh();
        //1341 байт, 24 вершины,  24 нормали, 24 текстурные координаты,
        (new Scene(mesh)).Save("unoptimized.obj");

        //Удалите дублирующиеся контрольные точки и данные элемента вершины, повторно используя один и тот же вектор.
        var optimizedMesh = mesh.Optimize(true);
        //640 байт, 8 вершин,  6 нормалей, 4 текстурные координаты
        (new Scene(optimizedMesh)).Save("optimized.obj");

Добавлены члены в класс Aspose.ThreeD.Formats.ObjSaveOptions:

        /// <summary>
        /// Получает или задает систему координат в экспортируемом файле STL. 
        /// </summary>
        /// <remarks> Чтобы использовать эту функцию, необходимо включить FlipCoordinateSystem. </remarks>
        public AxisSystem AxisSystem { get; set; }

Пример кода для преобразования сцены в файл OBJ, используя пользовательскую систему координат.

Пример кода

        var scene = Scene.FromFile("input.fbx");
        var opt = new ObjSaveOptions();
        opt.AxisSystem = new AxisSystem(CoordinateSystem.RightHanded, Axis.YAxis, Axis.XAxis);
        opt.FlipCoordinateSystem = true;
        scene.Save("test.obj", opt);

Добавлены члены в класс Aspose.ThreeD.Formats.PlySaveOptions:

        /// <summary>
        /// Получает или задает систему координат в экспортируемом файле STL. 
        /// </summary>
        /// <remarks> Чтобы использовать эту функцию, необходимо включить FlipCoordinateSystem. </remarks>
        public AxisSystem AxisSystem { get; set; }

Пример кода для преобразования сцены в файл PLY, используя пользовательскую систему координат.

Пример кода

        var scene = Scene.FromFile("input.fbx");
        var opt = new PlySaveOptions();
        opt.AxisSystem = new AxisSystem(CoordinateSystem.RightHanded, Axis.YAxis, Axis.XAxis);
        opt.FlipCoordinateSystem = true;
        scene.Save("test.ply", opt);

Добавлены члены в класс Aspose.ThreeD.Formats.StlSaveOptions:

        /// <summary>
        /// Получает или задает систему координат в экспортируемом файле STL. 
        /// </summary>
        /// <remarks> Чтобы использовать эту функцию, необходимо включить FlipCoordinateSystem. </remarks>
        public AxisSystem AxisSystem { get; set; }

Добавлены члены в класс Aspose.ThreeD.Transforms.Transform:

        /// <summary>
        /// Получает или задает масштабирование
        /// </summary>
        /// <example>
        public Vector3 Scaling { get; set ; }
        /// <summary>
        /// Получает или задает смещение масштаба
        /// </summary>
        public Vector3 ScalingOffset { get; set; }
        /// <summary>
        /// Получает или задает точку поворота масштаба
        /// </summary>
        public Vector3 ScalingPivot { get; set; }
        /// <summary>
        /// Получает или задает смещение поворота
        /// </summary>
        public Vector3 RotationOffset { get; set; }
        /// <summary>
        /// Получает или задает точку поворота
        /// </summary>
        public Vector3 RotationPivot { get; set; }

Свойства ScalingOffset, ScalingPivot, RotationOffset и RotationPivot позволяют более точно определить поворот и масштабирование, обеспечивая совместимость со стандартами Maya/3ds Max.


 
 Русский