From 053638480e2a395cf676aad25753dd9e906c3f90 Mon Sep 17 00:00:00 2001
From: KOPANAS Georgios <georgios.kopanas@inria.fr>
Date: Tue, 27 Jul 2021 16:22:50 +0200
Subject: [PATCH] copyrights | readme

---
 CMakeLists.txt                                | 10 +++
 README.md                                     | 17 +++--
 apps/opengl_impl/CMakeLists.txt               | 10 +++
 apps/opengl_impl/main.cpp                     | 12 +++
 renderer/CMakeLists.txt                       |  9 +++
 renderer/Config.hpp                           | 11 +++
 renderer/DeepLearningPointViewOGL.cpp         | 11 +++
 renderer/DeepLearningPointViewOGL.hpp         | 11 +++
 renderer/PbnrScene.cpp                        | 11 +++
 renderer/PbnrScene.hpp                        | 11 +++
 renderer/RenderingUtilities.cpp               | 11 +++
 renderer/RenderingUtilities.hpp               | 11 +++
 renderer/p3d_rasterizer/bitmask.cuh           | 73 -------------------
 .../p3d_rasterizer/rasterization_utils.cuh    | 30 --------
 renderer/p3d_rasterizer/rasterize_points.cu   | 12 ++-
 renderer/p3d_rasterizer/rasterize_points.h    | 11 +++
 renderer/p3d_rasterizer/soft_depth_test.cpp   | 11 +++
 renderer/p3d_rasterizer/soft_depth_test.cu    | 11 +++
 renderer/p3d_rasterizer/soft_depth_test.h     | 11 +++
 19 files changed, 183 insertions(+), 111 deletions(-)
 delete mode 100644 renderer/p3d_rasterizer/bitmask.cuh

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 88398aa..570fce2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,3 +1,13 @@
+# Copyright (C) 2020, 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 sibr@inria.fr and/or George.Drettakis@inria.fr
+
+
 project(sibr_pbnr_all)
 
 add_subdirectory(apps)
diff --git a/README.md b/README.md
index 5eca369..e3e8821 100644
--- a/README.md
+++ b/README.md
@@ -41,17 +41,19 @@ Compiling **with** scene preprocessing:
 cd PROJECT_DIR
 git clone https://gitlab.inria.fr/sibr/sibr_core.git
 cd sibr_core/src/projects/
-git clone https://gitlab.inria.fr/jphilip/torchgl_interop.git
+git clone https://gitlab.inria.fr/sibr/torchgl_interop.git
 git clone https://gitlab.inria.fr/gkopanas/pointbased_neural_rendering.git
-git clone https://gitlab.inria.fr/sibr/projects/inside_out_deep_blending.git
 git clone https://gitlab.inria.fr/sibr/projects/fribr_framework.git
 git clone https://gitlab.inria.fr/sibr/projects/tfgl_interop.git
+git clone https://gitlab.inria.fr/sibr/projects/inside_out_deep_blending.git
 cd torchgl_interop
 git checkout origin/pbnr -b pbnr
 cd ../../../
 cmake.exe -S./ -B./build -DBUILD_DOCUMENTATION:BOOL=ON -DBUILD_IBR_DATASET_TOOLS:BOOL=ON -DBUILD_IBR_POINTBASED_NEURAL_RENDERING:BOOL=ON -DBUILD_IBR_TORCHGL_INTEROP:BOOL=ON -DBUILD_IBR_FRIBR_FRAMEWORK:BOOL=ON -DBUILD_IBR_INSIDE_OUT_DEEP_BLENDING:BOOL=ON -DBUILD_IBR_TFGL_INTEROP:BOOL=ON -G "Visual Studio 16 2019"
 cmake --build ./build --target ALL_BUILD --config RelWithDebInfo
 cmake --build ./build --target INSTALL --config RelWithDebInfo
