예제 #1
0
        private void Glview_Load(object sender, EventArgs e)
        {
            ViewContext.VerifyContext(glview);
            ViewContext.Context.MakeCurrent(glview.WindowInfo);

            Log.Info("GL Version: " + OpenTK.Graphics.OpenGL.GL.GetString(OpenTK.Graphics.OpenGL.StringName.Version));
            IGL.Primary.PatchParameter((int)PatchParameterInt.PatchVertices, 3);
            IGL.Primary.Enable((int)EnableCap.DepthTest);
            IGL.Primary.Enable((int)EnableCap.Blend);
            IGL.Primary.DepthFunc((int)DepthFunction.Lequal);
            IGL.Primary.BlendFunc((int)BlendingFactor.SrcAlpha, (int)BlendingFactor.OneMinusSrcAlpha);
            IGL.Primary.Enable((int)EnableCap.CullFace);
            IGL.Primary.CullFace((int)CullFaceMode.Back);

            renderStack = new RenderStack();
            basePass    = new BasePass(null, glview.Width, glview.Height);
            bloomPass   = new BloomPass(glview.Width, glview.Height);
            renderStack.Add(basePass);
            renderStack.Add(bloomPass);

            LoadMeshes();

            Task.Run(async() =>
            {
                //initial hdri load
                await HdriManager.Load();
            });
        }
예제 #2
0
 public override void Create()
 {
     m_ScriptablePass = new BloomPass(iterations, blurSpread, downSample, luminanceThreshold)
     {
         renderPassEvent = PassEvent
     };
 }
예제 #3
0
    public override void Create()
    {
        bloomPass = new BloomPass(m_MaskedBrightnessBlit, m_AdditiveBlit, settings);

        m_MaskedBrightnessBlit    = CoreUtils.CreateEngineMaterial("Hidden/MaskedBrightnessBlit");
        m_AdditiveBlit            = CoreUtils.CreateEngineMaterial("Hidden/AdditiveBlit");
        bloomPass.renderPassEvent = RenderPassEvent.AfterRenderingTransparents;
    }
 public override void Create()
 {
     bloomPass = new BloomPass(settings.Event, settings.computeShader, settings.intensity, settings.threshold);
 }
예제 #5
0
        public override void Start()
        {
            _passes      = new PostProcessPass[9];
            _passCounter = 0;

            // Setup PostProcess.
            var bloomPass = new BloomPass();

            bloomPass.Settings = new BloomSettings("Côôl", 0.15f, 1f, 4.0f, 1.0f, 1f, 1f);
            AddPass(bloomPass);

            AddPass(new C64FilterPass());

            var cgaPass = new CGAFilterPass();

            cgaPass.SetPalette(cgaPass.Palette2LI);
            AddPass(cgaPass);

            var convolutionPass = new ConvolutionPass();

            AddPass(convolutionPass);

            var filmPass = new FilmPass();

            AddPass(filmPass);

            var fxaaPass = new FXAAPass();

            AddPass(fxaaPass);

            AddPass(new GrayScalePass());

            var refractionPass = new RefractionPass();

            refractionPass.RefractionTexture = Application.Content.Load <Texture2D>("Textures/hexagrid");
            refractionPass.TextureTiling     = new Vector2(0.5f);
            AddPass(refractionPass);

            _simpleBlurPass = new SimpleBlurPass();
            AddPass(_simpleBlurPass);

            // Setup UI
            var elementsCount = _passes.Length + 1;
            var titles        = new string[] { "None", "Bloom", "C64 Filter", "CGA Filter", "Convolution", "Film", "FXAA", "GrayScale", "Refraction", "Simple Blur" };

            _boxRect = new Rectangle(Screen.VirtualWidth - 190, 10, 180, 45 * (_passes.Length + 1));

            _widgets = new Widget[elementsCount];

            for (int i = 0; i < elementsCount; i++)
            {
                _widgets[i]      = new Widget();
                _widgets[i].Name = titles[i];

                if (i == 0)
                {
                    _widgets[i].Rect = new Rectangle(_boxRect.X + 10, _boxRect.Y + 30, _boxRect.Width - 20, 30);
                }
                else
                {
                    _widgets[i].Rect = new Rectangle(_boxRect.X + 10, _widgets[i - 1].Rect.Y + 40, _boxRect.Width - 20, 30);
                }
            }

            _activePassIndex = 0;
        }
예제 #6
0
 internal void addPass(BloomPass effectBloom)
 {
     throw new NotImplementedException();
 }
예제 #7
0
 internal void addPass(BloomPass effectBloom)
 {
     throw new NotImplementedException();
 }