protected override void OnRenderFrame(FrameEventArgs e)
        {
            base.OnRenderFrame(e);
            entity.IncreaseRotation(0, .01f, 0);
            cam.Move(currentKeyDown);

            renderer.Prepare(WIDTH, HEIGHT);

            shader.Start();
            shader.LoadViewMatrix(cam);
            renderer.RenderEntity(entity, shader);
            shader.Stop();

            SwapBuffers();
        }
예제 #2
0
        public void Render(Light light, Camera camera)
        {
            Prepare();
            staticShader.Start();
            staticShader.LoadLight(light);
            staticShader.LoadViewMatrix(camera);

            entityRenderer.Render(entities);

            staticShader.Stop();

            terrainShader.Start();
            terrainShader.LoadLight(light);
            terrainShader.LoadViewMatrix(camera);

            terrainRenderer.Render(terrains);

            terrainShader.Stop();

            entities.Clear();
            terrains.Clear();
        }
예제 #3
0
        protected override void OnRenderFrame(FrameEventArgs e)
        {
            Title = $"OpenTK Guide (Vsync: {VSync.ToString()}) FPS: {(1f / e.Time).ToString("0.")}";

            GL.Enable(EnableCap.DepthTest);
            GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);

            //_entity.MoveEntity(new Vector3(0, 0, -0.2f));
            _entity.RotateEntity(0, 1f, 0);

            using (var _renderer = new Renderer(_shader))
            {
                _camera.Move();
                _shader.Start();
                _shader.LoadLight(_light);
                _shader.LoadViewMatrix(_camera);
                _renderer.Render(_entity, _shader);
                _shader.Stop();
            }

            SwapBuffers();
        }
예제 #4
0
        public virtual void Render()
        {
            shader.Use();
            shader.LoadViewMatrix(camera.GetViewMatrix());

            Gl.Enable(EnableCap.CullFace);
            Gl.CullFace(CullFaceMode.Back);

            foreach (KeyValuePair <GenericVAO, List <ModelEntity> > item in entityDictionary)
            {
                GenericVAO model = item.Key;
                PrepareModel(model);
                foreach (Entity entity in item.Value)
                {
                    shader.LoadTransformationMatrix(Maths.CreateTransformationMatrix(entity));
                    Gl.DrawElements(model.DrawMode, model.VertexCount, model.ElementType, model.OffsetInBytes);
                }
                UnBindModel();
            }

            entityDictionary.Clear();
        }