mirror of
https://github.com/facebookresearch/pytorch3d.git
synced 2025-12-20 06:10:34 +08:00
pulsar interface unification.
Summary: This diff builds on top of the `pulsar integration` diff to provide a unified interface for the existing PyTorch3D point renderer and Pulsar. For more information about the pulsar backend, see the release notes and the paper (https://arxiv.org/abs/2004.07484). For information on how to use the backend, see the point cloud rendering notebook and the examples in the folder docs/examples. The unified interfaces are completely consistent. Switching the render backend is as easy as using `renderer = PulsarPointsRenderer(rasterizer=rasterizer).to(device)` instead of `renderer = PointsRenderer(rasterizer=rasterizer, compositor=compositor)` and adding the `gamma` parameter to the forward function. All PyTorch3D camera types are supported as far as possible; keyword arguments are properly forwarded to the camera. The `PerspectiveCamera` and `OrthographicCamera` require znear and zfar as additional parameters for the forward pass. Reviewed By: nikhilaravi Differential Revision: D21421443 fbshipit-source-id: 4aa0a83a419592d9a0bb5d62486a1cdea9d73ce6
This commit is contained in:
committed by
Facebook GitHub Bot
parent
b19fe1de2f
commit
960fd6d8b6
20
setup.py
20
setup.py
@@ -13,13 +13,8 @@ from torch.utils.cpp_extension import CUDA_HOME, CppExtension, CUDAExtension
|
||||
def get_extensions():
|
||||
this_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
extensions_dir = os.path.join(this_dir, "pytorch3d", "csrc")
|
||||
|
||||
main_source = os.path.join(extensions_dir, "ext.cpp")
|
||||
sources = glob.glob(os.path.join(extensions_dir, "**", "*.cpp"))
|
||||
source_cuda = glob.glob(os.path.join(extensions_dir, "**", "*.cu"))
|
||||
|
||||
sources = [main_source] + sources
|
||||
|
||||
sources = glob.glob(os.path.join(extensions_dir, "**", "*.cpp"), recursive=True)
|
||||
source_cuda = glob.glob(os.path.join(extensions_dir, "**", "*.cu"), recursive=True)
|
||||
extension = CppExtension
|
||||
|
||||
extra_compile_args = {"cxx": ["-std=c++14"]}
|
||||
@@ -30,7 +25,18 @@ def get_extensions():
|
||||
extension = CUDAExtension
|
||||
sources += source_cuda
|
||||
define_macros += [("WITH_CUDA", None)]
|
||||
cub_home = os.environ.get("CUB_HOME", None)
|
||||
if cub_home is None:
|
||||
raise Exception(
|
||||
"The environment variable `CUB_HOME` was not found. "
|
||||
"NVIDIA CUB is required for compilation and can be downloaded "
|
||||
"from `https://github.com/NVIDIA/cub/releases`. You can unpack "
|
||||
"it to a location of your choice and set the environment variable "
|
||||
"`CUB_HOME` to the folder containing the `CMakeListst.txt` file."
|
||||
)
|
||||
nvcc_args = [
|
||||
"-I%s" % (os.path.realpath(cub_home).replace("\\ ", " ")),
|
||||
"-std=c++14",
|
||||
"-DCUDA_HAS_FP16=1",
|
||||
"-D__CUDA_NO_HALF_OPERATORS__",
|
||||
"-D__CUDA_NO_HALF_CONVERSIONS__",
|
||||
|
||||
Reference in New Issue
Block a user