All projects

3D · Shader programming · Group project

Pavilia: Portal Mechanic

A custom Unity portal that renders a live, perspective-correct view between two student-built worlds.

Role

Technical lead, portal system

Status

Completed

Engine

Unity

Stack

HLSL · Render Textures · C#

Portal in the Pavilia scene showing a live view into the second world
Live portal view from the blossom world into the island world
The project

A live connection between two Unity scenes.

My partner built a cherry-blossom tree and an island. I owned the portal system and the visual integration between them.

The portal maintains parallax as the player moves, renders the destination from the player's perspective, and transfers the player through the plane without a visible break.

The build

Two cameras, one illusion.

A second camera in the destination world mirrors the player's position relative to the portal. Its output is rendered onto the portal surface every frame.

01

Dual-camera system

A second camera mathematically replicates the player's movement relative to the far portal, so the view through it is always perspective-true.

02

Render texture pipeline

The mirrored camera streams onto the portal surface as a live render texture.

03

Hand-tuned HLSL

The stock projection clipped the island's edges; I rewrote the shader so the full island reads through the portal from every angle.

04

Seamless teleport

Crossing the portal plane moves the player into the destination world and disables the source portal behind them.

The island world seen through the portal shader
The HLSL projection keeps the island visible through the frame

What it proved

The completed mechanic combines camera transforms, render textures, HLSL, and player transfer in one portal system.