From 7317d4c7ee7aae726b5c97d80d52256a8bde2ade Mon Sep 17 00:00:00 2001 From: Richard Pajersky <xpajersk@fi.muni.cz> Date: Mon, 10 May 2021 09:31:54 +0200 Subject: [PATCH] Fixed transparency rendering, by reversing rendering order --- .../fidentis/analyst/gui/RegistrationCPEventListener.java | 1 + .../java/cz/fidentis/analyst/gui/scene/SceneRenderer.java | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/RegistrationCPEventListener.java b/GUI/src/main/java/cz/fidentis/analyst/gui/RegistrationCPEventListener.java index da67bddd..35a9793b 100644 --- a/GUI/src/main/java/cz/fidentis/analyst/gui/RegistrationCPEventListener.java +++ b/GUI/src/main/java/cz/fidentis/analyst/gui/RegistrationCPEventListener.java @@ -10,6 +10,7 @@ import cz.fidentis.analyst.gui.scene.DrawableMesh; import cz.fidentis.analyst.visitors.mesh.BoundingBox; import java.awt.Color; import java.util.ArrayList; +import java.util.Collections; import javax.vecmath.Point3d; import javax.vecmath.Vector3d; diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/scene/SceneRenderer.java b/GUI/src/main/java/cz/fidentis/analyst/gui/scene/SceneRenderer.java index eeede157..2049549b 100644 --- a/GUI/src/main/java/cz/fidentis/analyst/gui/scene/SceneRenderer.java +++ b/GUI/src/main/java/cz/fidentis/analyst/gui/scene/SceneRenderer.java @@ -11,6 +11,7 @@ import cz.fidentis.analyst.mesh.core.MeshFacet; import java.awt.Color; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.List; import javax.vecmath.Point3d; import javax.vecmath.Point4f; @@ -133,6 +134,10 @@ public class SceneRenderer { gl.glPolygonMode( GL_FRONT_AND_BACK, GL_FILL); } + if (((DrawableMesh)drawables.toArray()[0]).getTransparency() != 1) { + Collections.reverse((ArrayList)drawables); + } + for (DrawableMesh obj: drawables) { // render color Color color = obj.getColor(); @@ -140,7 +145,6 @@ public class SceneRenderer { color.getBlue() / 255d , obj.getTransparency()); for (MeshFacet facet: obj.getFacets()) { - // TO DO - R. Pajersky: add transformation (glPushMatrix, glRotate, ...) // rotate gl.glPushMatrix(); gl.glRotated(obj.getRotation().x, 1, 0, 0); -- GitLab