From 03fb684b1075ad3cb8cb628cb494b1da1a8df581 Mon Sep 17 00:00:00 2001 From: "Sha..rd" Date: Sun, 8 Jan 2012 23:46:57 +0000 Subject: [PATCH] * Blender now supports loading color for shadeless materials git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@9006 75d07b2b-3a1a-0410-a2c5-0572b91ccdca --- .../scene/plugins/blender/materials/MaterialContext.java | 7 ++++++- .../scene/plugins/blender/materials/MaterialHelper.java | 6 ++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/engine/src/blender/com/jme3/scene/plugins/blender/materials/MaterialContext.java b/engine/src/blender/com/jme3/scene/plugins/blender/materials/MaterialContext.java index e44bbc386..10a328299 100644 --- a/engine/src/blender/com/jme3/scene/plugins/blender/materials/MaterialContext.java +++ b/engine/src/blender/com/jme3/scene/plugins/blender/materials/MaterialContext.java @@ -69,7 +69,12 @@ public final class MaterialContext { diffuseShader = DiffuseShader.values()[diff_shader]; if(this.shadeless) { - diffuseColor = ColorRGBA.White.clone(); + float r = ((Number) structure.getFieldValue("r")).floatValue(); + float g = ((Number) structure.getFieldValue("g")).floatValue(); + float b = ((Number) structure.getFieldValue("b")).floatValue(); + float alpha = ((Number) structure.getFieldValue("alpha")).floatValue(); + + diffuseColor = new ColorRGBA(r, g, b, alpha); specularShader = null; specularColor = ambientColor = null; shininess = 0.0f; diff --git a/engine/src/blender/com/jme3/scene/plugins/blender/materials/MaterialHelper.java b/engine/src/blender/com/jme3/scene/plugins/blender/materials/MaterialHelper.java index 10fd57082..575ce2195 100644 --- a/engine/src/blender/com/jme3/scene/plugins/blender/materials/MaterialHelper.java +++ b/engine/src/blender/com/jme3/scene/plugins/blender/materials/MaterialHelper.java @@ -241,6 +241,12 @@ public class MaterialHelper extends AbstractBlenderHelper { } else { if (materialContext.shadeless) { result = new Material(blenderContext.getAssetManager(), "Common/MatDefs/Misc/Unshaded.j3md"); + + if (!materialContext.transparent) { + materialContext.diffuseColor.a = 1; + } + + result.setColor("Color", materialContext.diffuseColor); } else { result = new Material(blenderContext.getAssetManager(), "Common/MatDefs/Light/Lighting.j3md"); result.setBoolean("UseMaterialColors", Boolean.TRUE);