Exemplo n.º 1
0
        /// <summary>
        /// Read material from library.
        /// </summary>
        /// <param name="reader"></param>
        public void ReadFromFile(BinaryReader reader)
        {
            materialHash = reader.ReadUInt64();
            materialName = StringHelpers.ReadString32(reader);

            ufo1  = reader.ReadByte();
            ufo2  = reader.ReadByte();
            flags = (MaterialFlags)reader.ReadInt32();
            ufo4  = reader.ReadByte();
            ufo5  = reader.ReadInt32();
            ufo6  = reader.ReadInt32();

            shaderID   = reader.ReadUInt64();
            shaderHash = reader.ReadUInt32();

            int spCount = reader.ReadInt32();

            parameters = new Dictionary <string, ShaderParameter>();
            for (int i = 0; i != spCount; i++)
            {
                var param = new ShaderParameter(reader);
                parameters.Add(param.ID, param);
            }

            int spsCount = reader.ReadInt32();

            samplers = new Dictionary <string, ShaderParameterSampler>();
            for (int i = 0; i != spsCount; i++)
            {
                var shader = new ShaderParameterSampler(reader);
                samplers.Add(shader.ID, shader);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Construct material based on basic material.
        /// </summary>
        public Material()
        {
            materialName = "NEW_MATERIAL";
            materialHash = 1;
            shaderHash   = 3388704532;
            shaderID     = 4894707398632176459;
            ufo1         = 128;
            ufo2         = 0;
            flags        = (MaterialFlags)31461376;
            ufo4         = 0;
            ufo5         = 0;
            ufo6         = 0;
            parameters   = new Dictionary <string, ShaderParameter>();
            samplers     = new Dictionary <string, ShaderParameterSampler>();
            var spp = new ShaderParameterSampler();

            samplers.Add(spp.ID, spp);
        }