コード例 #1
0
ファイル: Map.cs プロジェクト: MIUSST/HeatMap_2
        public void ApplyPen(Pen pen, Vector2 position)
        {
            EffectParameterCollection parameters = IntensityPenEffect.Parameters;

            // Transform position coordinates into texture space
            position.X /= width;
            position.Y /= height;

            parameters["pos"].SetValue(position);
            parameters["radius"].SetValue(pen.Radius / Math.Max(width, height));
            parameters["minPressure"].SetValue(pen.Min);
            parameters["maxPressure"].SetValue(pen.Max);

            // Pass 1: apply PenEffect to intensityTexture and render out to intensityTextureTemp
            GraphicsDevice.Textures[0] = intensityTexture;
            ShaderUtil.DrawFullscreenQuad(intensityTexture, intensityTextureTemp, BlendState.Opaque, IntensityPenEffect);

            // Pass 2: copy intensityTextureTemp to intensityTexture
            ShaderUtil.DrawFullscreenQuad(intensityTextureTemp, intensityTexture, BlendState.Opaque, null);

            // Reset the render target
            GraphicsDevice.SetRenderTarget(null);

            _dirty = true;
        }
コード例 #2
0
ファイル: Map.cs プロジェクト: MIUSST/HeatMap_2
        private void RenderTextures()
        {
            // Pass 1: copy intensityTexture to intensityTextureCache
            ShaderUtil.DrawFullscreenQuad(intensityTexture, intensityTextureCache, BlendState.Opaque, null);

            // Pass 2: apply ColorMap to intensityTexture and render out to coloredTextureCache
            GraphicsDevice.Textures[0] = intensityTexture;
            GraphicsDevice.Textures[1] = colorMaps[colorMapIndex];
            ShaderUtil.DrawFullscreenQuad(intensityTexture, coloredTextureCache, BlendState.AlphaBlend, ColorMapEffect);

            // Reset the render target
            GraphicsDevice.SetRenderTarget(null);

            _dirty = false;
        }