From 9d8ce1ce4b8090b5163ab2ede31408513a3bb5fb Mon Sep 17 00:00:00 2001 From: Lynix Date: Thu, 27 Jun 2013 18:57:14 +0200 Subject: [PATCH] Fixed OBJ loader not correctly loading alpha Former-commit-id: f90feace73669f4a54e1791dae23b16867bb1d8b --- src/Nazara/Graphics/Loaders/OBJ/Loader.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Nazara/Graphics/Loaders/OBJ/Loader.cpp b/src/Nazara/Graphics/Loaders/OBJ/Loader.cpp index 86f58e568..d34a20f63 100644 --- a/src/Nazara/Graphics/Loaders/OBJ/Loader.cpp +++ b/src/Nazara/Graphics/Loaders/OBJ/Loader.cpp @@ -203,14 +203,16 @@ namespace std::unique_ptr material(new NzMaterial); material->SetPersistent(false); + nzUInt8 alphaValue = static_cast(mtlMat->alpha*255.f); + NzColor ambientColor(mtlMat->ambient); - ambientColor.a = mtlMat->alpha; + ambientColor.a = alphaValue; NzColor diffuseColor(mtlMat->diffuse); - diffuseColor.a = mtlMat->alpha; + diffuseColor.a = alphaValue; NzColor specularColor(mtlMat->specular); - specularColor.a = mtlMat->alpha; + specularColor.a = alphaValue; material->SetAmbientColor(ambientColor); material->SetDiffuseColor(diffuseColor); @@ -264,7 +266,7 @@ namespace // Si nous avons une alpha map ou des couleurs transparentes, // nous devons configurer le matériau pour accepter la transparence au mieux - if (hasAlphaMap || !NzNumberEquals(mtlMat->alpha, 1.f)) + if (hasAlphaMap || alphaValue != 255) { // On paramètre le matériau pour accepter la transparence au mieux material->Enable(nzRendererParameter_Blend, true);