12 #ifndef GR_GaussianSplatVK_h
13 #define GR_GaussianSplatVK_h
81 const char *
className()
const override {
return "GR_GaussianSplatVK"; }
101 int &out_connect_start,
102 int &out_connect_num)
override;
107 int &out_connect_start,
108 int &out_connect_num)
override;
120 static bool sceneHasGsplats();
152 void createFullScreenGeom(
RV_Render *rv);
159 void createGSplatFramebuffer(
RV_Render *rv,
161 void transitionToSampling(
RV_Render* rv);
166 void uploadAllStaticBuffer(
RV_Render *rv);
178 void setupPreprocessBuffer(
RV_Render *rv);
184 void uploadShadowDrawIndirectBuffer(
RV_Render *rv);
185 void uploadStaticPreprocessBuffer(
RV_Render *rv);
186 void uploadGSplatAttribStream(
RV_Render *rv,
195 void bindGSplatGeometryAttribFormat(
198 const char *attrib_name);
219 bool myObjectSelected;
221 fpreal myGSplatsAlphaCulling;
225 exint myNumInstances;
const uint K_WORKGROUP_SIZE
A collection of Vulkan UBO, SSBO, and Image shader bindings (descriptor set)
virtual void draw(RE_RenderContext r, GR_RenderMode mode, GR_RenderFlags flags, GR_DrawParms draw_parms)=0
Normal drawing method. Only issue rendering commands.
static bool initShaders(RV_Instance *inst)
const uint K_RADIX_SORT_BINS
GT_API const UT_StringHolder cache_name
UT_UniquePtr< RV_ShaderBlock > block
Object that represents drawable geometry. This object holds vertex, instancing and index buffers for ...
std::variant< UT_Array< fpreal16 >, UT_Array< fpreal32 > > data
bool hasTransparency() const override
returns true if this drawable renders some transparent elements
Temporary container for either a RV_Render and an RE_Render.
virtual exint getNumGLPrimitives() const =0
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects.
set of parameters sent to GR_Primitive::update()
Base class for all light types.
virtual void getVkDecorConnectGroup(RV_PrimType render_prim, bool is_uv_view, int &out_connect_start, int &out_connect_num)
A mesh of unconnected points.
GLuint const GLchar * name
Handle to the main interface of Vulkan.
virtual void retireGeometry()
virtual void getPickConnectGroup(unsigned int pick_mode, GR_PickGeometry pick_geo, int &out_connect_start, int &out_connect_num)
GA_API const UT_StringHolder parms
Simple class for a mutli-integer cache tag.
virtual void update(RE_RenderContext r, const GT_PrimitiveHandle &primh, const GR_UpdateParms &p, const char *cache_name)=0
const char * className() const override
static void cleanupShaders()
virtual void viewUpdate(RE_RenderContext r, const GR_DisplayOption &opts, const char *cache_name, RE_CacheVersion geo_version, RE_CacheVersion select_version)