1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
- /*
- * 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_FORWARD_H_INCLUDED
- #define CUDA_RASTERIZER_FORWARD_H_INCLUDED
- #include <cuda.h>
- #include "cuda_runtime.h"
- #include "device_launch_parameters.h"
- #define GLM_FORCE_CUDA
- #include <glm/glm.hpp>
- namespace FORWARD
- {
- // Perform initial steps for each Gaussian prior to rasterization.
- void preprocess(int P, int D, int M,
- const float* orig_points,
- const glm::vec3* scales,
- const float scale_modifier,
- const glm::vec4* rotations,
- const float* opacities,
- const float* shs,
- bool* clamped,
- const float* cov3D_precomp,
- const float* colors_precomp,
- const float* viewmatrix,
- const float* projmatrix,
- const glm::vec3* cam_pos,
- const int W, int H,
- const float focal_x, float focal_y,
- const float tan_fovx, float tan_fovy,
- int* radii,
- float2* points_xy_image,
- float* depths,
- float* cov3Ds,
- float* colors,
- float4* conic_opacity,
- const dim3 grid,
- uint32_t* tiles_touched,
- bool prefiltered);
- // Main rasterization method.
- void render(
- const dim3 grid, dim3 block,
- const uint2* ranges,
- const uint32_t* point_list,
- int W, int H,
- const float2* points_xy_image,
- const float* features,
- const float4* conic_opacity,
- float* final_T,
- uint32_t* n_contrib,
- const float* bg_color,
- float* out_color);
- }
- #endif
|