Skip to content

Flafla2/Generic-Raymarch-Unity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Distance Field Raymarcher for Unity

This is an implementation of Distance Field Raymarching in the Unity game engine. It was created to be used as a reference implementation in future projects. For a comprehensive technical writeup about how Distance Field Raymarching works, see this article on my blog.

Below are a few of the major features of this implementation:

  1. Complete Implementation of Distance Field Raymarching. This repository demonstrates how to construct a fully working implementation of Distance Field Raymarching. Using this repository as a base, you can focus on implementation details instead of the more technical aspects of raymarching. Additionally, I include a number of useful Distance Field primitives (sphere, box, torus, cylinder, etc) and Combine Operations (Union, Intersection, Subtraction) - see DistanceFunc.cginc for details. Below is a gif of the included demo scene:
  2. Interaction with mesh-based Objects. This implementation takes Unity's depth buffer into account, so your raymarched objects can intersect and interact with traditional mesh-based objects.
  3. Heatmap-based Performance Testing. The system has support for heatmap-based performance testing using a color ramp. Below is an example of this output (red = many samples per pixel, blue = fewer samples):
  4. Open Source and License. This implementation is released under the liberal MIT License, so it is easy use it in your projects.

About

An experiment in distance field raymarching that interacts with standard mesh-based objects. Made in Unity.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published