Towards Realtime Deformable Worlds: Why Tetrahedra Rule, Voxels Drool
blog.duangle.com
blog.duangle.com
Voxels are just so easy.
Here is my past work in tetrahedrals:
- https://cs.uwaterloo.ca/~c2batty/papers/Batty10/ - https://cs.uwaterloo.ca/~c2batty/papers/Batty11.pdf
One related resource that I can recommend is Digital Geometry Processing with Discrete Exterior Calculus:
http://www.cs.columbia.edu/~keenan/Projects/DGPDEC/
It's an introductory course in discrete differential geometry and it emphasizes the use of simplicial complexes (like tetrahedral meshes).
Squares have the problem that there are ambiguous cases at saddle points, which you don't get with triangles. If you have this:
1 0
0 1
It could be this: 1 . 0
.
. .
.
0 . 1
Or this: 1 . 0
.
. .
.
0 . 1
With triangles there is no analogous issue.Quads are just bad.
The vertigo of being inside a massive sphere in the 4th demo (https://www.youtube.com/watch?v=1FszskWOcRY) and the Alpha 30 (https://www.youtube.com/watch?t=76&v=dNm0l1L8O1A) remind me of my attempts, as a kid, to imagine what it's like to be inside Arthur C. Clarke's Rama (though Rama was a cylinder).
https://www.youtube.com/user/AtomontageEngine/videos?sort=dd...
Also, from CFD (Computational fluid dynamics) work I have done, cells are defined as a single point in their center. Would it be possible to do it this way and have the points connect to each other to form surfaces? Destroying a point would then cause adjacent points to generate a new surface with the now exposed point/s below. I am not sure how well this would translate though.
Things like having to elaborate hacks to get sub-voxel shapes and imperfect precision with rendering intersecting edges seem like limitations of any voxel based design, while the crude handling of lighting and reflections and very short LOD distance seems to be intentional limitations for performance reasons (and understandable given average voxel counts in player-created areas).
(If you don't recognize what that is, it's the property of having identical properties in all directions, or rather the lack thereof.)
In a voxel engine, you generally can't rotate things by arbitrary amounts. Ditto, physics doesn't work the same way in all directions. Ditto, things are substantially more complex to render in certain directions (look at MC rendering a diagonal wall versus a straight one, for instance.)
Though there are ways around some of this, e.g. [1]
It's actually quite hard to use 3D fractals in games (or any interactive application), unless you bake them to voxels or 3d meshes, but then you loose the infinite amount of detail that make fractals so interesting in the first place.
The rendering techniques used by 3d fractals are very GPU consuming and you can't really "edit" the world. But if anyone has been working on that, I'd be interested to see what they came up with.
I disagree about fractals losing all their interestingness when they aren't zoomable. There's still a slew of visual complexity. Maybe they wouldn't be as interesting, but they are oodles more interesting than spheres.