reckfellENGINE

GltfDocumentExtension

Класс расширения GLTFDocument.

На этой странице
class GltfDocumentExtensionReckfellSharpНаследует Resource

Класс расширения GltfDocument.

Расширяет функциональность класса GltfDocument, позволяя выполнять произвольный код на различных этапах импорта или экспорта glTF. Для использования создайте новый класс, расширяющий GLTFDocumentExtension, переопределите необходимые методы, создайте экземпляр вашего класса и зарегистрируйте его с помощью GltfDocument.RegisterGltfDocumentExtension. Примечание: Все классы GLTFDocumentExtension дублируются в начале процесса импорта или экспорта. За исключением значений конфигурации, эти классы должны быть без состояния для корректной работы. Если вам необходимо хранить данные, используйте методы set_additional_data и get_additional_data в GltfState или GltfNode.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

GltfDocumentExtensionКонструктор
# GltfDocumentExtension
C#
public GltfDocumentExtension();

Методы24

_ConvertSceneNodevoid
# _ConvertSceneNode
C#
public virtual void _ConvertSceneNode(GltfState state, GltfNode gltfNode, Entity sceneNode);

Часть процесса экспорта. Этот метод запускается после GltfDocumentExtension._ExportPreflight и до GltfDocumentExtension._ExportPostConvert. Запускается при конвертации данных из узла сцены Reckfell. Этот метод можно использовать для обработки данных узла сцены Reckfell в формат, который может использоваться GltfDocumentExtension._ExportNode.

Параметры
ИмяТипПо умолчанию
stateGltfState—
gltfNodeGltfNode—
sceneNodeEntity—
_ExportGetPropertyListReckfell.Collections.Array<Reckfell.Collections.Dictionary>
# _ExportGetPropertyList
C#
public virtual Reckfell.Collections.Array<Reckfell.Collections.Dictionary> _ExportGetPropertyList(Entity rootEntity);

Этот метод применяется до начала экспортного процесса. GltfDocumentExtension._ExportPreflight при экспорте сцены из редактора, или в других ситуациях она вообще не может быть запущена. В отличие от остальных методов экспорта, это не происходит при вызове а GltfDocument"применяемые методы экспорта в последовательном порядке со всем остальным, но, скорее, прогоняются до того, как происходит весь этот процесс, что позволяет конфигурации происходить заранее, возможно, за несколько минут или часов до начала GltfDocumentExtension._ExportPreflight. Это позволяет расшириться, чтобы определить, какие свойства будут показываться в диалоговом режиме экспорта редактора на основе содержания сцены, скрывая любые настройки, которые не имеют отношения к этой сцене. root_node параметр может быть null, в этом случае должны быть указаны все свойства.

Параметры
ИмяТипПо умолчанию
rootEntityEntity—
Возвращает Reckfell.Collections.Array<Reckfell.Collections.Dictionary>
_ExportNodeError
# _ExportNode
C#
public virtual Error _ExportNode(GltfState state, GltfNode gltfNode, Reckfell.Collections.Dictionary json, Entity node);

Часть процесса экспорта. Этот метод запускается после GltfDocumentExtension._GetSaveableImageFormats и до GltfDocumentExtension._ExportPost. Если этот GltfDocumentExtension используется для экспорта изображений, он запускается после GltfDocumentExtension._SerializeTextureJson. Этот метод можно использовать для изменения окончательного JSON каждого узла. Данные должны быть в первую очередь сохранены в gltf_node до сериализации JSON, но исходный Entity Reckfell также предоставляется, если он доступен. node может быть null, если он недоступен, например, при экспорте данных glTF, не сгенерированных из сцены Reckfell.

Параметры
ИмяТипПо умолчанию
stateGltfState—
gltfNodeGltfNode—
jsonReckfell.Collections.Dictionary—
nodeEntity—
Возвращает Error
_ExportObjectModelPropertyGltfObjectModelProperty
# _ExportObjectModelProperty
C#
public virtual GltfObjectModelProperty _ExportObjectModelProperty(GltfState state, EntityPath entityPath, Entity reckfellNode, int gltfNodeIndex, ReckfellObject targetObject, int targetDepth);

