diff --git a/cura/XRayPass.py b/cura/XRayPass.py index edc20ce62d..eb5f33cea2 100644 --- a/cura/XRayPass.py +++ b/cura/XRayPass.py @@ -29,7 +29,7 @@ class XRayPass(RenderPass): batch = RenderBatch(self._shader, type = RenderBatch.RenderType.NoType, backface_cull = False, blend_mode = RenderBatch.BlendMode.Additive) for node in DepthFirstIterator(self._scene.getRoot()): if isinstance(node, CuraSceneNode) and node.getMeshData() and node.isVisible(): - batch.addItem(node.getWorldTransformation(), node.getMeshData()) + batch.addItem(node.getWorldTransformation(copy = False), node.getMeshData()) self.bind() diff --git a/plugins/SolidView/SolidView.py b/plugins/SolidView/SolidView.py index e1789e34ed..b65c75aaa1 100644 --- a/plugins/SolidView/SolidView.py +++ b/plugins/SolidView/SolidView.py @@ -187,7 +187,9 @@ class SolidView(View): else: self._enabled_shader.setUniformValue("u_overhangAngle", math.cos(math.radians(0))) disabled_batch = renderer.createRenderBatch(shader = self._disabled_shader) + normal_object_batch = renderer.createRenderBatch(shader = self._enabled_shader) renderer.addRenderBatch(disabled_batch) + renderer.addRenderBatch(normal_object_batch) for node in DepthFirstIterator(scene.getRoot()): if node.render(renderer): continue @@ -246,7 +248,7 @@ class SolidView(View): ] renderer.queueNode(node, shader = self._support_mesh_shader, uniforms = uniforms) else: - renderer.queueNode(node, shader = self._enabled_shader, uniforms = uniforms) + normal_object_batch.addItem(node.getWorldTransformation(copy=False), node.getMeshData(), uniforms=uniforms) if node.callDecoration("isGroup") and Selection.isSelected(node): renderer.queueNode(scene.getRoot(), mesh = node.getBoundingBoxMesh(), mode = RenderBatch.RenderMode.LineLoop)