예제 #1
0
        protected override void Draw()
        {
            Water.material.Set("wave_timestamp", ElapsedTime / 1000.0f);

            DrawCalls = 3u;
            Prepare();
            SyncScene();
            ClipDistance = true;

            ClipPlane = new vec4(0.0f, +1.0f, 0.0f, +1.0f);
            WFB.ReflectionFBO.Bind();
            MainCamera.Reflect();
            UpdateCamera();
            DrawScene();

            ClipPlane = new vec4(0.0f, -1.0f, 0.0f, 0.0f);
            WFB.RefractionFBO.Bind();
            MainCamera.ReflectBack();
            UpdateCamera();
            DrawScene();

            ClipDistance = false;
            FrameBuffer.BindRenderingWindow();
            Viewport();
            DrawScene();

            Water?.Sync();
            Water?.Draw();
        }