public Material( FBX.Scene.Materials.MaterialParameters _SourceMaterial, MaterialMapperDelegate _Mapper ) { float3 Temp = new float3(); FBX.Scene.Materials.MaterialParameters.Parameter P = null; m_ID = (ushort) _SourceMaterial.ID; // Get diffuse color + texture ID P = _SourceMaterial.Find( "DiffuseColor" ); if ( P != null ) { Temp.FromVector3( P.AsFloat3.Value ); m_DiffuseColor = Temp; } P = _SourceMaterial.Find( "DiffuseTexture" ); m_DiffuseTextureID = _Mapper( P != null ? P.AsTexture2D : null ); // Get specular color + texture ID + exponent P = _SourceMaterial.Find( "SpecularColor" ); if ( P != null ) { Temp.FromVector3( P.AsFloat3.Value ); m_SpecularColor = Temp; } P = _SourceMaterial.Find( "SpecularTexture" ); m_SpecularTextureID = _Mapper( P != null ? P.AsTexture2D : null ); P = _SourceMaterial.Find( "SpecularExponent" ); if ( P != null ) { Temp.FromVector3( P.AsFloat3.Value ); m_SpecularExponent = Temp; } // Get noral map ID P = _SourceMaterial.Find( "NormalTexture" ); m_NormalTextureID = _Mapper( P != null ? P.AsTexture2D : null ); // Get emissive P = _SourceMaterial.Find( "EmissiveColor" ); if ( P != null ) { Temp.FromVector3( P.AsFloat3.Value ); m_EmissiveColor = Temp; } }