Alpha channel to return the mask

Summary: Updated the alpha channel in the `hard_rgb_blend` function to return the mask of the pixels which have overlapping mesh faces.

Reviewed By: bottler

Differential Revision: D29001604

fbshipit-source-id: 22a2173d769f2d3ad34892d68ceb628f073bca22
This commit is contained in:
Nikhila Ravi
2021-06-09 15:06:03 -07:00
committed by Facebook GitHub Bot
parent ac6c07fa43
commit a15c33a3cc
3 changed files with 12 additions and 3 deletions

View File

@@ -184,8 +184,8 @@ class TestBlending(TestCaseMixin, unittest.TestCase):
channel_color = blend_params.background_color[i]
self.assertTrue(images[~is_foreground][..., i].eq(channel_color).all())
# Examine the alpha channel is correct
self.assertTrue(images[..., 3].eq(1).all())
# Examine the alpha channel
self.assertClose(images[..., 3], (pix_to_face[..., 0] >= 0).float())
def test_sigmoid_alpha_blend_manual_gradients(self):
# Create dummy outputs of rasterization

View File

@@ -125,6 +125,10 @@ class TestRenderMeshes(TestCaseMixin, unittest.TestCase):
)
images, fragments = renderer(sphere_mesh)
self.assertClose(fragments.zbuf, rasterizer(sphere_mesh).zbuf)
# Check the alpha channel is the mask
self.assertClose(
images[..., -1], (fragments.pix_to_face[..., 0] >= 0).float()
)
else:
renderer = MeshRenderer(rasterizer=rasterizer, shader=shader)
images = renderer(sphere_mesh)
@@ -165,6 +169,10 @@ class TestRenderMeshes(TestCaseMixin, unittest.TestCase):
self.assertClose(
fragments.zbuf, rasterizer(sphere_mesh, lights=lights).zbuf
)
# Check the alpha channel is the mask
self.assertClose(
images[..., -1], (fragments.pix_to_face[..., 0] >= 0).float()
)
else:
phong_renderer = MeshRenderer(
rasterizer=rasterizer, shader=phong_shader