Часть процесса экспорта. Позволяет классам GLTFDocumentExtension предоставлять сопоставления для свойств узлов в дереве сцены Reckfell, указателям JSON на свойства glTF, как определено объектной моделью glTF. Возвращает экземпляр GltfObjectModelProperty, который определяет, как свойство должно быть сопоставлено. Если ваше расширение не может обработать свойство, верните null или экземпляр без каких-либо указателей JSON (см. GltfObjectModelProperty.HasJsonPointers). Вам следует использовать GltfObjectModelProperty.SetTypes для установки типов и задать указатель(и) JSON с помощью свойства GltfObjectModelProperty.JsonPointers. Параметры предоставляют контекст для свойства, включая EntityPath, узел Reckfell, индекс узла GLTF и целевой объект. target_object будет равен reckfell_node, если не может быть найден ни один подобъект, в противном случае он будет указывать на подобъект. Например, если путь ^"A/B/C/MeshInstance3D:mesh:surface_0/material:emission_intensity", он получит узел, затем сетку, а затем материал, поэтому target_object будет ресурсом Material, а target_depth будет равен 2, поскольку для достижения цели было пройдено 2 уровня.

Параметры
ИмяТипПо умолчанию
stateGltfState—
entityPathEntityPath—
reckfellNodeEntity—
gltfNodeIndexint—
targetObjectReckfellObject—
targetDepthint—
Возвращает GltfObjectModelProperty
_ExportPostError
# _ExportPost
C#
public virtual Error _ExportPost(GltfState state);

Часть процесса экспорта. Этот метод запускается последним, после всех остальных частей процесса экспорта. Этот метод можно использовать для изменения окончательного JSON сгенерированного файла glTF.

Параметры
ИмяТипПо умолчанию
stateGltfState—
Возвращает Error
_ExportPostConvertError
# _ExportPostConvert
C#
public virtual Error _ExportPostConvert(GltfState state, Entity root);

Часть процесса экспорта. Этот метод запускается после GltfDocumentExtension._ConvertSceneNode и перед GltfDocumentExtension._ExportPreserialize. Этот метод можно использовать для изменения структур данных преобразованного узла перед сериализацией с любыми дополнительными данными из дерева сцены.

Параметры
ИмяТипПо умолчанию
stateGltfState—
rootEntity—
Возвращает Error
_ExportPreflightError
# _ExportPreflight
C#
public virtual Error _ExportPreflight(GltfState state, Entity root);

Часть процесса экспорта. Этот метод запускается первым, до всех остальных частей процесса экспорта. Возвращаемое значение используется для определения того, следует ли использовать этот экземпляр GltfDocumentExtension для экспорта заданного файла glTF. Если OK, экспорт будет использовать этот экземпляр GltfDocumentExtension. Если не переопределено, возвращается OK.

Параметры
ИмяТипПо умолчанию
stateGltfState—
rootEntity—
Возвращает Error
_ExportPreserializeError
# _ExportPreserialize
C#
public virtual Error _ExportPreserialize(GltfState state);

Часть процесса экспорта. Этот метод запускается после GltfDocumentExtension._ExportPostConvert и до GltfDocumentExtension._GetSaveableImageFormats. Этот метод можно использовать для изменения состояния перед выполнением сериализации. Он запускается каждый раз при генерации буфера с помощью GltfDocument.GenerateBuffer или записи в файловую систему с помощью GltfDocument.WriteToFilesystem.

####генерат сцена_ узел

Параметры
ИмяТипПо умолчанию
stateGltfState—
Возвращает Error
_GenerateSceneNodeEntity3D
# _GenerateSceneNode
C#
public virtual Entity3D _GenerateSceneNode(GltfState state, GltfNode gltfNode, Entity sceneParent);

