You need the MeshFilter in order to specify what mesh to render. Without a MeshFilter, you won’t see anything. Yes, you can delete the component at runtime and it will still render, at least for a while (probably cached like Graham Dunnett said). I wouldn’t rely on that, though, and you don’t gain anything, so there’s no reason to do it. Try this: put an object in the scene, delete the MeshFilter component, save the scene, then reload it. See, now the object is invisible, because it doesn’t know what to render.