diff --git a/03-UnrealEngine/Rendering/RenderFeature/UE5 3DGaussians 插件笔记.md b/03-UnrealEngine/Rendering/RenderFeature/UE5 3DGaussians 插件笔记.md index a06764d..4ae6efd 100644 --- a/03-UnrealEngine/Rendering/RenderFeature/UE5 3DGaussians 插件笔记.md +++ b/03-UnrealEngine/Rendering/RenderFeature/UE5 3DGaussians 插件笔记.md @@ -8,6 +8,10 @@ rating: ⭐ # c++ 插件的c++部分主要实现了 +- FThreeDGaussians——可以理解为一个场景或者根节点 + - FThreeDGaussiansTree——类似BVH的空间切分树 + - FThreeDGaussiansData——具体数据 +- @@ -16,10 +20,8 @@ rating: ⭐ struct FThreeDGaussiansData { GENERATED_BODY() - public: FThreeDGaussiansData() {} - FThreeDGaussiansData(const TArray& textures, const FVector3f& in_minPos, const FVector3f& in_maxPos) { minPos = in_minPos; @@ -43,4 +45,38 @@ public: UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "3D Gaussians") UTexture2D* scaleAndOpacity; UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "3D Gaussians") TArray sh; }; + +/** 类似BVH的控件数据结构 */ +USTRUCT(BlueprintType) +struct FThreeDGaussiansTree +{ + GENERATED_BODY() +public: + FThreeDGaussiansTree() {} + + // Axis for split (x=0, y=1, z=2) + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "3D Gaussians") int32 splitAxis = -1; + // max value of the position of gaussian in child0 or leaf0 in "splitAxis" axis + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "3D Gaussians") float splitValue = 0.0f; + + // index of child tree node (Index of TArray tree) + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "3D Gaussians") int32 childIndex0 = -1; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "3D Gaussians") int32 childIndex1 = -1; + + // index of child data node (Index of TArray data) + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "3D Gaussians") int32 leafIndex0 = -1; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "3D Gaussians") int32 leafIndex1 = -1; +}; + +/* 作为3D高斯数据的载荷 */ +USTRUCT(BlueprintType) +struct FThreeDGaussians +{ + GENERATED_BODY() +public: + FThreeDGaussians() {} + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "3D Gaussians") TArray data; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "3D Gaussians") TArray tree; +}; ``` \ No newline at end of file