Add GPU sorting for gaussian splat rendering
This commit is contained in:
@@ -211,7 +211,8 @@ private:
|
||||
|
||||
enum class PassLayoutUsage : Core::uint8 {
|
||||
Draw,
|
||||
PrepareOrder
|
||||
PrepareOrder,
|
||||
BitonicSort
|
||||
};
|
||||
|
||||
bool EnsureInitialized(const RenderContext& context);
|
||||
@@ -224,6 +225,7 @@ private:
|
||||
const RenderSceneData& sceneData,
|
||||
const Resources::Material* material) const;
|
||||
ResolvedShaderPass ResolvePrepareOrderShaderPass(const RenderSceneData& sceneData) const;
|
||||
ResolvedShaderPass ResolveBitonicSortShaderPass(const RenderSceneData& sceneData) const;
|
||||
PassResourceLayout* GetOrCreatePassResourceLayout(
|
||||
const RenderContext& context,
|
||||
const ResolvedShaderPass& resolvedShaderPass,
|
||||
@@ -235,7 +237,9 @@ private:
|
||||
const Resources::Material* material);
|
||||
RHI::RHIPipelineState* GetOrCreateComputePipelineState(
|
||||
const RenderContext& context,
|
||||
const RenderSceneData& sceneData);
|
||||
const ResolvedShaderPass& resolvedShaderPass,
|
||||
PassLayoutUsage usage,
|
||||
const Resources::ShaderKeywordSet& keywordSet);
|
||||
bool CreateOwnedDescriptorSet(
|
||||
const BuiltinPassSetLayoutMetadata& setLayout,
|
||||
OwnedDescriptorSet& descriptorSet);
|
||||
@@ -259,6 +263,10 @@ private:
|
||||
const RenderContext& context,
|
||||
const RenderSceneData& sceneData,
|
||||
const VisibleGaussianSplatItem& visibleGaussianSplat);
|
||||
bool SortVisibleGaussianSplat(
|
||||
const RenderContext& context,
|
||||
const RenderSceneData& sceneData,
|
||||
const VisibleGaussianSplatItem& visibleGaussianSplat);
|
||||
bool DrawVisibleGaussianSplat(
|
||||
const RenderContext& context,
|
||||
const RenderSurface& surface,
|
||||
|
||||
Reference in New Issue
Block a user