|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef CUDA_RASTERIZER_H_INCLUDED |
|
#define CUDA_RASTERIZER_H_INCLUDED |
|
|
|
#include <vector> |
|
#include <functional> |
|
|
|
namespace CudaRasterizer |
|
{ |
|
class Rasterizer |
|
{ |
|
public: |
|
|
|
static void markVisible( |
|
int P, |
|
float* means3D, |
|
float* viewmatrix, |
|
float* projmatrix, |
|
bool* present); |
|
|
|
static int forward( |
|
std::function<char* (size_t)> geometryBuffer, |
|
std::function<char* (size_t)> binningBuffer, |
|
std::function<char* (size_t)> 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* opacities, |
|
const float* scales, |
|
const float scale_modifier, |
|
const float* rotations, |
|
const float* cov3D_precomp, |
|
const float* viewmatrix, |
|
const float* projmatrix, |
|
const float* cam_pos, |
|
const float tan_fovx, float tan_fovy, |
|
const bool prefiltered, |
|
float* out_color, |
|
int* radii = nullptr, |
|
bool debug = false); |
|
|
|
static void backward( |
|
const int P, int D, int M, int R, |
|
const float* background, |
|
const int width, int height, |
|
const float* means3D, |
|
const float* shs, |
|
const float* colors_precomp, |
|
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, |
|
float* dL_dmean2D, |
|
float* dL_dconic, |
|
float* dL_dopacity, |
|
float* dL_dcolor, |
|
float* dL_dmean3D, |
|
float* dL_dcov3D, |
|
float* dL_dsh, |
|
float* dL_dscale, |
|
float* dL_drot, |
|
bool debug); |
|
}; |
|
}; |
|
|
|
#endif |