The thing about non-linear projections is that the projection of a straight line isn’t a straight line. So you can’t project a triangle simply by projecting the vertices. Typically, you’d either use tessellation to get a sufficient approximation, or project onto the faces of a cube map and then project the cube map as a post-processing step using a fragment shader.