Exemple #1
0
            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;
                }
            }