예제 #1
0
 public Renderer(StaticShader shader)
 {
     projectionMatrix = Matrix4.CreatePerspectiveFieldOfView(
         (float)((Math.PI / 180) * 70f),
         1280f / 720f,
         0.1f,
         1000f);
     shader.Use();
     shader.LoadProjectionMatrix(ref projectionMatrix);
     shader.UnUse();
 }
예제 #2
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();
        }