Часть процесса импорта. Этот метод запускается после GltfDocumentExtension._ImportPreGenerate и до GltfDocumentExtension._ImportNode. Запускается при генерации узла сцены Reckfell из GLTFNode. Возвращаемый узел будет добавлен в дерево сцены. На этом этапе можно сгенерировать несколько узлов, если они добавляются как дочерние элементы возвращаемого узла. Примечание: Параметр scene_parent может быть null, если это единственный корневой узел.

#####get_image_file

Параметры
ИмяТипПо умолчанию
stateGltfState—
gltfNodeGltfNode—
sceneParentEntity—
Возвращает Entity3D
_GetImageFileExtensionstring
# _GetImageFileExtension
C#
public virtual string _GetImageFileExtension();

Возвращает расширение файла, используемое для сохранения данных изображения, например, ".png". Если определено, когда это расширение используется для обработки изображений, и изображения сохраняются в отдельный файл, байты изображения будут скопированы в файл с этим расширением. Если это задано, должен быть класс ResourceImporter, способный импортировать файл. Если не определено или пусто, Reckfell сохранит изображение в файл PNG.

######_сохранимый_имаг_формат

Возвращает string
_GetSaveableImageFormatsstring[]
# _GetSaveableImageFormats
C#
public virtual string[] _GetSaveableImageFormats();

Часть процесса экспорта. Этот метод запускается после GltfDocumentExtension._ConvertSceneNode и до GltfDocumentExtension._ExportNode. Возвращает массив форматов изображений, которые могут быть сохранены/экспортированы этим расширением. Это расширение будет выбрано в качестве экспортера изображений, только если GltfDocument.ImageFormat GltfDocument находится в этом массиве. Если этот GltfDocumentExtension выбран в качестве экспортера изображений, следующим будет запущен один из методов GltfDocumentExtension._SaveImageAtPath или GltfDocumentExtension._SerializeImageToBytes, в противном случае следующим будет запущен GltfDocumentExtension._ExportNode. Если имя формата содержит "Lossy", будет отображен ползунок качества с потерями.

########получение_поддержка_

Возвращает string[]
_GetSupportedExtensionsstring[]
# _GetSupportedExtensions
C#
public virtual string[] _GetSupportedExtensions();

Часть процесса импорта. Этот метод запускается после GltfDocumentExtension._ImportPreflight и до GltfDocumentExtension._ParseNodeExtensions. Возвращает массив расширений glTF, поддерживаемых этим классом GLTFDocumentExtension. Используется для проверки возможности загрузки файла glTF с требуемыми расширениями.

Возвращает string[]
_ImportNodeError
# _ImportNode
C#
public virtual Error _ImportNode(GltfState state, GltfNode gltfNode, Reckfell.Collections.Dictionary json, Entity node);

Часть процесса импорта. Этот метод запускается после GltfDocumentExtension._GenerateSceneNode и перед GltfDocumentExtension._ImportPost. Этот метод можно использовать для внесения изменений в каждый из сгенерированных узлов сцены Reckfell.

Параметры
ИмяТипПо умолчанию
stateGltfState—
gltfNodeGltfNode—
jsonReckfell.Collections.Dictionary—
nodeEntity—
Возвращает Error
_ImportObjectModelPropertyGltfObjectModelProperty
# _ImportObjectModelProperty
C#
public virtual GltfObjectModelProperty _ImportObjectModelProperty(GltfState state, string[] splitJsonPointer, Reckfell.Collections.Array<EntityPath> partialPaths);

