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

Latest commit

 

History

History
29 lines (16 loc) · 1.52 KB

README.md

File metadata and controls

29 lines (16 loc) · 1.52 KB

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