diff --git a/pyrender/offscreen.py b/pyrender/offscreen.py index 3401429..c3ca510 100644 --- a/pyrender/offscreen.py +++ b/pyrender/offscreen.py @@ -21,10 +21,11 @@ class OffscreenRenderer(object): The size of screen-space points in pixels. """ - def __init__(self, viewport_width, viewport_height, point_size=1.0): + def __init__(self, viewport_width, viewport_height, point_size=1.0, line_width=1.0): self.viewport_width = viewport_width self.viewport_height = viewport_height self.point_size = point_size + self.line_width = line_width self._platform = None self._renderer = None @@ -148,7 +149,7 @@ def _create(self): )) self._platform.init_context() self._platform.make_current() - self._renderer = Renderer(self.viewport_width, self.viewport_height) + self._renderer = Renderer(self.viewport_width, self.viewport_height, self.point_size, self.line_width) def __del__(self): try: diff --git a/pyrender/renderer.py b/pyrender/renderer.py index f212907..b6c7cf3 100644 --- a/pyrender/renderer.py +++ b/pyrender/renderer.py @@ -37,7 +37,7 @@ class Renderer(object): Size of points in pixels. Defaults to 1.0. """ - def __init__(self, viewport_width, viewport_height, point_size=1.0): + def __init__(self, viewport_width, viewport_height, point_size=1.0, line_width=1.0): self.dpscale = 1 # Scaling needed on retina displays if sys.platform == 'darwin': @@ -46,6 +46,7 @@ def __init__(self, viewport_width, viewport_height, point_size=1.0): self.viewport_width = viewport_width self.viewport_height = viewport_height self.point_size = point_size + self.line_width = line_width # Optional framebuffer for offscreen renders self._main_fb = None @@ -599,6 +600,12 @@ def _bind_and_draw_primitive(self, primitive, pose, program, flags): if primitive.mode == GLTF.POINTS: glEnable(GL_PROGRAM_POINT_SIZE) glPointSize(self.point_size) + + # Set line width if needed + glDisable(GL_LINE_SMOOTH) + if primitive.mode == GLTF.LINES or primitive.mode == GLTF.LINE_LOOP or primitive.mode == GLTF.LINE_STRIP: + glEnable(GL_LINE_SMOOTH) + glLineWidth(self.line_width) # Render mesh n_instances = 1