There is no 2D rendering in Ultra. There is only cameras with orthographic projection:
auto orthocamera = CreateCamera(world, PROJECTION_ORTHOGRAPHIC)
orthocamera->SetPosition(float(framebuffer->size.x) * 0.5f, float(framebuffer->size.y) * 0.5f, 0);
All cameras that render to a texture buffer are drawn first, then other cameras are rendered, in the order they are created.
You can create a sprite, create a material, get the texture buffer's color texture and apply it to the material, apply the material to the sprite, and place the sprite in front of your final orthographic camera, and that will make the two renders appear onscreen.
The reason it's done this way is because it gives you a lot of power to do anything you want. Post-processing effects can be applied underneath or on top of 2D graphics. You can add 2D graphics in the background. You can make multiple camera renders appear on screen.
This method can be used to control which entities are visible to which cameras:
https://www.ultraengine.com/learn/Entity_SetRenderLayers
The second example here might be helpful:
https://www.ultraengine.com/learn/CreateInterface