From 3e7de2e5154cb3de52af1fd33277cf534581ad53 Mon Sep 17 00:00:00 2001 From: Milin Kodnongbua Date: Sat, 14 Jan 2023 16:03:37 -0800 Subject: [PATCH 1/2] Support line width --- pyrender/renderer.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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 From a58aa90ff8a91873224c58208c4cf76f780bcb3a Mon Sep 17 00:00:00 2001 From: Milin Kodnongbua Date: Sat, 14 Jan 2023 16:22:01 -0800 Subject: [PATCH 2/2] Add line width to offscreen --- pyrender/offscreen.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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: