mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-06 22:47:29 -06:00
Put all objects normal models in a single render batch
THis speeds things up a fair bit for build plates with multiple models CURA-7106
This commit is contained in:
parent
03e66beafd
commit
b1fe4793e4
2 changed files with 4 additions and 2 deletions
|
@ -29,7 +29,7 @@ class XRayPass(RenderPass):
|
||||||
batch = RenderBatch(self._shader, type = RenderBatch.RenderType.NoType, backface_cull = False, blend_mode = RenderBatch.BlendMode.Additive)
|
batch = RenderBatch(self._shader, type = RenderBatch.RenderType.NoType, backface_cull = False, blend_mode = RenderBatch.BlendMode.Additive)
|
||||||
for node in DepthFirstIterator(self._scene.getRoot()):
|
for node in DepthFirstIterator(self._scene.getRoot()):
|
||||||
if isinstance(node, CuraSceneNode) and node.getMeshData() and node.isVisible():
|
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()
|
self.bind()
|
||||||
|
|
||||||
|
|
|
@ -187,7 +187,9 @@ class SolidView(View):
|
||||||
else:
|
else:
|
||||||
self._enabled_shader.setUniformValue("u_overhangAngle", math.cos(math.radians(0)))
|
self._enabled_shader.setUniformValue("u_overhangAngle", math.cos(math.radians(0)))
|
||||||
disabled_batch = renderer.createRenderBatch(shader = self._disabled_shader)
|
disabled_batch = renderer.createRenderBatch(shader = self._disabled_shader)
|
||||||
|
normal_object_batch = renderer.createRenderBatch(shader = self._enabled_shader)
|
||||||
renderer.addRenderBatch(disabled_batch)
|
renderer.addRenderBatch(disabled_batch)
|
||||||
|
renderer.addRenderBatch(normal_object_batch)
|
||||||
for node in DepthFirstIterator(scene.getRoot()):
|
for node in DepthFirstIterator(scene.getRoot()):
|
||||||
if node.render(renderer):
|
if node.render(renderer):
|
||||||
continue
|
continue
|
||||||
|
@ -246,7 +248,7 @@ class SolidView(View):
|
||||||
]
|
]
|
||||||
renderer.queueNode(node, shader = self._support_mesh_shader, uniforms = uniforms)
|
renderer.queueNode(node, shader = self._support_mesh_shader, uniforms = uniforms)
|
||||||
else:
|
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):
|
if node.callDecoration("isGroup") and Selection.isSelected(node):
|
||||||
renderer.queueNode(scene.getRoot(), mesh = node.getBoundingBoxMesh(), mode = RenderBatch.RenderMode.LineLoop)
|
renderer.queueNode(scene.getRoot(), mesh = node.getBoundingBoxMesh(), mode = RenderBatch.RenderMode.LineLoop)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue