/* * Copyright (C) 2023, Inria * GRAPHDECO research group, https://team.inria.fr/graphdeco * All rights reserved. * * This software is free for non-commercial, research and evaluation use * under the terms of the LICENSE.md file. * * For inquiries contact george.drettakis@inria.fr */ #ifndef CUDA_RASTERIZER_H_INCLUDED #define CUDA_RASTERIZER_H_INCLUDED #include #include namespace CudaRasterizer { class Rasterizer { public: static void markVisible( int P, float* means3D, float* viewmatrix, float* projmatrix, bool* present); static int forward( std::function geometryBuffer, std::function binningBuffer, std::function imageBuffer, const int P, int D, int M, const float* background, const int width, int height, const float* means3D, const float* shs, const float* colors_precomp, const float* language_feature_precomp, const float* language_feature_instance_precomp, const float* opacities, const float* scales, const float scale_modifier, const float* rotations, const float* cov3D_precomp, const float* all_map, const float* viewmatrix, const float* projmatrix, const float* cam_pos, const float tan_fovx, float tan_fovy, const bool prefiltered, float* out_color, float* out_language_feature, float* out_language_feature_instance, int* radii, int* out_observe, float* out_all_map, float* out_plane_depth, const bool render_geo, bool debug = false, bool include_feature = false); static void backward( const int P, int D, int M, int R, const float* background, const float* all_map_pixels, const int width, int height, const float* means3D, const float* shs, const float* colors_precomp, const float* language_feature_precomp, const float* language_feature_instance_precomp, const float* all_maps, const float* scales, const float scale_modifier, const float* rotations, const float* cov3D_precomp, const float* viewmatrix, const float* projmatrix, const float* campos, const float tan_fovx, float tan_fovy, const int* radii, char* geom_buffer, char* binning_buffer, char* image_buffer, const float* dL_dpix, const float* dL_dpix_F, const float* dL_dpix_F_instance, const float* dL_dout_all_map, const float* dL_dout_plane_depth, float* dL_dmean2D, float* dL_dmean2D_abs, float* dL_dconic, float* dL_dopacity, float* dL_dcolor, float* dL_dlanguage_feature, float* dL_dlanguage_feature_instance, float* dL_dmean3D, float* dL_dcov3D, float* dL_dsh, float* dL_dscale, float* dL_drot, float* dL_dall_map, const bool render_geo, bool debug, bool include_feature); }; }; #endif