/
redgpu
/
ezEngine
Обзор
Документация
Войти
/
redgpu
/
ezEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
Code/EditorPlugins/Assets/EditorPluginAssets/MeshAsset/MeshAsset.h
77 строк
3 KB
Jan Krassnigg
Selective mesh import and automatic LOD setup (#1550)
01 май 2025, 21:45
Не верифицирован
01 май 2025, 21:45
1c90eeb
Код
Авторство
О чём код?
#pragma once #include <EditorFramework/Assets/AssetDocumentGenerator.h> #include <EditorFramework/Assets/SimpleAssetDocument.h> #include <EditorPluginAssets/MeshAsset/MeshAssetObjects.h> class ezMeshResourceDescriptor; class ezGeometry; class ezMaterialAssetDocument; namespace ezModelImporter2 { class Importer; } class ezMeshAssetDocument : public ezSimpleAssetDocument<ezMeshAssetProperties> { EZ_ADD_DYNAMIC_REFLECTION(ezMeshAssetDocument, ezSimpleAssetDocument<ezMeshAssetProperties>); public: ezMeshAssetDocument(ezStringView sDocumentPath); protected: virtual ezTransformStatus InternalTransformAsset(ezStreamWriter& stream, ezStringView sOutputTag, const ezPlatformProfile* pAssetProfile, const ezAssetFileHeader& AssetHeader, ezBitflags<ezTransformFlags> transformFlags) override; void CreateMeshFromGeom(ezMeshAssetProperties* pProp, ezMeshResourceDescriptor& desc); ezTransformStatus CreateMeshFromFile(ezMeshAssetProperties* pProp, ezMeshResourceDescriptor& desc, bool bAllowMaterialImport); virtual ezTransformStatus InternalCreateThumbnail(const ThumbnailInfo& ThumbnailInfo) override; virtual void UpdateAssetDocumentInfo(ezAssetDocumentInfo* pInfo) const override; }; ////////////////////////////////////////////////////////////////////////// class ezMeshAssetDocumentGenerator : public ezAssetDocumentGenerator { EZ_ADD_DYNAMIC_REFLECTION(ezMeshAssetDocumentGenerator, ezAssetDocumentGenerator); public: ezMeshAssetDocumentGenerator(); ~ezMeshAssetDocumentGenerator(); virtual void GetImportModes(ezStringView sAbsInputFile, ezDynamicArray<ezAssetDocumentGenerator::ImportMode>& out_modes) const override; virtual ezStringView GetDocumentExtension() const override { return "ezMeshAsset"; } virtual ezStringView GetGeneratorGroup() const override { return "Meshes"; } virtual ezStatus Generate(ezStringView sInputFileAbs, ezStringView sMode, ezDynamicArray<ezDocument*>& out_generatedDocuments) override; protected: ezMeshAssetDocumentGenerator(bool bAnimMesh); virtual ezStatus ConfigureMeshDocument(ezStringView sInputFile, ezStringView sOutFile, ezModelImporter2::Importer* pImporter, ezArrayPtr<ezMaterialResourceSlot> materials, ezDynamicArray<ezDocument*>& out_generatedDocuments); bool m_bAnimatedMesh = false; bool m_bShowImportDlg = true; static bool s_bReuseSkeleton; static bool s_bImportAllClips; static bool s_bUseSharedMaterials; static bool s_bCreateMaterials; static bool s_bAddLODs; static ezUInt8 s_uiNumLODs; static ezUuid s_SharedSkeleton; }; class ezAnimatedMeshAssetDocumentGenerator : public ezMeshAssetDocumentGenerator { EZ_ADD_DYNAMIC_REFLECTION(ezAnimatedMeshAssetDocumentGenerator, ezMeshAssetDocumentGenerator); public: ezAnimatedMeshAssetDocumentGenerator(); ~ezAnimatedMeshAssetDocumentGenerator(); virtual void GetImportModes(ezStringView sAbsInputFile, ezDynamicArray<ezAssetDocumentGenerator::ImportMode>& out_modes) const override; virtual ezStringView GetDocumentExtension() const override { return "ezAnimatedMeshAsset"; } protected: virtual ezStatus ConfigureMeshDocument(ezStringView sInputFile, ezStringView sOutFile, ezModelImporter2::Importer* pImporter, ezArrayPtr<ezMaterialResourceSlot> materials, ezDynamicArray<ezDocument*>& out_generatedDocuments) override; };