Exemple #1
0
        void ProcessTexMapChunk(ThreeDSChunk chunk, Material m, BinaryReader reader)
        {
            while (chunk.BytesRead < chunk.Length)
            {
                var child = new ThreeDSChunk(reader);
                switch ((Groups)child.ID)
                {
                    case Groups.C_MATMAPFILE:
                        string name = ProcessString(child, reader);
                        Console.WriteLine("	Texture File: {0}", name);
                        m.Textures.Add(name);
                        break;
                    default:
                        SkipChunk(child, reader);
                        break;

                }
                chunk.BytesRead += child.BytesRead;
            }
        }
Exemple #2
0
        void ProcessMaterialChunk(ThreeDSChunk chunk, BinaryReader reader)
        {
            string name = string.Empty;
            var m = new Material();

            while (chunk.BytesRead < chunk.Length)
            {
                var child = new ThreeDSChunk(reader);

                switch (child.ID)
                {
                    case ChunckIDs.EDIT_MATNAME01:

                        name = ProcessString(child, reader);
                        m.MaterialName = name.ToLowerInvariant();
                        Console.WriteLine("Material: {0}", name);
                        break;

                    case ChunckIDs.EDIT_MATAMBIENT:

                        m.Ambient = ProcessColorChunk(child, reader);
                        break;

                    case ChunckIDs.EDIT_MATDIFFUSE:

                        m.Diffuse = ProcessColorChunk(child, reader);
                        break;

                    case ChunckIDs.EDIT_MATSPECULAR:

                        m.Specular = ProcessColorChunk(child, reader);
                        break;

                    case ChunckIDs.EDIT_MATSHININESS:

                        m.Shininess = ProcessPercentageChunk(child, reader);
                        //Console.WriteLine ( "SHININESS: {0}", m.Shininess );
                        break;
                    case ChunckIDs.EDIT_MATMAP:
                    case ChunckIDs.EDIT_MATMAP2:
                    case ChunckIDs.EDIT_MATMAPBUMP:
                    case ChunckIDs.EDIT_MATMAPREFLECTION:
                        ProcessPercentageChunk(child, reader);
                        //SkipChunk ( child );
                        ProcessTexMapChunk(child, m, reader);
                        break;
                    default:
                        SkipChunk(child, reader);
                        break;
                }
                chunk.BytesRead += child.BytesRead;
            }
            materials.Add(name, m);
        }