Exemplo n.º 1
0
        public static AtmosphereData Load(GraphicsDevice device, Stream stream)
        {
            var reader   = new BinarySerializationReader(stream);
            var settings = reader.Read <AtmosphereSettings>();

            long transmittanceSize = reader.ReadInt64();
            long irradianceSize    = reader.ReadInt64();
            long inscatterSize     = reader.ReadInt64();

            Texture transmittance, irradiance, inscatter;

            var buffer = reader.ReadBytes((int)transmittanceSize);

            using (var data = new MemoryStream(buffer))
                transmittance = Texture.Load(device, data);

            buffer = reader.ReadBytes((int)irradianceSize);
            using (var data = new MemoryStream(buffer))
                irradiance = Texture.Load(device, data);

            buffer = reader.ReadBytes((int)inscatterSize);
            using (var data = new MemoryStream(buffer))
                inscatter = Texture.Load(device, data);

            return(new AtmosphereData(settings, transmittance, irradiance, inscatter));
        }