top of page
Perennial.png

Perennial - 2022

3D platformer

3D Raymarching

unity icon_dark.png
c#icon_dark.png
About

Perennial started as my AIE computer graphics assignment.

The character, clouds and platforms are drawn using a technique called ray marching. Ray marching works by getting a ray from the camera to each pixel on the screen, then for each ray, the distance from the scene is calculated and the ray moves foward by that amount, this is repeated untill the distance from the scene is close to zero and then the lighting is calculated and the pixel is drawn.

To intergrate this into Unity I created a mono-behaviour component called RayMarchRenderer. Each ray march object passes its values to the ray march camera, the camera then brings everything together and tells the shader what to draw.

Because ray marching is extremely computationally expensive, adding any reasonable amount of dynamic platforms isn't possible. To solve this problem the ray marched platforms dynamically switch between rasterization and ray marching. Platforms that are close, are rendererd with ray marching whilst objects far away from the camera have a mesh to mimic the shape that a raymarched platform would have had. I also created a normal shader to mimic the lighting I used in the ray march shader.

Perennial is a work in progress and currently the story and levels are not implemented. When finished Perennial will be a simple 3D platformer with metophorical story telling.

Features
  • Real time ray marching

  • Hybrid rendering

  • Fluid character controller

  • Unity ray march components

wavenordLighter_edited.jpg

Screenshots

bottom of page