Просмотрите наши продукты
Aspose.3D для Java 23.12 Примечания к выпуску
Улучшения и изменения
Key | Summary | Category |
---|---|---|
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-1462 | Aspose.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.