File size: 2,849 Bytes
c75b162 | 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 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | /*
* 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 <torch/extension.h>
#include <cstdio>
#include <tuple>
#include <string>
std::tuple<int, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor>
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<torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor>
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<torch::Tensor, torch::Tensor> ComputeRelocationCUDA(
torch::Tensor& opacity_old,
torch::Tensor& scale_old,
torch::Tensor& N,
torch::Tensor& binoms,
const int n_max); |