@@ -69,36 +69,37 @@ def render_camera(self, camera, rgb=True, depth=False, segmentation=False, norma
6969 self ._context .buffer .clear ()
7070
7171 # Render
72- if rgb or depth or normal :
73- retval = self ._renderer .render (
74- self ._context ._scene ,
75- self ._camera_targets [camera .uid ],
76- camera_node = self ._camera_nodes [camera .uid ],
77- env_separate_rigid = self ._context .env_separate_rigid ,
78- rgb = rgb ,
79- normal = normal ,
80- seg = False ,
81- depth = depth ,
82- plane_reflection = rgb and self ._context .plane_reflection ,
83- shadow = rgb and self ._context .shadow ,
84- )
85-
86- if segmentation :
87- seg_idxc_rgb_arr , * _ = self ._renderer .render (
88- self ._context ._scene ,
89- self ._camera_targets [camera .uid ],
90- camera_node = self ._camera_nodes [camera .uid ],
91- env_separate_rigid = self ._context .env_separate_rigid ,
92- rgb = False ,
93- normal = False ,
94- seg = True ,
95- depth = False ,
96- plane_reflection = False ,
97- shadow = False ,
98- )
99-
100- # Unset the context
101- self ._renderer .make_uncurrent ()
72+ try :
73+ if rgb or depth or normal :
74+ retval = self ._renderer .render (
75+ self ._context ._scene ,
76+ self ._camera_targets [camera .uid ],
77+ camera_node = self ._camera_nodes [camera .uid ],
78+ env_separate_rigid = self ._context .env_separate_rigid ,
79+ rgb = rgb ,
80+ normal = normal ,
81+ seg = False ,
82+ depth = depth ,
83+ plane_reflection = rgb and self ._context .plane_reflection ,
84+ shadow = rgb and self ._context .shadow ,
85+ )
86+
87+ if segmentation :
88+ seg_idxc_rgb_arr , * _ = self ._renderer .render (
89+ self ._context ._scene ,
90+ self ._camera_targets [camera .uid ],
91+ camera_node = self ._camera_nodes [camera .uid ],
92+ env_separate_rigid = self ._context .env_separate_rigid ,
93+ rgb = False ,
94+ normal = False ,
95+ seg = True ,
96+ depth = False ,
97+ plane_reflection = False ,
98+ shadow = False ,
99+ )
100+ finally :
101+ # Unset the context
102+ self ._renderer .make_uncurrent ()
102103 else :
103104 # Render
104105 if rgb or depth or normal :
0 commit comments