/* * 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 #include "cuda_runtime.h" #include "device_launch_parameters.h" #define GLM_FORCE_CUDA #include 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::vec2* scales, const float scale_modifier, const glm::vec4* rotations, const float* opacities, const float* shs, bool* clamped, const float* transMat_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* isovals, // float3* normals, float* transMats, float* colors, float4* normal_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, float focal_x, float focal_y, const float2* points_xy_image, const float* features, const float* transMats, const float* depths, const float4* normal_opacity, float* final_T, uint32_t* n_contrib, const float* bg_color, float* out_color, float* out_others); } #endif