From a46bfaf4893c7b584a43f502bdf80c049f947362 Mon Sep 17 00:00:00 2001 From: kearwood Date: Fri, 5 Oct 2012 20:46:24 +0000 Subject: [PATCH] Reversed meaning of m_tr attribute in KRMaterial so that it matches the alpha without needing inversion --HG-- extra : convert_revision : svn%3A7752d6cf-9f14-4ad2-affc-04f1e67b81a5/trunk%40120 --- KREngine/KREngine/Classes/KRMaterial.cpp | 8 ++++---- KREngine/KREngine/Classes/KRResource+fbx.cpp | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/KREngine/KREngine/Classes/KRMaterial.cpp b/KREngine/KREngine/Classes/KRMaterial.cpp index 4d967fa..23c4dfd 100644 --- a/KREngine/KREngine/Classes/KRMaterial.cpp +++ b/KREngine/KREngine/Classes/KRMaterial.cpp @@ -50,7 +50,7 @@ KRMaterial::KRMaterial(KRContext &context, const char *szName) : KRResource(cont m_diffuseColor = KRVector3::One(); m_specularColor = KRVector3::One(); m_reflectionColor = KRVector3::One(); - m_tr = (GLfloat)0.0f; + m_tr = (GLfloat)1.0f; m_ns = (GLfloat)0.0f; m_ambientMap = ""; m_diffuseMap = ""; @@ -179,7 +179,7 @@ void KRMaterial::setReflection(const KRVector3 &c) { } void KRMaterial::setTransparency(GLfloat a) { - if(a != 0.0f && m_alpha_mode == KRMaterial::KRMATERIAL_ALPHA_MODE_OPAQUE) { + if(a < 1.0f && m_alpha_mode == KRMaterial::KRMATERIAL_ALPHA_MODE_OPAQUE) { setAlphaMode(KRMaterial::KRMATERIAL_ALPHA_MODE_BLENDONESIDE); } m_tr = a; @@ -194,7 +194,7 @@ void KRMaterial::setReflectionFactor(GLfloat r) { } bool KRMaterial::isTransparent() { - return m_tr != 0.0 || m_alpha_mode == KRMATERIAL_ALPHA_MODE_BLENDONESIDE || m_alpha_mode == KRMATERIAL_ALPHA_MODE_BLENDTWOSIDE; + return m_tr < 1.0 || m_alpha_mode == KRMATERIAL_ALPHA_MODE_BLENDONESIDE || m_alpha_mode == KRMATERIAL_ALPHA_MODE_BLENDTWOSIDE; } #if TARGET_OS_IPHONE @@ -393,7 +393,7 @@ bool KRMaterial::bind(KRMaterial **prevBoundMaterial, char *szPrevShaderKey, KRC )); } - GLDEBUG(glUniform1f(pShader->m_uniforms[KRShader::KRENGINE_UNIFORM_MATERIAL_ALPHA], 1.0f - m_tr)); + GLDEBUG(glUniform1f(pShader->m_uniforms[KRShader::KRENGINE_UNIFORM_MATERIAL_ALPHA], m_tr)); GLDEBUG(glUniform1f(pShader->m_uniforms[KRShader::KRENGINE_UNIFORM_MATERIAL_REFLECTIVITY], m_reflectionFactor)); if(bDiffuseMap) { diff --git a/KREngine/KREngine/Classes/KRResource+fbx.cpp b/KREngine/KREngine/Classes/KRResource+fbx.cpp index 0d09d4a..20153dd 100644 --- a/KREngine/KREngine/Classes/KRResource+fbx.cpp +++ b/KREngine/KREngine/Classes/KRResource+fbx.cpp @@ -453,7 +453,7 @@ void LoadMesh(KRNode *parent_node, std::vector &resources, KFbxGeo // Transparency lKFbxDouble1 =((KFbxSurfacePhong *) pMaterial)->TransparencyFactor; - new_material->setTransparency(1.0-lKFbxDouble1.Get()); + new_material->setTransparency(lKFbxDouble1.Get()); // Shininess lKFbxDouble1 =((KFbxSurfacePhong *) pMaterial)->Shininess; @@ -484,7 +484,7 @@ void LoadMesh(KRNode *parent_node, std::vector &resources, KFbxGeo // Opacity lKFbxDouble1 =((KFbxSurfaceLambert *)pMaterial)->TransparencyFactor; - new_material->setTransparency(1.0-lKFbxDouble1.Get()); + new_material->setTransparency(lKFbxDouble1.Get()); } else { printf("Error! Unable to convert material: %s", pMaterial->GetName()); }