+cp ./extlibs/libtorch/lib/caffe2_nvrtc.dll ./install/bin/
+cp ./extlibs/libtorch/lib/nvrtc* ./install/bin/
 ```
 
 Compiling **without** scene preprocessing:
@@ -59,7 +61,7 @@ Compiling **without** scene preprocessing:
 cd PROJECT_DIR
 git clone https://gitlab.inria.fr/sibr/sibr_core.git
 cd sibr_core/src/projects/
-git clone https://gitlab.inria.fr/jphilip/torchgl_interop.git
+git clone https://gitlab.inria.fr/sibr/torchgl_interop.git
 git clone https://gitlab.inria.fr/gkopanas/pointbased_neural_rendering.git
 cd torchgl_interop
 git checkout origin/pbnr -b pbnr
@@ -67,6 +69,8 @@ cd ../../../
 cmake.exe -S./ -B./build -DBUILD_DOCUMENTATION:BOOL=ON -DBUILD_IBR_DATASET_TOOLS:BOOL=ON -DBUILD_IBR_POINTBASED_NEURAL_RENDERING:BOOL=ON -DBUILD_IBR_TORCHGL_INTEROP:BOOL=ON -G "Visual Studio 16 2019"
 cmake --build ./build --target ALL_BUILD --config RelWithDebInfo
 cmake --build ./build --target INSTALL --config RelWithDebInfo
+cp ./extlibs/libtorch/lib/caffe2_nvrtc.dll ./install/bin/
+cp ./extlibs/libtorch/lib/nvrtc* ./install/bin/
 ```
 
 ## Training a Scene
@@ -135,8 +139,7 @@ cd ../bin/
 ```
 </details>
 
-<details>
-<summary> Create a json file from the following template, we will need it later on as input to the training script. </summary>
+ Create a json file from the following template, we will need it later on as input to the training script. 
 
 ```.json
 SCENE_JSON_FILE.json