Часть процесса импорта. GLTFDocumentExtension классов для составления карт JSON Показания на свойства glTF, как они определены в модели объекта gITF, на свойства узлов в сценном дереве Reckfell. Возвращается a GltfObjectModelProperty Если ваше расширение не может справиться с этим имуществом, возвращайтесь. null или случай без каких-либо строений (см. GltfObjectModelProperty.HasEntityPathsВы должны использовать GltfObjectModelProperty.SetTypes - устанавливать типы и GltfObjectModelProperty.AppendPathToProperty функция полезна для большинства простых случаев. Во многих случаях partial_paths будет содержать начало пути, что позволит ему завершить путь. /nodes/3/extensions/MY_ext/prop, Reckfell даст тебе EntityPath который ведет к узлу 3, так что GLTFDocumentExtension класс должен решить только последний MY_ext/prop В этом примере расширение должно проверяться split.size() > 4 and split[0] == "nodes" and split[2] == "extensions" and split[3] == "MY_ext" в начале функции для проверки JSON Применяется указатель, и тогда он может использовать partial_paths и обрабатывает split[4].

Параметры
ИмяТипПо умолчанию
stateGltfState—
splitJsonPointerstring[]—
partialPathsReckfell.Collections.Array<EntityPath>—
Возвращает GltfObjectModelProperty
_ImportPostError
# _ImportPost
C#
public virtual Error _ImportPost(GltfState state, Entity root);

Часть процесса импорта. Этот метод запускается последним, после всех остальных частей процесса импорта. Этот метод можно использовать для изменения финальной сцены Reckfell, созданной в процессе импорта.

Параметры
ИмяТипПо умолчанию
stateGltfState—
rootEntity—
Возвращает Error
_ImportPostParseError
# _ImportPostParse
C#
public virtual Error _ImportPostParse(GltfState state);

Часть процесса импорта. Этот метод запускается после GltfDocumentExtension._ParseNodeExtensions и перед GltfDocumentExtension._ImportPreGenerate. Этот метод можно использовать для изменения любых данных, импортированных до сих пор после анализа каждого узла, но до генерации сцены или любого из ее узлов.

Параметры
ИмяТипПо умолчанию
stateGltfState—
Возвращает Error
_ImportPreGenerateError
# _ImportPreGenerate
C#
public virtual Error _ImportPreGenerate(GltfState state);

Часть процесса импорта. Этот метод запускается после GltfDocumentExtension._ImportPostParse и перед GltfDocumentExtension._GenerateSceneNode. Этот метод можно использовать для изменения или чтения из любой обработанной структуры данных перед генерацией узлов и последующим запуском последнего шага импорта по узлам.

Параметры
ИмяТипПо умолчанию
stateGltfState—
Возвращает Error
_ImportPreflightError
# _ImportPreflight
C#
public virtual Error _ImportPreflight(GltfState state, string[] extensions);

Часть процесса импорта. Этот метод запускается первым, до всех остальных частей процесса импорта. Возвращаемое значение используется для определения того, следует ли использовать этот экземпляр GltfDocumentExtension для импорта заданного файла glTF. Если OK, импорт будет использовать этот экземпляр GltfDocumentExtension. Если не переопределено, возвращается OK.

Параметры
ИмяТипПо умолчанию
stateGltfState—
extensionsstring[]—
Возвращает Error
_ParseImageDataError
# _ParseImageData
C#
public virtual Error _ParseImageData(GltfState state, byte[] imageData, string mimeType, Image retImage);

Часть процесса импорта. Этот метод запускается после GltfDocumentExtension._ParseNodeExtensions и до GltfDocumentExtension._ParseTextureJson. Запускается при разборе данных изображения из файла glTF. Данные могут быть получены из отдельного файла, URI или буфера, а затем переданы как массив байтов.

Параметры
ИмяТипПо умолчанию
stateGltfState—
imageDatabyte[]—
mimeTypestring—
retImageImage—
Возвращает Error
_ParseNodeExtensionsError
# _ParseNodeExtensions
C#
public virtual Error _ParseNodeExtensions(GltfState state, GltfNode gltfNode, Reckfell.Collections.Dictionary extensions);

Часть процесса импорта. Этот метод запускается после GltfDocumentExtension._GetSupportedExtensions и до GltfDocumentExtension._ImportPostParse. Запускается при разборе расширений узлов GLTFNode. Этот метод можно использовать для обработки данных расширения JSON в формат, который может использоваться GltfDocumentExtension._GenerateSceneNode. Возвращаемое значение должно быть членом перечисления Error.

####Парсе_текстур_Json

Параметры
ИмяТипПо умолчанию
stateGltfState—
gltfNodeGltfNode—
extensionsReckfell.Collections.Dictionary—
Возвращает Error
_ParseTextureJsonError
# _ParseTextureJson
C#
public virtual Error _ParseTextureJson(GltfState state, Reckfell.Collections.Dictionary textureJson, GltfTexture retGltfTexture);

Часть процесса импорта. Этот метод запускается после GltfDocumentExtension._ParseImageData и до GltfDocumentExtension._GenerateSceneNode. Запускается при разборе текстуры JSON из массива текстур glTF. Это можно использовать для установки индекса исходного изображения для использования в качестве текстуры.

Параметры
ИмяТипПо умолчанию
stateGltfState—
textureJsonReckfell.Collections.Dictionary—
retGltfTextureGltfTexture—
Возвращает Error
_SaveImageAtPathError
# _SaveImageAtPath
C#
public virtual Error _SaveImageAtPath(GltfState state, Image image, string filePath, string imageFormat, float lossyQuality);

Часть процесса экспорта. Этот метод запускается после GltfDocumentExtension._GetSaveableImageFormats и до GltfDocumentExtension._SerializeTextureJson. Этот метод запускается при сохранении изображений отдельно от файла glTF. Если изображения встроены, вместо него запускается GltfDocumentExtension._SerializeImageToBytes. Обратите внимание, что эти методы запускаются только тогда, когда в качестве экспортера изображений выбрано GltfDocumentExtension.

Параметры
ИмяТипПо умолчанию
stateGltfState—
imageImage—
filePathstring—
imageFormatstring—
lossyQualityfloat—
Возвращает Error
_SerializeImageToBytesbyte[]
# _SerializeImageToBytes
C#
public virtual byte[] _SerializeImageToBytes(GltfState state, Image image, Reckfell.Collections.Dictionary imageDict, string imageFormat, float lossyQuality);

Часть процесса экспорта. Этот метод запускается после GltfDocumentExtension._GetSaveableImageFormats и до GltfDocumentExtension._SerializeTextureJson. Этот метод запускается при встраивании изображений в файл glTF. Когда изображения сохраняются отдельно, вместо него запускается GltfDocumentExtension._SaveImageAtPath. Обратите внимание, что эти методы запускаются только тогда, когда в качестве экспортера изображений выбрано GltfDocumentExtension. Этот метод должен задать тип MIME изображения в image_dict с ключом "mimeType". Например, для изображения PNG он будет установлен на "image/png". Возвращаемое значение должно быть byte[], содержащим данные изображения.

Параметры
ИмяТипПо умолчанию
stateGltfState—
imageImage—
imageDictReckfell.Collections.Dictionary—
imageFormatstring—
lossyQualityfloat—
Возвращает byte[]
_SerializeTextureJsonError
# _SerializeTextureJson
C#
public virtual Error _SerializeTextureJson(GltfState state, Reckfell.Collections.Dictionary textureJson, GltfTexture gltfTexture, string imageFormat);

Часть процесса экспорта. Этот метод запускается после GltfDocumentExtension._SaveImageAtPath или GltfDocumentExtension._SerializeImageToBytes и перед GltfDocumentExtension._ExportNode. Обратите внимание, что этот метод запускается только тогда, когда этот GltfDocumentExtension выбран в качестве экспортера изображений. Этот метод можно использовать для настройки расширений для текстуры JSON путем редактирования texture_json. Расширение также должно быть добавлено как используемое расширение с GltfState.AddUsedExtension, обязательно установите required на true, если вы не предоставляете запасной вариант.

Параметры
ИмяТипПо умолчанию
stateGltfState—
textureJsonReckfell.Collections.Dictionary—
gltfTextureGltfTexture—
imageFormatstring—
Возвращает Error
Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.