Example #1
0
 public override void OnAdd(Scene scene)
 {
     renderElement = new SkyRenderElement();
     renderElement.mieHeight = 0.0022f;
     renderElement.rayleighHeight = 0.0035f;
     renderElement.rayleighGain = 9.235767f;
     renderElement.mieGain = 16.199024f;
     SetColor(new Vector3(0.8353f, 0.6119f, 0.4780f));
     NoiseParameters cloudParams = new NoiseParameters(16, 0.49f, 0.018499f, 0.70999f);
     renderElement.cloudTexture = GFX.Inst.PerlinNoiseGen.Generate2DNoise(cloudParams, 512, 512, 1);
     //MieHeight = 15;
     //RayleighHeight = 55;
     //SetColor(new Vector3(0.65f, 0.57f, 0.475f));
     base.OnAdd(scene);
 }
Example #2
0
 public override void OnAdd(Scene scene)
 {
     renderElement = new SkyRenderElement();
     renderElement.mieHeight = 0.0022f;
     renderElement.rayleighHeight = 0.0035f;
     renderElement.rayleighGain = 9.235767f;
     renderElement.mieGain = 16.199024f;
     SetColor(new Vector3(0.8353f, 0.6119f, 0.4780f));
     NoiseParameters cloudParams = new NoiseParameters(16, 0.49f, 0.018499f, 0.70999f);
     renderElement.cloudTexture = (Texture2D)ResourceManager.Inst.GetTexture("Textures/Sky/cloud1.png").GetTexture();// GFX.Inst.PerlinNoiseGen.Generate2DNoise(cloudParams, 512, 512, 1);
     GFX.Inst.PerlinNoiseGen.Generate2DNoise(cloudParams, 512, 512, 1).Save("NoiseTexture.dds", ImageFileFormat.Dds);
     //MieHeight = 15;
     //RayleighHeight = 55;
     //SetColor(new Vector3(0.65f, 0.57f, 0.475f));
     base.OnAdd(scene);
 }
        public Texture2D Generate2DNoise(NoiseParameters noiseParams, int width, int height, int mipCount)
        {
            Vector2 invRes = Vector2.One / new Vector2(width, height);
            noise2DShader.SetupShader();
            GFX.Device.SetVertexShaderConstant(0, invRes);
            GFX.Device.SetPixelShaderConstant(0, invRes);
            GFX.Device.SetPixelShaderConstant(1, new Vector4(noiseParams.Amplitude, noiseParams.Frequency, noiseParams.Persistance, noiseParams.Octaves));
            GFX.Device.Textures[0] = ComputeRandomTexture(width / 2, height / 2);

            RenderTarget2D rtNoise = new RenderTarget2D(GFX.Device, width, height, 1, SurfaceFormat.Color);
            DepthStencilBuffer dsOld = GFX.Device.DepthStencilBuffer;
            GFX.Device.DepthStencilBuffer = GFX.Inst.dsBufferLarge;
            GFX.Device.SetRenderTarget(0, rtNoise);
            GFXPrimitives.Quad.Render();
            GFX.Device.SetRenderTarget(0, null);
            GFX.Device.DepthStencilBuffer = dsOld;

            Color[] colorData = new Color[width * height];
            rtNoise.GetTexture().GetData<Color>(colorData);
            Texture2D noiseTexture = new Texture2D(GFX.Device, width, height, mipCount, TextureUsage.None, SurfaceFormat.Color);
            noiseTexture.SetData<Color>(colorData);
            noiseTexture.GenerateMipMaps(TextureFilter.GaussianQuad);
            return noiseTexture;
        }