mirror of
https://github.com/celisej567/metaballs.git
synced 2025-12-31 09:49:26 +03:00
76e4be1dc1359dca67f15beadb18781edcd5d326
Now containers will have different meshes. Added Bouncing Ball in context menu. Added Metaballs namespace. Added QuakeFastSqrt function instead default sqrt in .compute shader. Fixed some bugs. Bug: actuall you can't use more then one Conteiner, because for some reason only one work at one time. It will show, but not updates.
Fork of the dario-zubovic/metaballs repo.
What difference? My fork have:
- Rendering optimisations.
- Editor preview.
- Editor Spawn Menu. (make sure that Container script has references to shader and material)
Now goes default readme.
Unity 3D metaballs
Unity 3D implementation of marching cubes algorithm for rendering metaballs. Metaballs can be used for gameplay purposes (gels in Valve's Portal 2), or as a decoration, as shown in the image below. They can also be used to visualise various fields in physics (for example, each metaball can represent single point charge, and electrostatic potetial due to point charge equation can be used as a falloff function).
Metaball functions are evaluated on GPU. Falloff functions can be chosen in the compute shader with a define statements. Marching cubes algorithm partially executes on GPU and partially on CPU.
Thanks to Filip Ugrin for providing 3d models for example scene!
TODO list:
move marching cubes algorithm to GPUpartially moved marching cubes to compute shader, but there is still room for improvement- implement some kind of subdivision smoothing algorithm
- create example scene with rigidbody metaballs
- create example scene with electric potential visualization
References:
- William E. Lorensen and Harvey E. Cline. 1987. Marching cubes: A high resolution 3D surface construction algorithm. In Proceedings of the 14th annual conference on Computer graphics and interactive techniques (SIGGRAPH '87), Maureen C. Stone (Ed.). ACM, New York, NY, USA, 163-169.
- Marching cubes lookup tables taken from here: http://www.paulsprojects.net/opengl/metaballs/metaballs.html
- Brian Wyvill and Geoff Wyvill. Field functions for implicit surfaces. The Visual Computer, 5:75–82, December 1989.
Languages
C#
99.2%
ShaderLab
0.8%

