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

Aspose.3D для Java 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

Добавлен класс com.aspose.threed.AxisSystem

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

Переименован класс com.aspose.threed.CoordinatedSystem в com.aspose.threed.CoordinateSystem

Добавлены члены в класс com.aspose.threed.AnimationNode:

    /**
     * Находит точку привязки по целевому объекту и имени.
     * @param target Целевой объект точки привязки для поиска.
     * @param name Имя точки привязки для поиска.
     * @return Точка привязки.
     */
    public BindPoint findBindPoint(A3DObject target, String name)

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

Добавлены члены в класс com.aspose.threed.AssetInfo:

    /**
     * Получает вектор "вперед", используемый в этом активе.
     */
    public Axis getFrontVector()
    
    /**
     * Устанавливает вектор "вперед", используемый в этом активе.
     * @param value Новое значение
     */
    public void setFrontVector(Axis value)
    
    /**
     * Получает систему координат/вектор "верх"/вектор "вперед" информации об активе.
     */
    public AxisSystem getAxisSystem()
    
    /**
     * Устанавливает систему координат/вектор "верх"/вектор "вперед" информации об активе.
     * @param value Новое значение
     */
    public void setAxisSystem(AxisSystem value)

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

Добавлены члены в класс com.aspose.threed.Axis:

    /**
     * Ось -X.
     */
    NEGATIVE_X_AXIS,
    /**
     * Ось -Y.
     */
    NEGATIVE_Y_AXIS,
    /**
     * Ось -Z.
     */
    NEGATIVE_Z_AXIS;

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

Добавлен класс com.aspose.threed.BoneLinkMode

Добавлены члены в класс com.aspose.threed.Bone:

    /**
     * Режим связи кости относится к способу соединения или связывания кости с ее родительской костью в иерархической структуре.
     */
    public BoneLinkMode getLinkMode()
    
    /**
     * Режим связи кости относится к способу соединения или связывания кости с ее родительской костью в иерархической структуре.
     * @param value Новое значение
     */
    public void setLinkMode(BoneLinkMode value)

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

Пример кода

        Bone boneToLimbNode1 = new Bone("");
        bone.setNode(limbNode1);
        bone.setLinkMode(BoneLinkMode.TOTAL_ONE);

Добавлены члены в класс com.aspose.threed.Mesh:

    /**
     * Оптимизируйте использование памяти сетки путем устранения дублирующихся контрольных точек
     * @param vertexElements Оптимизируйте данные дублирующихся вершин
     * @return Новый экземпляр сетки с компактным использованием памяти
     */
    public Mesh optimize(boolean vertexElements)

Пример кода

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

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

Добавлены члены в класс com.aspose.threed.ObjSaveOptions:

    /**
     * Получает систему координат в экспортируемом файле.
     */
    public AxisSystem getAxisSystem()
    
    /**
     * Устанавливает систему координат в экспортируемом файле.
     * @param value Новое значение
     */
    public void setAxisSystem(AxisSystem value)

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

Пример кода

        Scene scene = Scene.fromFile("input.fbx");
        ObjSaveOptions opt = new ObjSaveOptions();
        opt.setAxisSystem(new AxisSystem(CoordinateSystem.RIGHT_HANDED, Axis.Y_AXIS, Axis.X_AXIS));
        opt.setFlipCoordinateSystem(true);
        scene.save("test.stl", opt);

Добавлены члены в класс com.aspose.threed.Transform:

    /**
     * Получает масштабирование
     */
    public Vector3 getScaling()
    
    /**
     * Устанавливает масштабирование
     * @param value Новое значение
     */
    public void setScaling(Vector3 value)
    
    /**
     * Получает смещение масштаба
     */
    public Vector3 getScalingOffset()
    
    /**
     * Устанавливает смещение масштаба
     * @param value Новое значение
     */
    public void setScalingOffset(Vector3 value)

    /**
     * Получает смещение поворота
     */
    public Vector3 getRotationOffset()
    
    /**
     * Устанавливает смещение поворота
     * @param value Новое значение
     */
    public void setRotationOffset(Vector3 value)

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


 
 Русский