@@ -152,7 +155,6 @@ SCENE_JSON_FILE.json
     ]
 }
 ```
-</details>
 
 <sup>1</sup>*For conciseness we mention only the files that we use, more files and folders exist.*
 
@@ -161,7 +163,7 @@ SCENE_JSON_FILE.json
 | | | |
 |:-------------------------:|:-------------------------:|:-------------------------:|
 |<img width="1604" src="./docs/museum_thumb.jpg">[Museum Input Files](https://repo-sam.inria.fr/fungraph/differentiable-multi-view/data/scenes/Museum-1_perview.zip)<br>[Pre-Trained Files](https://repo-sam.inria.fr/fungraph/differentiable-multi-view/data/scenes/museum_trained.zip)|  <img width="1604" src="./docs/hugo_thumb.jpg"> [Hugo Input Files]( https://repo-sam.inria.fr/fungraph/differentiable-multi-view/data/scenes/Hugo-1_perview.zip )<br>[Pre-Trained Files]( https://repo-sam.inria.fr/fungraph/differentiable-multi-view/data/scenes/hugo_trained.zip ) | <img width="1604" src="./docs/ponche_thumb.jpg"> [Ponche Input Files]( https://repo-sam.inria.fr/fungraph/differentiable-multi-view/data/scenes/Ponche_perview.zip)<br>[Pre-Trained Files]( https://repo-sam.inria.fr/fungraph/differentiable-multi-view/data/scenes/ponche_trained.zip ) |
-|<img width="1604" src="./docs/tree_thumb.jpg">[Tree Input Files]( https://repo-sam.inria.fr/fungraph/differentiable-multi-view/data/scenes/Tree-18_perview.zip)<br>[Pre-Trained Files]( https://repo-sam.inria.fr/fungraph/differentiable-multi-view/data/scenes/tree_trained.zip ) |  <img width="1604" src="./docs/street_thumb.jpg"> [Street Input Files]( https://repo-sam.inria.fr/fungraph/differentiable-multi-view/data/scenes/Street-10_perview.zip )<br>[Pre-Trained Files]( https://repo-sam.inria.fr/fungraph/differentiable-multi-view/data/scenes/street_trained.zip) | <img width="1604" src="./docs/stairs_thumb.jpg">[Stairs Input Files]( https://repo-sam.inria.fr/fungraph/differentiable-multi-view/data/scenes/Stairs-1_perview.zip)<br>[Pre-Trained Files]( https://repo-sam.inria.fr/fungraph/differentiable-multi-view/data/scenes/stairs_trained.zip)|
+|<img width="1604" src="./docs/tree_thumb.jpg">[Tree Input Files]( https://repo-sam.inria.fr/fungraph/differentiable-multi-view/data/scenes/Tree-18_perview.zip)<br>[Pre-Trained Files]( https://repo-sam.inria.fr/fungraph/differentiable-multi-view/data/scenes/tree_trained.zip ) |  <img width="1604" src="./docs/street_thumb.jpg"> [Street Input Files]( https://repo-sam.inria.fr/fungraph/differentiable-multi-view/data/scenes/Street-10_perview.zip )<br>[Pre-Trained Files]( https://repo-sam.inria.fr/fungraph/differentiable-multi-view/data/scenes/street_trained.zip) <br>[Pre-Trained Files (for small GPUs)]( https://repo-sam.inria.fr/fungraph/differentiable-multi-view/data/scenes/street_trained_small.zip) | <img width="1604" src="./docs/stairs_thumb.jpg">[Stairs Input Files]( https://repo-sam.inria.fr/fungraph/differentiable-multi-view/data/scenes/Stairs-1_perview.zip)<br>[Pre-Trained Files]( https://repo-sam.inria.fr/fungraph/differentiable-multi-view/data/scenes/stairs_trained.zip)|
 ||<img width="1604" src="./docs/truck_thumb.jpg">[Truck Images<sup>1</sup>]( https://repo-sam.inria.fr/fungraph/differentiable-multi-view/data/scenes/Truck_images.zip)<br>||
 
 <sup>1</sup> *We provide only images for Truck since providing the whole scene was not storage efficient. To use this scene you would need to run the pre-processing step locally.*
@@ -191,6 +193,7 @@ Now we can run a training session for a scene:
 ```.bash
 python train_full_pipeline.py -i SCENE_JSON_FILE.json -o run_name
 ```
+*For more details for the JSON file refer to "Create your own Scene" Section*
 
 ## Running the Interactive Renderer
 
diff --git a/apps/opengl_impl/CMakeLists.txt b/apps/opengl_impl/CMakeLists.txt
index 4829f75..6e2fdf5 100644
--- a/apps/opengl_impl/CMakeLists.txt
+++ b/apps/opengl_impl/CMakeLists.txt
@@ -1,3 +1,13 @@
+# Copyright (C) 2020, 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 sibr@inria.fr and/or George.Drettakis@inria.fr
+
+
 project(SIBR_pbnr_opengl_impl)
 
 file(GLOB SOURCES "*.cpp" "*.h" "*.hpp")
diff --git a/apps/opengl_impl/main.cpp b/apps/opengl_impl/main.cpp
index 7faf808..8a63603 100644
--- a/apps/opengl_impl/main.cpp
+++ b/apps/opengl_impl/main.cpp
@@ -1,3 +1,15 @@
+/*
+ * Copyright (C) 2020, 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 sibr@inria.fr and/or George.Drettakis@inria.fr
+ */
+
+
 #include <fstream>
 
 #include <core/graphics/Window.hpp>
diff --git a/renderer/CMakeLists.txt b/renderer/CMakeLists.txt
index 354771e..b3177b0 100644
--- a/renderer/CMakeLists.txt
+++ b/renderer/CMakeLists.txt
@@ -1,3 +1,12 @@
+# Copyright (C) 2020, 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 sibr@inria.fr and/or George.Drettakis@inria.fr
+
 set(SIBR_PROJECT "pbnr")
 project(sibr_${SIBR_PROJECT})
 
diff --git a/renderer/Config.hpp b/renderer/Config.hpp
index e360fea..a82d013 100644
--- a/renderer/Config.hpp
+++ b/renderer/Config.hpp
@@ -1,3 +1,14 @@
+/*
+ * Copyright (C) 2020, 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 sibr@inria.fr and/or George.Drettakis@inria.fr
+ */
+
 #pragma once
 
 # include <core/system/Config.hpp>
diff --git a/renderer/DeepLearningPointViewOGL.cpp b/renderer/DeepLearningPointViewOGL.cpp
index 993282c..749134c 100644
--- a/renderer/DeepLearningPointViewOGL.cpp
+++ b/renderer/DeepLearningPointViewOGL.cpp
@@ -1,3 +1,14 @@
+/*
+ * Copyright (C) 2020, 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 sibr@inria.fr and/or George.Drettakis@inria.fr
+ */
+
 #include "DeepLearningPointViewOGL.hpp"
 #include <torch/script.h>
 
diff --git a/renderer/DeepLearningPointViewOGL.hpp b/renderer/DeepLearningPointViewOGL.hpp
index b96b441..14330a8 100644
--- a/renderer/DeepLearningPointViewOGL.hpp
+++ b/renderer/DeepLearningPointViewOGL.hpp
@@ -1,3 +1,14 @@
+/*
+ * Copyright (C) 2020, 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 sibr@inria.fr and/or George.Drettakis@inria.fr
+ */
+
 #pragma once
 #include "Config.hpp"
 #include <core/view/MultiMeshManager.hpp>
diff --git a/renderer/PbnrScene.cpp b/renderer/PbnrScene.cpp
index e35740d..35813bd 100644
--- a/renderer/PbnrScene.cpp
+++ b/renderer/PbnrScene.cpp
@@ -1,3 +1,14 @@
+/*
+ * Copyright (C) 2020, 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 sibr@inria.fr and/or George.Drettakis@inria.fr
+ */
+
 #include "PbnrScene.hpp"
 #include "json.hpp"
 #include "projects/torchgl_interop/renderer/torchgl_interop.h"
diff --git a/renderer/PbnrScene.hpp b/renderer/PbnrScene.hpp
index 2e3f7ee..99f4c7b 100644
--- a/renderer/PbnrScene.hpp
+++ b/renderer/PbnrScene.hpp
@@ -1,3 +1,14 @@
+/*
+ * Copyright (C) 2020, 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 sibr@inria.fr and/or George.Drettakis@inria.fr
+ */
+
 #pragma once
 
 #include "Config.hpp"
diff --git a/renderer/RenderingUtilities.cpp b/renderer/RenderingUtilities.cpp
index 47fa9f9..d65c531 100644
--- a/renderer/RenderingUtilities.cpp
+++ b/renderer/RenderingUtilities.cpp
@@ -1,3 +1,14 @@
+/*
+ * Copyright (C) 2020, 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 sibr@inria.fr and/or George.Drettakis@inria.fr
+ */
+
 #include "RenderingUtilities.hpp"
 #include "projects/torchgl_interop/renderer/torchgl_interop.h"
 
diff --git a/renderer/RenderingUtilities.hpp b/renderer/RenderingUtilities.hpp
index 4178f97..65e3fd3 100644
--- a/renderer/RenderingUtilities.hpp
+++ b/renderer/RenderingUtilities.hpp
@@ -1,3 +1,14 @@
+/*
+ * Copyright (C) 2020, 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 sibr@inria.fr and/or George.Drettakis@inria.fr
+ */
+
 #include "torch/torch.h"
 #include "core/graphics/Camera.hpp"
 
diff --git a/renderer/p3d_rasterizer/bitmask.cuh b/renderer/p3d_rasterizer/bitmask.cuh
deleted file mode 100644
index b72ce81..0000000
--- a/renderer/p3d_rasterizer/bitmask.cuh
+++ /dev/null
@@ -1,73 +0,0 @@
-// Copyright (c) Facebook, Inc. and its affiliates. All rights reserved.
-
-#pragma once
-#define BINMASK_H
-
-// A BitMask represents a bool array of shape (H, W, N). We pack values into
-// the bits of unsigned ints; a single unsigned int has B = 32 bits, so to hold
-// all values we use H * W * (N / B) = H * W * D values. We want to store
-// BitMasks in shared memory, so we assume that the memory has already been
-// allocated for it elsewhere.
-class BitMask {
- public:
-  __device__ BitMask(unsigned int* data, int H, int W, int N)
-      : data(data), H(H), W(W), B(8 * sizeof(unsigned int)), D(N / B) {
-    // TODO: check if the data is null.
-    N = ceilf(N % 32); // take ceil incase N % 32 != 0
-    block_clear(); // clear the data
-  }
-
-  // Use all threads in the current block to clear all bits of this BitMask
-  __device__ void block_clear() {
-    for (int i = threadIdx.x; i < H * W * D; i += blockDim.x) {
-      data[i] = 0;
-    }
-    __syncthreads();
-  }
-
-  __device__ int _get_elem_idx(int y, int x, int d) {
-    return y * W * D + x * D + d / B;
-  }
-
-  __device__ int _get_bit_idx(int d) {
-    return d % B;
-  }
-
-  // Turn on a single bit (y, x, d)
-  __device__ void set(int y, int x, int d) {
-    int elem_idx = _get_elem_idx(y, x, d);
-    int bit_idx = _get_bit_idx(d);
-    const unsigned int mask = 1U << bit_idx;
-    atomicOr(data + elem_idx, mask);
-  }
-
-  // Turn off a single bit (y, x, d)
-  __device__ void unset(int y, int x, int d) {
-    int elem_idx = _get_elem_idx(y, x, d);
-    int bit_idx = _get_bit_idx(d);
-    const unsigned int mask = ~(1U << bit_idx);
-    atomicAnd(data + elem_idx, mask);
-  }
-
-  // Check whether the bit (y, x, d) is on or off
-  __device__ bool get(int y, int x, int d) {
-    int elem_idx = _get_elem_idx(y, x, d);
-    int bit_idx = _get_bit_idx(d);
-    return (data[elem_idx] >> bit_idx) & 1U;
-  }
-
-  // Compute the number of bits set in the row (y, x, :)
-  __device__ int count(int y, int x) {
-    int total = 0;
-    for (int i = 0; i < D; ++i) {
-      int elem_idx = y * W * D + x * D + i;
-      unsigned int elem = data[elem_idx];
-      total += __popc(elem);
-    }
-    return total;
-  }
-
- private:
-  unsigned int* data;
-  int H, W, B, D;
-};
diff --git a/renderer/p3d_rasterizer/rasterization_utils.cuh b/renderer/p3d_rasterizer/rasterization_utils.cuh
index ccebda9..ec5f70a 100644
--- a/renderer/p3d_rasterizer/rasterization_utils.cuh
+++ b/renderer/p3d_rasterizer/rasterization_utils.cuh
@@ -2,9 +2,6 @@
 
 #pragma once
 
-// Given a pixel coordinate 0 <= i < S, convert it to a normalized device
-// coordinate in the range [-1, 1]. We divide the NDC range into S evenly-sized
-// pixels, and assume that each pixel falls in the *center* of its range.
 __device__ inline float PixToNdc(int i, int S) {
   // NDC x-offset + (i * pixel_width + half_pixel_width)
   return -1 + (2 * i + 1.0f) / S;
@@ -14,19 +11,12 @@ __device__ inline float NdcToPix(float i, int S) {
   return ((i + 1.0)*S - 1.0)/2.0;
 }
 
-// The maximum number of points per pixel that we can return. Since we use
-// thread-local arrays to hold and sort points, the maximum size of the array
-// needs to be known at compile time. There might be some fancy template magic
-// we could use to make this more dynamic, but for now just fix a constant.
-// TODO: is 8 enough? Would increasing have performance considerations?
 const int32_t kMaxPointsPerPixel = 101;
 const int32_t kMaxPointPerPixelLocal = 101;
 
 template <typename T>
 __device__ inline void BubbleSort(T* arr, int n) {
   bool already_sorted;
-  // Bubble sort. We only use it for tiny thread-local arrays (n < 8); in this
-  // regime we care more about warp divergence than computational complexity.
   for (int i = 0; i < n - 1; ++i) {
     already_sorted=true;
     for (int j = 0; j < n - i - 1; ++j) {
@@ -42,23 +32,3 @@ __device__ inline void BubbleSort(T* arr, int n) {
   }
 }
 
-__device__ inline void BubbleSort2(int32_t* arr, const float* points, int n) {
-  bool already_sorted;
-  // Bubble sort. We only use it for tiny thread-local arrays (n < 8); in this
-  // regime we care more about warp divergence than computational complexity.
-  for (int i = 0; i < n - 1; ++i) {
-    already_sorted=true;
-    for (int j = 0; j < n - i - 1; ++j) {
-      float p_j0_z = points[arr[j]*3 + 2];
-      float p_j1_z = points[arr[j+1]*3 + 2];
-      if (p_j1_z < p_j0_z) {
-        already_sorted = false;
-        int32_t temp = arr[j];
-        arr[j] = arr[j + 1];
-        arr[j + 1] = temp;
-      }
-    }
-    if (already_sorted)
-        break;
-  }
-}
diff --git a/renderer/p3d_rasterizer/rasterize_points.cu b/renderer/p3d_rasterizer/rasterize_points.cu
index 3d95b95..943496a 100644
--- a/renderer/p3d_rasterizer/rasterize_points.cu
+++ b/renderer/p3d_rasterizer/rasterize_points.cu
@@ -1,3 +1,14 @@
+/*
+ * Copyright (C) 2020, 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 sibr@inria.fr and/or George.Drettakis@inria.fr
+ */
+
 #include <math.h>
 #include <torch/torch.h>
 #include <cstdio>
@@ -5,7 +16,6 @@
 #include <iostream>
 #include <tuple>
 #include <stdio.h>
-#include "bitmask.cuh"
 #include "rasterization_utils.cuh"
 
 
diff --git a/renderer/p3d_rasterizer/rasterize_points.h b/renderer/p3d_rasterizer/rasterize_points.h
index cf1ab39..41b9a9c 100644
--- a/renderer/p3d_rasterizer/rasterize_points.h
+++ b/renderer/p3d_rasterizer/rasterize_points.h
@@ -1,3 +1,14 @@
+/*
+ * Copyright (C) 2020, 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 sibr@inria.fr and/or George.Drettakis@inria.fr
+ */
+
 #pragma once
 #include <torch/torch.h>
 #include <cstdio>
diff --git a/renderer/p3d_rasterizer/soft_depth_test.cpp b/renderer/p3d_rasterizer/soft_depth_test.cpp
index 5a72009..d333b7a 100644
--- a/renderer/p3d_rasterizer/soft_depth_test.cpp
+++ b/renderer/p3d_rasterizer/soft_depth_test.cpp
@@ -1,3 +1,14 @@
+/*
+ * Copyright (C) 2020, 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 sibr@inria.fr and/or George.Drettakis@inria.fr
+ */
+
 #pragma once
 
 #include "soft_depth_test.h"
diff --git a/renderer/p3d_rasterizer/soft_depth_test.cu b/renderer/p3d_rasterizer/soft_depth_test.cu
index c35b457..668132d 100644
--- a/renderer/p3d_rasterizer/soft_depth_test.cu
+++ b/renderer/p3d_rasterizer/soft_depth_test.cu
@@ -1,3 +1,14 @@
+/*
+ * Copyright (C) 2020, 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 sibr@inria.fr and/or George.Drettakis@inria.fr
+ */
+
 #include <stdio.h>
 #include <torch/torch.h>
 #include "rasterization_utils.cuh"
diff --git a/renderer/p3d_rasterizer/soft_depth_test.h b/renderer/p3d_rasterizer/soft_depth_test.h
index 4f68a2a..1474fad 100644
--- a/renderer/p3d_rasterizer/soft_depth_test.h
+++ b/renderer/p3d_rasterizer/soft_depth_test.h
@@ -1,3 +1,14 @@
+/*
+ * Copyright (C) 2020, 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 sibr@inria.fr and/or George.Drettakis@inria.fr
+ */
+
 #pragma once
 
 #include <torch/torch.h>
-- 
GitLab