From c4a542a994fb234a6ea3d4d71e125ccf566aef7a Mon Sep 17 00:00:00 2001 From: ciechowoj Date: Tue, 17 May 2016 21:17:51 +0200 Subject: [PATCH] Adds blender material loading. --- code/BlenderLoader.cpp | 125 +++++++++++++++++++- code/BlenderLoader.h | 11 +- code/BlenderScene.cpp | 86 +++++++++++++- code/BlenderScene.h | 87 +++++++++++++- test/models/BLEND/BlenderMaterial_269.blend | Bin 0 -> 503612 bytes test/unit/utBlendImportMaterials.cpp | 124 +++++++++++++++++++ 6 files changed, 426 insertions(+), 7 deletions(-) create mode 100644 test/models/BLEND/BlenderMaterial_269.blend create mode 100644 test/unit/utBlendImportMaterials.cpp diff --git a/code/BlenderLoader.cpp b/code/BlenderLoader.cpp index 574cdce9f..b816fa081 100644 --- a/code/BlenderLoader.cpp +++ b/code/BlenderLoader.cpp @@ -554,10 +554,8 @@ void BlenderImporter::ResolveTexture(aiMaterial* out, const Material* mat, const } // ------------------------------------------------------------------------------------------------ -void BlenderImporter::BuildMaterials(ConversionData& conv_data) +void BlenderImporter::BuildDefaultMaterial(Blender::ConversionData& conv_data) { - conv_data.materials->reserve(conv_data.materials_raw.size()); - // add a default material if necessary unsigned int index = static_cast( -1 ); for( aiMesh* mesh : conv_data.meshes.get() ) { @@ -588,6 +586,124 @@ void BlenderImporter::BuildMaterials(ConversionData& conv_data) mesh->mMaterialIndex = index; } } +} + +void BlenderImporter::AddBlendParams(aiMaterial* result, const Material* source) +{ + aiColor3D diffuseColor(source->r, source->g, source->b); + result->AddProperty(&diffuseColor, 1, "$mat.blend.diffuse.color", 0, 0); + + float diffuseIntensity = source->ref; + result->AddProperty(&diffuseIntensity, 1, "$mat.blend.diffuse.intensity", 0, 0); + + int diffuseShader = source->diff_shader; + result->AddProperty(&diffuseShader, 1, "$mat.blend.diffuse.shader", 0, 0); + + int diffuseRamp = 0; + result->AddProperty(&diffuseRamp, 1, "$mat.blend.diffuse.ramp", 0, 0); + + + aiColor3D specularColor(source->specr, source->specg, source->specb); + result->AddProperty(&specularColor, 1, "$mat.blend.specular.color", 0, 0); + + float specularIntensity = source->spec; + result->AddProperty(&specularIntensity, 1, "$mat.blend.specular.intensity", 0, 0); + + int specularShader = source->spec_shader; + result->AddProperty(&specularShader, 1, "$mat.blend.specular.shader", 0, 0); + + int specularRamp = 0; + result->AddProperty(&specularRamp, 1, "$mat.blend.specular.ramp", 0, 0); + + int specularHardness = source->har; + result->AddProperty(&specularHardness, 1, "$mat.blend.specular.hardness", 0, 0); + + + int transparencyUse = source->mode & MA_TRANSPARENCY ? 1 : 0; + result->AddProperty(&transparencyUse, 1, "$mat.blend.transparency.use", 0, 0); + + int transparencyMethod = source->mode & MA_RAYTRANSP ? 2 : (source->mode & MA_ZTRANSP ? 1 : 0); + result->AddProperty(&transparencyMethod, 1, "$mat.blend.transparency.method", 0, 0); + + float transparencyAlpha = source->alpha; + result->AddProperty(&transparencyAlpha, 1, "$mat.blend.transparency.alpha", 0, 0); + + float transparencySpecular = source->spectra; + result->AddProperty(&transparencySpecular, 1, "$mat.blend.transparency.specular", 0, 0); + + float transparencyFresnel = source->fresnel_tra; + result->AddProperty(&transparencyFresnel, 1, "$mat.blend.transparency.fresnel", 0, 0); + + float transparencyBlend = source->fresnel_tra_i; + result->AddProperty(&transparencyBlend, 1, "$mat.blend.transparency.blend", 0, 0); + + float transparencyIor = source->ang; + result->AddProperty(&transparencyIor, 1, "$mat.blend.transparency.ior", 0, 0); + + float transparencyFilter = source->filter; + result->AddProperty(&transparencyFilter, 1, "$mat.blend.transparency.filter", 0, 0); + + float transparencyFalloff = source->tx_falloff; + result->AddProperty(&transparencyFalloff, 1, "$mat.blend.transparency.falloff", 0, 0); + + float transparencyLimit = source->tx_limit; + result->AddProperty(&transparencyLimit, 1, "$mat.blend.transparency.limit", 0, 0); + + int transparencyDepth = source->ray_depth_tra; + result->AddProperty(&transparencyDepth, 1, "$mat.blend.transparency.depth", 0, 0); + + float transparencyGlossAmount = source->gloss_tra; + result->AddProperty(&transparencyGlossAmount, 1, "$mat.blend.transparency.glossAmount", 0, 0); + + float transparencyGlossThreshold = source->adapt_thresh_tra; + result->AddProperty(&transparencyGlossThreshold, 1, "$mat.blend.transparency.glossThreshold", 0, 0); + + int transparencyGlossSamples = source->samp_gloss_tra; + result->AddProperty(&transparencyGlossSamples, 1, "$mat.blend.transparency.glossSamples", 0, 0); + + + int mirrorUse = source->mode & MA_RAYMIRROR ? 1 : 0; + result->AddProperty(&mirrorUse, 1, "$mat.blend.mirror.use", 0, 0); + + float mirrorReflectivity = source->ray_mirror; + result->AddProperty(&mirrorReflectivity, 1, "$mat.blend.mirror.reflectivity", 0, 0); + + aiColor3D mirrorColor(source->mirr, source->mirg, source->mirb); + result->AddProperty(&mirrorColor, 1, "$mat.blend.mirror.color", 0, 0); + + float mirrorFresnel = source->fresnel_mir; + result->AddProperty(&mirrorFresnel, 1, "$mat.blend.mirror.fresnel", 0, 0); + + float mirrorBlend = source->fresnel_mir_i; + result->AddProperty(&mirrorBlend, 1, "$mat.blend.mirror.blend", 0, 0); + + int mirrorDepth = source->ray_depth; + result->AddProperty(&mirrorDepth, 1, "$mat.blend.mirror.depth", 0, 0); + + float mirrorMaxDist = source->dist_mir; + result->AddProperty(&mirrorMaxDist, 1, "$mat.blend.mirror.maxDist", 0, 0); + + int mirrorFadeTo = source->fadeto_mir; + result->AddProperty(&mirrorFadeTo, 1, "$mat.blend.mirror.fadeTo", 0, 0); + + float mirrorGlossAmount = source->gloss_mir; + result->AddProperty(&mirrorGlossAmount, 1, "$mat.blend.mirror.glossAmount", 0, 0); + + float mirrorGlossThreshold = source->adapt_thresh_mir; + result->AddProperty(&mirrorGlossThreshold, 1, "$mat.blend.mirror.glossThreshold", 0, 0); + + int mirrorGlossSamples = source->samp_gloss_mir; + result->AddProperty(&mirrorGlossSamples, 1, "$mat.blend.mirror.glossSamples", 0, 0); + + float mirrorGlossAnisotropic = source->aniso_gloss_mir; + result->AddProperty(&mirrorGlossAnisotropic, 1, "$mat.blend.mirror.glossAnisotropic", 0, 0); +} + +void BlenderImporter::BuildMaterials(ConversionData& conv_data) +{ + conv_data.materials->reserve(conv_data.materials_raw.size()); + + BuildDefaultMaterial(conv_data); for(std::shared_ptr mat : conv_data.materials_raw) { @@ -604,7 +720,6 @@ void BlenderImporter::BuildMaterials(ConversionData& conv_data) aiString name = aiString(mat->id.name+2); // skip over the name prefix 'MA' mout->AddProperty(&name,AI_MATKEY_NAME); - // basic material colors aiColor3D col(mat->r,mat->g,mat->b); if (mat->r || mat->g || mat->b ) { @@ -647,6 +762,8 @@ void BlenderImporter::BuildMaterials(ConversionData& conv_data) ResolveTexture(mout,mat.get(),mat->mtex[i].get(),conv_data); } + + AddBlendParams(mout, mat.get()); } } diff --git a/code/BlenderLoader.h b/code/BlenderLoader.h index ff13517f3..c964eee32 100644 --- a/code/BlenderLoader.h +++ b/code/BlenderLoader.h @@ -179,9 +179,18 @@ private: ); // -------------------- + void BuildDefaultMaterial( + Blender::ConversionData& conv_data + ); + + void AddBlendParams( + aiMaterial* result, + const Blender::Material* source + ); + void BuildMaterials( Blender::ConversionData& conv_data - ) ; + ); // -------------------- void ResolveTexture( diff --git a/code/BlenderScene.cpp b/code/BlenderScene.cpp index 0addd013b..11042bc18 100644 --- a/code/BlenderScene.cpp +++ b/code/BlenderScene.cpp @@ -297,7 +297,6 @@ template <> void Structure :: Convert ( const FileDatabase& db ) const { - ReadField(dest.id,"id",db); ReadField(dest.r,"r",db); ReadField(dest.g,"g",db); @@ -326,6 +325,91 @@ template <> void Structure :: Convert ( ReadField(dest.spec_shader,"spec_shader",db); ReadFieldPtr(dest.mtex,"*mtex",db); + + ReadField(dest.amb, "amb", db); + ReadField(dest.ang, "ang", db); + ReadField(dest.spectra, "spectra", db); + ReadField(dest.spec, "spec", db); + ReadField(dest.zoffs, "zoffs", db); + ReadField(dest.add, "add", db); + ReadField(dest.fresnel_mir, "fresnel_mir", db); + ReadField(dest.fresnel_mir_i, "fresnel_mir_i", db); + ReadField(dest.fresnel_tra, "fresnel_tra", db); + ReadField(dest.fresnel_tra_i, "fresnel_tra_i", db); + ReadField(dest.filter, "filter", db); + ReadField(dest.tx_limit, "tx_limit", db); + ReadField(dest.tx_falloff, "tx_falloff", db); + ReadField(dest.gloss_mir, "gloss_mir", db); + ReadField(dest.gloss_tra, "gloss_tra", db); + ReadField(dest.adapt_thresh_mir, "adapt_thresh_mir", db); + ReadField(dest.adapt_thresh_tra, "adapt_thresh_tra", db); + ReadField(dest.aniso_gloss_mir, "aniso_gloss_mir", db); + ReadField(dest.dist_mir, "dist_mir", db); + ReadField(dest.hasize, "hasize", db); + ReadField(dest.flaresize, "flaresize", db); + ReadField(dest.subsize, "subsize", db); + ReadField(dest.flareboost, "flareboost", db); + ReadField(dest.strand_sta, "strand_sta", db); + ReadField(dest.strand_end, "strand_end", db); + ReadField(dest.strand_ease, "strand_ease", db); + ReadField(dest.strand_surfnor, "strand_surfnor", db); + ReadField(dest.strand_min, "strand_min", db); + ReadField(dest.strand_widthfade, "strand_widthfade", db); + ReadField(dest.sbias, "sbias", db); + ReadField(dest.lbias, "lbias", db); + ReadField(dest.shad_alpha, "shad_alpha", db); + ReadField(dest.param, "param", db); + ReadField(dest.rms, "rms", db); + ReadField(dest.rampfac_col, "rampfac_col", db); + ReadField(dest.rampfac_spec, "rampfac_spec", db); + ReadField(dest.friction, "friction", db); + ReadField(dest.fh, "fh", db); + ReadField(dest.reflect, "reflect", db); + ReadField(dest.fhdist, "fhdist", db); + ReadField(dest.xyfrict, "xyfrict", db); + ReadField(dest.sss_radius, "sss_radius", db); + ReadField(dest.sss_col, "sss_col", db); + ReadField(dest.sss_error, "sss_error", db); + ReadField(dest.sss_scale, "sss_scale", db); + ReadField(dest.sss_ior, "sss_ior", db); + ReadField(dest.sss_colfac, "sss_colfac", db); + ReadField(dest.sss_texfac, "sss_texfac", db); + ReadField(dest.sss_front, "sss_front", db); + ReadField(dest.sss_back, "sss_back", db); + + ReadField(dest.material_type, "material_type", db); + ReadField(dest.flag, "flag", db); + ReadField(dest.ray_depth, "ray_depth", db); + ReadField(dest.ray_depth_tra, "ray_depth_tra", db); + ReadField(dest.samp_gloss_mir, "samp_gloss_mir", db); + ReadField(dest.samp_gloss_tra, "samp_gloss_tra", db); + ReadField(dest.fadeto_mir, "fadeto_mir", db); + ReadField(dest.shade_flag, "shade_flag", db); + ReadField(dest.flarec, "flarec", db); + ReadField(dest.starc, "starc", db); + ReadField(dest.linec, "linec", db); + ReadField(dest.ringc, "ringc", db); + ReadField(dest.pr_lamp, "pr_lamp", db); + ReadField(dest.pr_texture, "pr_texture", db); + ReadField(dest.ml_flag, "ml_flag", db); + ReadField(dest.diff_shader, "diff_shader", db); + ReadField(dest.spec_shader, "spec_shader", db); + ReadField(dest.texco, "texco", db); + ReadField(dest.mapto, "mapto", db); + ReadField(dest.ramp_show, "ramp_show", db); + ReadField(dest.pad3, "pad3", db); + ReadField(dest.dynamode, "dynamode", db); + ReadField(dest.pad2, "pad2", db); + ReadField(dest.sss_flag, "sss_flag", db); + ReadField(dest.sss_preset, "sss_preset", db); + ReadField(dest.shadowonly_flag, "shadowonly_flag", db); + ReadField(dest.index, "index", db); + ReadField(dest.vcol_alpha, "vcol_alpha", db); + ReadField(dest.pad4, "pad4", db); + + ReadField(dest.seed1, "seed1", db); + ReadField(dest.seed2, "seed2", db); + db.reader->IncPtr(size); } diff --git a/code/BlenderScene.h b/code/BlenderScene.h index c1e0e47f9..a604a05f8 100644 --- a/code/BlenderScene.h +++ b/code/BlenderScene.h @@ -242,11 +242,13 @@ struct MDeformVert : ElemBase { // ------------------------------------------------------------------------------- #define MA_RAYMIRROR 0x40000 +#define MA_TRANSPARENCY 0x10000 +#define MA_RAYTRANSP 0x20000 +#define MA_ZTRANSP 0x00040 struct Material : ElemBase { ID id FAIL; - short flag; float r,g,b WARN; float specr,specg,specb WARN; short har; @@ -262,6 +264,89 @@ struct Material : ElemBase { float darkness; float refrac; + + float amb; + float ang; + float spectra; + float spec; + float zoffs; + float add; + float fresnel_mir; + float fresnel_mir_i; + float fresnel_tra; + float fresnel_tra_i; + float filter; + float tx_limit; + float tx_falloff; + float gloss_mir; + float gloss_tra; + float adapt_thresh_mir; + float adapt_thresh_tra; + float aniso_gloss_mir; + float dist_mir; + float hasize; + float flaresize; + float subsize; + float flareboost; + float strand_sta; + float strand_end; + float strand_ease; + float strand_surfnor; + float strand_min; + float strand_widthfade; + float sbias; + float lbias; + float shad_alpha; + float param; + float rms; + float rampfac_col; + float rampfac_spec; + float friction; + float fh; + float reflect; + float fhdist; + float xyfrict; + float sss_radius; + float sss_col; + float sss_error; + float sss_scale; + float sss_ior; + float sss_colfac; + float sss_texfac; + float sss_front; + float sss_back; + + short material_type; + short flag; + short ray_depth; + short ray_depth_tra; + short samp_gloss_mir; + short samp_gloss_tra; + short fadeto_mir; + short shade_flag; + short flarec; + short starc; + short linec; + short ringc; + short pr_lamp; + short pr_texture; + short ml_flag; + short texco; + short mapto; + short ramp_show; + short pad3; + short dynamode; + short pad2; + short sss_flag; + short sss_preset; + short shadowonly_flag; + short index; + short vcol_alpha; + short pad4; + + char seed1; + char seed2; + std::shared_ptr group; short diff_shader WARN; diff --git a/test/models/BLEND/BlenderMaterial_269.blend b/test/models/BLEND/BlenderMaterial_269.blend new file mode 100644 index 0000000000000000000000000000000000000000..4c00fec9d4a23200ffc72f496fcefa434381f6e1 GIT binary patch literal 503612 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 c8QiY1rhb<9 +#include +#include + +class BlendImportMaterials : public ::testing::Test { +public: + + virtual void SetUp() + { + im = new Assimp::Importer(); + } + + virtual void TearDown() + { + delete im; + } + +protected: + + Assimp::Importer* im; +}; + +// ------------------------------------------------------------------------------------------------ +TEST_F(BlendImportMaterials, testImportMaterial) +{ + const aiScene* pTest = im->ReadFile(ASSIMP_TEST_MODELS_DIR "/BLEND/BlenderMaterial_269.blend", 0); + ASSERT_TRUE(pTest != NULL); + ASSERT_TRUE(pTest->HasMaterials()); + + ASSERT_EQ(1, pTest->mNumMaterials); + + auto alpha = pTest->mMaterials[0]; + + #define ASSERT_PROPERTY_EQ(expected, key, var) \ + auto var = expected; \ + ASSERT_EQ(aiReturn_SUCCESS, alpha->Get("$mat.blend." key, 0, 0, var)); \ + ASSERT_EQ(expected, var); + + #define ASSERT_PROPERTY_FLOAT_EQ(expected, key, var) \ + auto var = expected; \ + ASSERT_EQ(aiReturn_SUCCESS, alpha->Get("$mat.blend." key, 0, 0, var)); \ + ASSERT_FLOAT_EQ(expected, var); + + ASSERT_PROPERTY_EQ(aiColor3D(0.1f, 0.2f, 0.3f), "diffuse.color", diffuseColor); + ASSERT_PROPERTY_EQ(0.4f, "diffuse.intensity", diffuseIntensity); + ASSERT_PROPERTY_EQ(1, "diffuse.shader", diffuseShader); + ASSERT_PROPERTY_EQ(0, "diffuse.ramp", diffuseRamp); + + ASSERT_PROPERTY_EQ(aiColor3D(0.5f, 0.6f, 0.7f), "specular.color", specularColor); + ASSERT_PROPERTY_EQ(0.8f, "specular.intensity", specularIntensity); + ASSERT_PROPERTY_EQ(1, "specular.shader", specularShader); + ASSERT_PROPERTY_EQ(0, "specular.ramp", specularRamp); + ASSERT_PROPERTY_EQ(9, "specular.hardness", specularHardness); + + ASSERT_PROPERTY_EQ(1, "transparency.use", transparencyUse); + ASSERT_PROPERTY_EQ(2, "transparency.method", transparencyMethod); + ASSERT_PROPERTY_EQ(0.01f, "transparency.alpha", transparencyAlpha); + ASSERT_PROPERTY_EQ(0.02f, "transparency.specular", transparencySpecular); + ASSERT_PROPERTY_EQ(0.03f, "transparency.fresnel", transparencyFresnel); + ASSERT_PROPERTY_EQ(3.14f, "transparency.blend", transparencyBlend); + ASSERT_PROPERTY_EQ(0.85f, "transparency.ior", transparencyIor); + ASSERT_PROPERTY_FLOAT_EQ(0.128f, "transparency.filter", transparencyFilter); + ASSERT_PROPERTY_FLOAT_EQ(1.298f, "transparency.falloff", transparencyFalloff); + ASSERT_PROPERTY_FLOAT_EQ(0.2376f, "transparency.limit", transparencyLimit); + ASSERT_PROPERTY_EQ(7, "transparency.depth", transparencyDepth); + ASSERT_PROPERTY_FLOAT_EQ(0.678f, "transparency.glossAmount", transparencyGlossAmount); + ASSERT_PROPERTY_FLOAT_EQ(0.208f, "transparency.glossThreshold", transparencyGlossThreshold); + ASSERT_PROPERTY_EQ(17, "transparency.glossSamples", transparencyGlossSamples); + + ASSERT_PROPERTY_EQ(1, "mirror.use", mirrorUse); + ASSERT_PROPERTY_FLOAT_EQ(0.28f, "mirror.reflectivity", mirrorReflectivity); + ASSERT_PROPERTY_EQ(aiColor3D(0.25f, 0.5f, 0.128f), "mirror.color", mirrorColor); + ASSERT_PROPERTY_FLOAT_EQ(0.256f, "mirror.fresnel", mirrorFresnel); + ASSERT_PROPERTY_FLOAT_EQ(1.61f, "mirror.blend", mirrorBlend); + ASSERT_PROPERTY_EQ(12, "mirror.depth", mirrorDepth); + ASSERT_PROPERTY_FLOAT_EQ(0.4f, "mirror.maxDist", mirrorMaxDist); + ASSERT_PROPERTY_EQ(1, "mirror.fadeTo", mirrorFadeTo); + ASSERT_PROPERTY_FLOAT_EQ(0.512f, "mirror.glossAmount", mirrorGlossAmount); + ASSERT_PROPERTY_FLOAT_EQ(0.18f, "mirror.glossThreshold", mirrorGlossThreshold); + ASSERT_PROPERTY_EQ(61, "mirror.glossSamples", mirrorGlossSamples); + ASSERT_PROPERTY_FLOAT_EQ(0.87f, "mirror.glossAnisotropic", mirrorGlossAnisotropic); +}