Tweaked the snapshot images to make it look prettier

This commit is contained in:
Jack Ha 2018-02-15 13:53:45 +01:00
parent 1e02463c7e
commit 037298cf03

View File

@ -17,6 +17,17 @@ MYPY = False
if MYPY: if MYPY:
from UM.Scene.Camera import Camera from UM.Scene.Camera import Camera
# Make color brighter by normalizing it (maximum factor 2.5 brighter)
def prettier_color(l):
maximum = max(l[:3])
if maximum > 0:
factor = min(1 / maximum, 2.5)
else:
factor = 1.0
return [min(i * factor, 1.0) for i in l]
## A render pass subclass that renders slicable objects with default parameters. ## A render pass subclass that renders slicable objects with default parameters.
# It uses the active camera by default, but it can be overridden to use a different camera. # It uses the active camera by default, but it can be overridden to use a different camera.
# #
@ -41,6 +52,9 @@ class PreviewPass(RenderPass):
if not self._shader: if not self._shader:
self._shader = OpenGL.getInstance().createShaderProgram(Resources.getPath(Resources.Shaders, "overhang.shader")) self._shader = OpenGL.getInstance().createShaderProgram(Resources.getPath(Resources.Shaders, "overhang.shader"))
self._shader.setUniformValue("u_overhangAngle", 1.0) self._shader.setUniformValue("u_overhangAngle", 1.0)
self._shader.setUniformValue("u_ambientColor", [0.1, 0.1, 0.1, 1.0])
self._shader.setUniformValue("u_specularColor", [0.6, 0.6, 0.6, 1.0])
self._shader.setUniformValue("u_shininess", 20.0)
self._gl.glClearColor(0.0, 0.0, 0.0, 0.0) self._gl.glClearColor(0.0, 0.0, 0.0, 0.0)
self._gl.glClear(self._gl.GL_COLOR_BUFFER_BIT | self._gl.GL_DEPTH_BUFFER_BIT) self._gl.glClear(self._gl.GL_COLOR_BUFFER_BIT | self._gl.GL_DEPTH_BUFFER_BIT)
@ -52,7 +66,7 @@ class PreviewPass(RenderPass):
for node in DepthFirstIterator(self._scene.getRoot()): for node in DepthFirstIterator(self._scene.getRoot()):
if node.callDecoration("isSliceable") and node.getMeshData() and node.isVisible(): if node.callDecoration("isSliceable") and node.getMeshData() and node.isVisible():
uniforms = {} uniforms = {}
uniforms["diffuse_color"] = node.getDiffuseColor() uniforms["diffuse_color"] = prettier_color(node.getDiffuseColor())
batch.addItem(node.getWorldTransformation(), node.getMeshData(), uniforms = uniforms) batch.addItem(node.getWorldTransformation(), node.getMeshData(), uniforms = uniforms)
self.bind() self.bind()