From ccb946e65d8cdd725cd4e34250c672e7b2bc4e5a Mon Sep 17 00:00:00 2001 From: Hannes Nevalainen Date: Thu, 17 Apr 2014 23:06:37 +0200 Subject: [PATCH] Add Screen blend mode. --- .../src/main/java/com/jme3/material/RenderState.java | 9 ++++++++- .../main/java/com/jme3/renderer/lwjgl/LwjglRenderer.java | 3 +++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/jme3-core/src/main/java/com/jme3/material/RenderState.java b/jme3-core/src/main/java/com/jme3/material/RenderState.java index ef39ddc46..0bca7ebad 100644 --- a/jme3-core/src/main/java/com/jme3/material/RenderState.java +++ b/jme3-core/src/main/java/com/jme3/material/RenderState.java @@ -176,7 +176,14 @@ public class RenderState implements Cloneable, Savable { *

* Result = 2 * Source Color * Dest Color -> (GL_DST_COLOR, GL_SRC_COLOR) */ - ModulateX2 + ModulateX2, + /** + * Opposite effect of Modulate/Multiply. Invert both colors, multiply and + * then invert the result. + *

+ * Result = 2 * Source Color * Dest Color -> (GL_ONE, GL_ONE_MINUS_SRC_COLOR) + */ + Screen } /** diff --git a/jme3-lwjgl/src/main/java/com/jme3/renderer/lwjgl/LwjglRenderer.java b/jme3-lwjgl/src/main/java/com/jme3/renderer/lwjgl/LwjglRenderer.java index 408146655..3b2d44ba5 100644 --- a/jme3-lwjgl/src/main/java/com/jme3/renderer/lwjgl/LwjglRenderer.java +++ b/jme3-lwjgl/src/main/java/com/jme3/renderer/lwjgl/LwjglRenderer.java @@ -647,6 +647,9 @@ public class LwjglRenderer implements Renderer { case ModulateX2: glBlendFunc(GL_DST_COLOR, GL_SRC_COLOR); break; + case Screen: + glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_COLOR); + break; default: throw new UnsupportedOperationException("Unrecognized blend mode: " + state.getBlendMode());