/* * The original code is under the following copyright: * 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_GS.md file. * * For inquiries contact george.drettakis@inria.fr * * The modifications of the code are under the following copyright: * Copyright (C) 2024, University of Liege, KAUST and University of Oxford * TELIM research group, http://www.telecom.ulg.ac.be/ * IVUL research group, https://ivul.kaust.edu.sa/ * VGG research group, https://www.robots.ox.ac.uk/~vgg/ * All rights reserved. * The modifications are under the LICENSE.md file. * * For inquiries contact jan.held@uliege.be */ #pragma once #include #include #include #include std::tuple RasterizetrianglesCUDA( const torch::Tensor& background, const torch::Tensor& triangles_points, const torch::Tensor& sigma, const torch::Tensor& num_points_per_triangle, const torch::Tensor& cumsum_of_points_per_triangle, const torch::Tensor& colors, const torch::Tensor& opacity, torch::Tensor& scaling, torch::Tensor& density_factor, const torch::Tensor& viewmatrix, const torch::Tensor& projmatrix, const int number_of_points, const float tan_fovx, const float tan_fovy, const int image_height, const int image_width, const torch::Tensor& sh, const int degree, const torch::Tensor& campos, const bool prefiltered, const bool debug); std::tuple RasterizetrianglesBackwardCUDA( const torch::Tensor& background, const torch::Tensor& triangles_points, const torch::Tensor& sigma, const torch::Tensor& num_points_per_triangle, const torch::Tensor& cumsum_of_points_per_triangle, const torch::Tensor& radii, const torch::Tensor& colors, const torch::Tensor& viewmatrix, const torch::Tensor& projmatrix, const int number_of_points, const float tan_fovx, const float tan_fovy, const torch::Tensor& dL_dout_color, const torch::Tensor& dL_dout_others, const torch::Tensor& sh, const int degree, const torch::Tensor& campos, const torch::Tensor& geomBuffer, const int R, const torch::Tensor& binningBuffer, const torch::Tensor& imageBuffer, const bool debug); torch::Tensor markVisible( torch::Tensor& means3D, torch::Tensor& viewmatrix, torch::Tensor& projmatrix); std::tuple ComputeRelocationCUDA( torch::Tensor& opacity_old, torch::Tensor& scale_old, torch::Tensor& N, torch::Tensor& binoms, const int n_max);