From b60465bf2ee9818352cfab5c7e31b0cd54a1d650 Mon Sep 17 00:00:00 2001 From: BlueRose <378100977@qq.com> Date: Fri, 22 Dec 2023 15:10:13 +0800 Subject: [PATCH] vault backup: 2023-12-22 15:10:13 --- .../plugins/various-complements/data.json | 8 ++++ .../RenderFeature/UE5 3DGaussians 插件笔记.md | 39 ++++++++++++++++--- 2 files changed, 42 insertions(+), 5 deletions(-) diff --git a/.obsidian/plugins/various-complements/data.json b/.obsidian/plugins/various-complements/data.json index df499a8..ad55d6d 100644 --- a/.obsidian/plugins/various-complements/data.json +++ b/.obsidian/plugins/various-complements/data.json @@ -62,6 +62,14 @@ "lastUpdated": 1703216792464 } } + }, + "AlbedoTint、CropEnabled、CropTranslation、CropRotation、CropExtent;texture_width、texture_position、texture_rotation、texture_scaleAndOpacity。": { + "AlbedoTint、CropEnabled、CropTranslation、CropRotation、CropExtent;texture_width、texture_position、texture_rotation、texture_scaleAndOpacity。": { + "currentFile": { + "count": 1, + "lastUpdated": 1703225931596 + } + } } } } \ No newline at end of file diff --git a/03-UnrealEngine/Rendering/RenderFeature/UE5 3DGaussians 插件笔记.md b/03-UnrealEngine/Rendering/RenderFeature/UE5 3DGaussians 插件笔记.md index 4ae6efd..c1f3481 100644 --- a/03-UnrealEngine/Rendering/RenderFeature/UE5 3DGaussians 插件笔记.md +++ b/03-UnrealEngine/Rendering/RenderFeature/UE5 3DGaussians 插件笔记.md @@ -11,11 +11,22 @@ rating: ⭐ - FThreeDGaussians——可以理解为一个场景或者根节点 - FThreeDGaussiansTree——类似BVH的空间切分树 - FThreeDGaussiansData——具体数据 -- +- ply点云文件导入,流程如下 + - FThreeDGaussiansImporterModule::PluginButtonClicked() + - LoadPly(),载入`TArray`数据。 + - 进行排序 + - 初始化一个`TArray unsorted`并且进行排序。 + - 取得各种排序用参数DO_SPLIT_BY_3D_MORTON_ORDER、DO_SPLIT_BY_DISTANCE、MAX_TEXTURE_WIDHT、MAX_NUM_PARTICLES + - 采用莫顿码分割法、距离排序法。 + - 莫顿码分割法:使用莫顿码进行排序,之后进行空间分割,构建一个三维加速结构。当当前区域点云数量小于MAX_NUM_PARTICLES后调用CreateDatum()。 + - 距离排序法:根据Position上三个分量中最大绝对值进行排序,之后调用CreateDatum()。 + - CreateDatum() + - Sort3dMortonOrder()排序。 + - CreateExr()创建Exr Texture文件。 + - 将上一步创建的文件导入UE。 + - CreateActorBpSubclass(),创建3DGaussians蓝图Actor,并且查找SetData函数并且将数据塞入。 - - -## 相关代码 +## FThreeDGaussians代码 ```c++ struct FThreeDGaussiansData { @@ -79,4 +90,22 @@ public: UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "3D Gaussians") TArray data; UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "3D Gaussians") TArray tree; }; -``` \ No newline at end of file +``` + +# BP_3D_Gaussians_Base +- BeginPlay:判断三维加速结构是否还子节点,如果有则开启Tick进行排序。 +- Tick:根据摄像机位置对三维加速结构进行排序。 +- ConstructionScript: + 1. 添加Niagara粒子组件,一个FThreeDGaussiansData生成一个粒子组件。 + 2. 设置Niagara资产:NS_3D_Gaussians_sh0_mesh(勾选mesh选项)、NS_3D_Gaussians_sh0(SH角度)、NS_3D_Gaussians_sh1、NS_3D_Gaussians_sh2、NS_3D_Gaussians_sh3 + 3. 设置粒子材质属性: + 1. AlbedoTint + 2. 剔除设置:CropEnabled、CropTranslation、CropRotation、CropExtent + 3. 数据贴图(FThreeDGaussiansData):texture_width、texture_position、texture_rotation、texture_scaleAndOpacity。 + 4. SH数据贴图(FThreeDGaussiansData):根据角度设置Niagara里texture_sh_X的贴图。 + 5. 社会中剔除空间 CropTranslations、CropRotators、CropExtents、KillTranslations、KillRotators、KillExtents。 + +# Niagara +剔除方式: + +## 材质