Yes you do^^. if you render to texture, the user will always see the pixels in closeup and perspective is never correct way.
Basic Concepts:
Rendering:
The Portal renders nothing special. Just a given value for each pixel of it’s surface into a seperated screen buffer(shared by all portals). The Portal itself remains (theoreticall) invisible. The camera which is attached to the portal renders it’s content to an invisible screensized rendertarget. Each portal has it’s unique per pixel value and Rendertarget. A Postprocess runs overall pixels of the shared screen bufer and for each value it finds(Value <> 0) it picks the corresponding invisible rendertarget and drasw the corresponding pixel onto the screen.
Camera:
Each Camera, which is attached to a portal, MOVES and ROTATES relative to the player camera at the source portal. Playercamera is calculatet to relative position and rotation to the sourceportal, and relative data is then calculatet to absolute position and rotation based on the targetportal.
Because cameras of portals move and rotate, you need to setup a clipplane at the eventhorizon of the given portal for the given Portalcamera. The PortalCamera is usually behind the portal and collides with objects/walls behind it, otherwhise.
If a detailed rundown of is required, or asked by someone, tell me and i’ll see what i can do. (mostly concept presented on another engine implementation as shown in my video above, but no UE4 implementation. At least not yet as i lack knowledge)