50 float scaleFactor{1.0f};
51 bool enableSorting{
true};
55 ossia::vec3f modelPosition{0.f, 0.f, 0.f};
56 ossia::vec3f modelRotation{0.f, 0.f, 0.f};
57 ossia::vec3f modelScale{1.f, 1.f, 1.f};
60 ossia::vec3f position{-1.f, -1.f, -1.f};
61 ossia::vec3f center{0.f, 0.f, 0.f};
81 void init(
RenderList& renderer, QRhiResourceUpdateBatch& res)
override;
82 void update(
RenderList& renderer, QRhiResourceUpdateBatch& res,
Edge* edge)
override;
83 void runInitialPasses(
84 RenderList&, QRhiCommandBuffer& commands, QRhiResourceUpdateBatch*& res,
86 void runRenderPass(
RenderList&, QRhiCommandBuffer& cb,
Edge& edge)
override;
90 void createPreprocessPipeline(
RenderList& renderer);
91 void createRenderPipeline(
RenderList& renderer);
92 void createSortPipelines(
RenderList& renderer);
100 QRhiBuffer* m_uniformBuffer{};
101 QRhiBuffer* m_dummyStorageBuffer{};
102 QRhiGraphicsPipeline* m_pipeline{};
103 QRhiShaderResourceBindings* m_bindings{};
107 QRhiBuffer* m_rawSplatBuffer{};
108 QRhiBuffer* m_renderSplatBuffer{};
109 QRhiBuffer* m_preprocessUniformBuffer{};
110 QRhiComputePipeline* m_preprocessPipeline{};
111 QRhiShaderResourceBindings* m_preprocessSrb{};
114 QRhiBuffer* m_sortKeysBuffer{};
115 QRhiBuffer* m_sortKeysAltBuffer{};
116 QRhiBuffer* m_sortIndicesBuffer{};
117 QRhiBuffer* m_sortIndicesAltBuffer{};
118 QRhiBuffer* m_histogramBuffer{};
119 QRhiBuffer* m_sortUniformBuffer{};
120 QRhiBuffer* m_sortPassUniformBuffer{};
121 QRhiBuffer* m_prefixSumUniformBuffer{};
123 QRhiComputePipeline* m_depthKeyPipeline{};
124 QRhiComputePipeline* m_histogramPipeline{};
125 QRhiComputePipeline* m_prefixSumPipeline{};
126 QRhiComputePipeline* m_sortPipeline{};
128 QRhiShaderResourceBindings* m_depthKeySrb{};
129 QRhiShaderResourceBindings* m_histogramSrb{};
130 QRhiShaderResourceBindings* m_histogramSrbAlt{};
131 QRhiShaderResourceBindings* m_prefixSumSrb{};
132 QRhiShaderResourceBindings* m_sortSrb{};
133 QRhiShaderResourceBindings* m_sortSrbAlt{};
135 ossia::small_vector<Sampler, 8> m_samplers;
137 int64_t m_lastSplatCount{0};
138 bool m_preprocessResourcesCreated{
false};
139 bool m_sortResourcesCreated{
false};
141 static constexpr int64_t MAX_SPLATS = 50000000;
142 static constexpr int SORT_WORKGROUP_SIZE = 256;
143 static constexpr int RADIX_BITS = 8;
144 static constexpr int NUM_BUCKETS = 256;
Useful abstraction for storing all the data related to a render target.
Definition score-plugin-gfx/Gfx/Graph/Utils.hpp:116