private void PrepareInstance(Entity entity) { Matrix4 transformationMatrix = Maths.CreateTransformationMatrix( entity.Position, entity.Rotation, entity.Scale); shader.LoadTransformationMatrix(transformationMatrix); }
public void Render(Entity entity, StaticShader shader) { TexturedModel texturedModel = entity.TexturedModel; RawModel model = texturedModel.RawModel; GL.BindVertexArray(model.vaoID); GL.EnableVertexAttribArray(0); GL.EnableVertexAttribArray(1); GL.EnableVertexAttribArray(2); Matrix4 transformationMatrix = Maths.CreateTransformationMatrix( entity.Position, entity.RotationX, entity.RotationY, entity.RotationZ, entity.Scale); shader.LoadTransformationMatrix(ref transformationMatrix); ModelTexture modelTexture = entity.TexturedModel.Texture; shader.LoadShineVariables(modelTexture.ShineDamper, modelTexture.Reflectivity); GL.ActiveTexture(TextureUnit.Texture0); GL.BindTexture(TextureTarget.Texture2D, texturedModel.Texture.TextureID); GL.DrawElements(PrimitiveType.Triangles, model.vertexCount, DrawElementsType.UnsignedInt, 0); GL.DisableVertexAttribArray(0); GL.DisableVertexAttribArray(1); GL.DisableVertexAttribArray(2); GL.BindVertexArray(0); }
public void RenderEntity(Entity ent, StaticShader shader) { TexturedModel texturedModel = ent.Model; RawModel model = texturedModel.Model; GL.BindVertexArray(model.vaoID); GL.EnableVertexArrayAttrib(model.vaoID, 0); GL.EnableVertexArrayAttrib(model.vaoID, 1); Matrix4 transformationMatrix = Maths.CreateTransformationMatrix(ent.Position, ent.RotationX, ent.RotationY, ent.RotationZ, ent.Scale); shader.LoadTransformationMatrix(transformationMatrix); GL.ActiveTexture(TextureUnit.Texture0); GL.BindTexture(TextureTarget.Texture2D, texturedModel.ModelTexture.TextureID); GL.DrawElements(BeginMode.Triangles, model.vertexCount, DrawElementsType.UnsignedInt, 0); GL.DisableVertexArrayAttrib(model.vaoID, 0); GL.DisableVertexArrayAttrib(model.vaoID, 1); GL.BindVertexArray(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(); }