diff --git a/projects/implicitron_trainer/tests/utils.py b/projects/implicitron_trainer/tests/utils.py index c31a4938..a0cf614b 100644 --- a/projects/implicitron_trainer/tests/utils.py +++ b/projects/implicitron_trainer/tests/utils.py @@ -7,7 +7,6 @@ import contextlib import logging import re -from typing import List @contextlib.contextmanager diff --git a/pytorch3d/renderer/__init__.py b/pytorch3d/renderer/__init__.py index 415fc40e..07edc238 100644 --- a/pytorch3d/renderer/__init__.py +++ b/pytorch3d/renderer/__init__.py @@ -65,11 +65,6 @@ from .mesh import ( TexturesVertex, ) -try: - from .opengl import EGLContext, global_device_context_store, MeshRasterizerOpenGL -except (ImportError, ModuleNotFoundError): - pass # opengl or pycuda.gl not available, or pytorch3_opengl not in TARGETS. - from .points import ( AlphaCompositor, NormWeightedCompositor, diff --git a/pytorch3d/renderer/mesh/renderer.py b/pytorch3d/renderer/mesh/renderer.py index f44c1bd3..98576a9f 100644 --- a/pytorch3d/renderer/mesh/renderer.py +++ b/pytorch3d/renderer/mesh/renderer.py @@ -10,8 +10,6 @@ import torch import torch.nn as nn from ...structures.meshes import Meshes -from .rasterizer import MeshRasterizer - # A renderer class should be initialized with a # function for rasterization and a function for shading. @@ -32,11 +30,11 @@ from .rasterizer import MeshRasterizer class MeshRenderer(nn.Module): """ A class for rendering a batch of heterogeneous meshes. The class should - be initialized with a rasterizer and shader class which each have a forward - function. + be initialized with a rasterizer (a MeshRasterizer or a MeshRasterizerOpenGL) + and shader class which each have a forward function. """ - def __init__(self, rasterizer: MeshRasterizer, shader) -> None: + def __init__(self, rasterizer, shader) -> None: super().__init__() self.rasterizer = rasterizer self.shader = shader @@ -69,8 +67,8 @@ class MeshRenderer(nn.Module): class MeshRendererWithFragments(nn.Module): """ A class for rendering a batch of heterogeneous meshes. The class should - be initialized with a rasterizer and shader class which each have a forward - function. + be initialized with a rasterizer (a MeshRasterizer or a MeshRasterizerOpenGL) + and shader class which each have a forward function. In the forward pass this class returns the `fragments` from which intermediate values such as the depth map can be easily extracted e.g. @@ -80,7 +78,7 @@ class MeshRendererWithFragments(nn.Module): depth = fragments.zbuf """ - def __init__(self, rasterizer: MeshRasterizer, shader) -> None: + def __init__(self, rasterizer, shader) -> None: super().__init__() self.rasterizer = rasterizer self.shader = shader diff --git a/pytorch3d/renderer/opengl/rasterizer_opengl.py b/pytorch3d/renderer/opengl/rasterizer_opengl.py index b1cf9b50..cf61d0d7 100644 --- a/pytorch3d/renderer/opengl/rasterizer_opengl.py +++ b/pytorch3d/renderer/opengl/rasterizer_opengl.py @@ -130,8 +130,9 @@ class MeshRasterizerOpenGL(nn.Module): Fragments output by MeshRasterizerOpenGL and MeshRasterizer should have near identical pix_to_face, bary_coords and zbuf. However, MeshRasterizerOpenGL does not - return Fragments.dists which is only relevant to SoftPhongShader which doesn't work - with MeshRasterizerOpenGL (because it is not differentiable). + return Fragments.dists which is only relevant to SoftPhongShader and + SoftSilhouetteShader. These do not work with MeshRasterizerOpenGL (because it is + not differentiable). """ def __init__( diff --git a/tests/test_rasterize_rectangle_images.py b/tests/test_rasterize_rectangle_images.py index 930c2220..7a41a84c 100644 --- a/tests/test_rasterize_rectangle_images.py +++ b/tests/test_rasterize_rectangle_images.py @@ -17,7 +17,6 @@ from pytorch3d.renderer import ( look_at_view_transform, Materials, MeshRasterizer, - MeshRasterizerOpenGL, MeshRenderer, PointLights, RasterizationSettings, @@ -30,6 +29,7 @@ from pytorch3d.renderer.mesh.rasterize_meshes import ( rasterize_meshes_python, ) from pytorch3d.renderer.mesh.rasterizer import Fragments +from pytorch3d.renderer.opengl import MeshRasterizerOpenGL from pytorch3d.renderer.points import ( AlphaCompositor, PointsRasterizationSettings, diff --git a/tests/test_rasterizer.py b/tests/test_rasterizer.py index ee0cd3f2..a47b361d 100644 --- a/tests/test_rasterizer.py +++ b/tests/test_rasterizer.py @@ -15,7 +15,6 @@ from pytorch3d.renderer import ( FoVPerspectiveCameras, look_at_view_transform, MeshRasterizer, - MeshRasterizerOpenGL, OrthographicCameras, PerspectiveCameras, PointsRasterizationSettings, @@ -27,6 +26,7 @@ from pytorch3d.renderer.opengl.rasterizer_opengl import ( _check_raster_settings, _convert_meshes_to_gl_ndc, _parse_and_verify_image_size, + MeshRasterizerOpenGL, ) from pytorch3d.structures import Pointclouds from pytorch3d.structures.meshes import Meshes diff --git a/tests/test_render_meshes.py b/tests/test_render_meshes.py index d7c52a52..cb1e4081 100644 --- a/tests/test_render_meshes.py +++ b/tests/test_render_meshes.py @@ -23,7 +23,6 @@ from pytorch3d.renderer import ( look_at_view_transform, Materials, MeshRasterizer, - MeshRasterizerOpenGL, MeshRenderer, MeshRendererWithFragments, OrthographicCameras, @@ -44,6 +43,7 @@ from pytorch3d.renderer.mesh.shader import ( SplatterPhongShader, TexturedSoftPhongShader, ) +from pytorch3d.renderer.opengl import MeshRasterizerOpenGL from pytorch3d.structures.meshes import ( join_meshes_as_batch, join_meshes_as_scene, diff --git a/tests/test_render_multigpu.py b/tests/test_render_multigpu.py index 5e9be7a2..3f77c961 100644 --- a/tests/test_render_multigpu.py +++ b/tests/test_render_multigpu.py @@ -14,7 +14,6 @@ from pytorch3d.renderer import ( HardGouraudShader, Materials, MeshRasterizer, - MeshRasterizerOpenGL, MeshRenderer, PointLights, PointsRasterizationSettings, @@ -26,6 +25,7 @@ from pytorch3d.renderer import ( TexturesVertex, ) from pytorch3d.renderer.cameras import FoVPerspectiveCameras, look_at_view_transform +from pytorch3d.renderer.opengl import MeshRasterizerOpenGL from pytorch3d.structures import Meshes, Pointclouds from pytorch3d.utils.ico_sphere import ico_sphere