Skip to content
This repository has been archived by the owner on Apr 7, 2022. It is now read-only.

Visualizing scalar fields using the marching cubes algorithm. Implemented using Unity3D w. the Unity Job System & Burst compiler.

Notifications You must be signed in to change notification settings

akoreman/Marching-Cubes-Unity-Job-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Marching Cubes

Implementation of the marching cubes algorithm to visualise isolines of scalar fields. Implemented using Unity3D and multithreaded using the Unity Job System with the Unity Burst compiler. For the fluid stream benchmark scene using the job system and burst compiler increases the framerate from +/- 25 fps to +/- 85 fps on an (8 core/16 thread) Intel i7 11700 CPU. Currently the scripts are setup to recalculate the complete mesh every frame for benchmarking purposes.

Currently implemented:

  • 3D marching cubes for visualising scalar fields, mesh generation optimization by using the Unity C# Job System and Burst compiler.
  • System to construct scalar fields by adding variable strength point charges to the scene.
  • Toggleable vertex welding and normal interpolation by using dictionaries.
  • Toggleable vertex interpolation to switch between "voxel" look and smooth look.
  • Support for varying cube size and number for speed/resolution trade-off.
  • Support for varying scalar field drop-off for the ball charges to control interaction range.

Screenshots

Metaballs

Stream of metaballs for a fluid like effect

The two most resource-intensive tasks scheduled to the pool of workers

About

Visualizing scalar fields using the marching cubes algorithm. Implemented using Unity3D w. the Unity Job System & Burst compiler.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published