public void Draw() { if (DefaultShader != null && DefaultShader.Use()) { ShaderProgram.UseVertexBuffer(DefaultVertexBuffer); } else { if (ShaderProgram.CurrentBoundVBuffer != DefaultVertexBuffer) { ShaderProgram.UseVertexBuffer(DefaultVertexBuffer); } } ShaderProgram.UseIndexBuffer(IndexBuffer); Transform.ApplyToShader(ShaderProgram.CurrentInUseShader); ShaderProgram.CurrentInUseShader.FinalizeTransformations(); foreach (ModelMeshPart part in Parts) { part.Draw(); } }