예제 #1
0
        private STGenericMaterial CreateMaterial(Material material, int index)
        {
            MDL_Material mat = new MDL_Material();

            mat.Name      = $"Material{index}";
            mat.TintColor = material.Color;

            if (material.TevStages[0].SamplerIndex != ushort.MaxValue)
            {
                var texturObj = Header.Samplers[material.TevStages[0].SamplerIndex];
                var tex       = Textures[texturObj.TextureIndex];

                STTextureWrapMode wrapModeU = ConvertWrapMode(texturObj.WrapModeU);
                STTextureWrapMode wrapModeV = ConvertWrapMode(texturObj.WrapModeV);

                mat.TextureMaps.Add(new STGenericTextureMap()
                {
                    Name  = tex.Name,
                    WrapU = wrapModeU,
                    WrapV = wrapModeV,
                    Type  = STTextureType.Diffuse,
                });
            }

            return(mat);
        }
예제 #2
0
        private static Assimp.TextureWrapMode ConvertToAssimpWrapType(STTextureWrapMode type)
        {
            switch (type)
            {
            case STTextureWrapMode.Repeat: return(TextureWrapMode.Wrap);

            case STTextureWrapMode.Mirror: return(TextureWrapMode.Mirror);

            case STTextureWrapMode.Clamp: return(TextureWrapMode.Clamp);

            default:
                return(TextureWrapMode.Wrap);
            }
        }