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

Aspose.3D for .NET 21,2 Примечания к выпуску

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

КлючСводкаКатегория
THREEDNET-825Добавить поддержку импорта USDZ.Новая функция
THREEDNET-824Добавить поддержку текстуры в USDZЗадача
THREEDNET-811Внедрение версии оценки, связанной с исключением в APIУлучшение
THREEDNET-813Требуются технические сведения об ограничениях материала и текстуры API-API не дает возможности обнаружить текстуры на материалахУлучшение
THREEDNET-817Добавить поддержку текстуры байт [] в случае glb, gltf, objУлучшение
THREEDAPP-80Улучшить скорость загрузки страницы веб-рендерераУлучшение
THREEDNET-814Индексы треугольника не верныИсправление ошибок
THREEDNET-809FBX Сохранить исключение: неподдерживаемый тип атрибутаИсправление ошибок
THREEDNET-810Filesize становится больше при повторном использовании той же текстурыИсправление ошибок
THREEDNET-816Неправильная сетка при загрузке OBJИсправление ошибок
THREEDNET-807В экспортированном FBX нет текстурыИсправление ошибок
THREEDNET-815Материалы с моделью шейдера = Unknown не смогут визуализировать.Исправление ошибок
THREEDNET-823Множественная сетка, прикрепленная к одному узлу, не является рендерингом.Исправление ошибок
THREEDNET-647Добавьте пользовательский интерфейс управления масштабированием в веб-рендерере.Задача
THREEDNET-646Добавить управление вращением UI в web renderer.Задача

API изменения

Добавлен класс Aspose.ThreeD. Затенение. Текстурные слоты

Это выявило внутренние слоты текстуры в материалах, чтобы получить доступ ко всем доступным слотам текстуры из материала, используйте для каждого утверждения:

var mat = new PbrMaterial();
foreach(var textureSlot in mat)
{
    Console.WriteLine(textureSlot.SlotName);
    Console.WriteLine(textureSlot.Texture);
}

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

С 21,2, когда нелицензионное использование достигло ограничения лицензии, будет брошено TrialException, чтобы уведомить об ограничении лицензии и о том, как подать заявку на временную лицензию.

Вы можете просто игнорировать это, окружая блок попытки/ловли в операции Сохранить/Открыть, или выключить это исключение:

TrialException.SuppressTrialException = true;

Выключение этого сообщения не снимет ограничения (например, экспортер/импортер игнорирует дополнительные узлы).

Чтобы получить полную функцию, запросите временную лицензию или купите полную лицензию.

Добавлены методы к Aspose.ThreeD.Entities.TriMesh

public Aspose.ThreeD.Utilities.Vector4 ReadVector4(int idx, Aspose.ThreeD.Utilities.VertexField field);
public Aspose.ThreeD.Utilities.FVector4 ReadFVector4(int idx, Aspose.ThreeD.Utilities.VertexField field);
public Aspose.ThreeD.Utilities.Vector3 ReadVector3(int idx, Aspose.ThreeD.Utilities.VertexField field);
public Aspose.ThreeD.Utilities.FVector3 ReadFVector3(int idx, Aspose.ThreeD.Utilities.VertexField field);
public Aspose.ThreeD.Utilities.Vector2 ReadVector2(int idx, Aspose.ThreeD.Utilities.VertexField field);
public Aspose.ThreeD.Utilities.FVector2 ReadFVector2(int idx, Aspose.ThreeD.Utilities.VertexField field);
public double ReadDouble(int idx, Aspose.ThreeD.Utilities.VertexField field);
public float ReadFloat(int idx, Aspose.ThreeD.Utilities.VertexField field);

Эти методы позволяют читать поле вершины без выделения дополнительной памяти, традиционный способ доступа к вершине из TriMesh фактически генерирует много временного объекта, который может обеспечить быстрый и низкий доступ к памяти.

Сцена s = новая сцена (@ "test.STL");
Var mesh = (Mesh)s.RootNode.ChildNodes[0].Entity;

// Создайте новый VertexDeclaration, поэтому TriMesh, который мы построили позже, будет использовать этот макет памяти.
Var vd = новая VertexDeclaration();
Var pos = vd.AddField(VertexFieldDataType.FVector3, VertexFieldSemantic.Position);
Var normal = vd.AddField(VertexFieldDataType.FVector3, VertexFieldSemantic.Normal);
Var uv = vd.AddField(VertexFieldDataType.FVector2, VertexFieldSemantic.UV);
// Создать экземпляр TriMesh из экземпляра Mesh с заданным вручную объявлением вершины
Var m = TriMesh.FromMesh(vd, сетка);
Для (int i = 0; i< m.VerticesCount; i++)
{
    //access each field
    var v_pos = m.ReadFVector3(i, pos);
    var v_normal = m.ReadFVector3(i, normal);
    var v_uv = m.ReadFVector3(i, uv);
    Console.WriteLine($"({v_pos}), ({v_uv}), ({v_normal})");
}

Добавлен новый формат файла в Aspose.ThreeD.FileFormat

/// <summary>
/// Compressed Universal Scene Description
/// </summary>
public static readonly FileFormat USDZ;

Aspose.3D 21,2 может загрузить формат USDZ сейчас.

Исправлены непоследовательные API:

Эти старые классы будут сохранены на некоторое время, и для их замены вводятся новые классы:

Старый классНовый класс
Aspose.ThreeD. Форматы. A3DWSaveOptionsAspose.ThreeD. Форматы. A3DWSaveOptions
Aspose.ThreeD. Форматы. AMFSaveOptionsAspose.ThreeD. Форматы. AmfSaveOptions
Aspose.ThreeD. Форматы. Дискретные опции 3DSLoadOptionsAspose.ThreeD. Форматы. Дискретные 3dsLoadOptions
Aspose.ThreeD. Форматы. Discreet3DSSaveOptionsAspose.ThreeD. Форматы. Discreet3dsSaveOptions
Aspose.ThreeD. Форматы. FBXLoadOptionsAspose.ThreeD. Форматы. FbxLoadOptions
Aspose.ThreeD. Форматы. FBXSaveOptionsAspose.ThreeD. Форматы. FbxSaveOptions
Aspose.ThreeD. Форматы. GLTFLoadOptionsAspose.ThreeD. Форматы. GltfLoadOptions
Aspose.ThreeD. Форматы. GLTFSaveOptionsAspose.ThreeD. Форматы. GltfSaveOptions
Aspose.ThreeD. Форматы. HTML5SaveOptionsAspose.ThreeD. Форматы. Html5SaveOptions
Aspose.ThreeD. Форматы. STLLoadOptionsAspose.ThreeD. Форматы. StlLoadOptions
Aspose.ThreeD. Форматы. STLSaveOptionsAspose.ThreeD. Форматы. StlSaveOptions
Aspose.ThreeD. Форматы. U3DLoadOptionsAspose.ThreeD. Форматы. U3dLoadOptions


 
 Русский