2 ms·
I’d love to live in an alternative timeline where GPUs are voxel-based.
by layer8 2y ago
I’d love to live in an alternative timeline where GPUs are voxel-based.
- kimixa 2y agoDespite the name, there's not really much here that has much to do with "voxels" - it's a heightmap and raycasting. It's kinda similar to Parallax mapping in a way. I'd also be interested in what a "voxel-based" GPU would look like, they already support sampling 3d volumes in 3d textures, and the issues they have (namely memory use) seem pretty fundamental and I'm not sure how they can be overcome to match the scale of 3d environments expected today.
- layer8 2y agoIt has been generalized to stuff like what is linked in https://news.ycombinator.com/item?id=42590154 https://news.ycombinator.com/item?id=42590154. Clearly (?) the way the math works out, the polygon-oriented GPUs we have make more sense for 3D graphics. But one can imagine a universe where things would be different.
- kimixa 2y agoThe issue with voxels is sparseness - to have any hope of storing a world in the ram we have available it pretty much needs to have some variable length encoding, which makes it extremely difficult to use in a parallel manner as required by hardware. It's why for display pretty much every modern voxel engine processes the sparse voxel world into a dense surface list - which then maps (reasonably) well to triangles. I'd argue this difficulty in parallelization is a bigger hurdle than "just" engineering effort. Much of the way a GPU functions isn't because we decided we loved triangles, but we found things that parallelize well and worked backwards. And then on modern GPUs don't actually devote that much area to dealing with "triangles" - so little is gained that it's often not worth redesigning to remove that capability from data centre "GPUs" that will never see a single triangle in their lives.
- xyzsparetimexyz 2y ago>The issue with voxels is sparseness - to have any hope of storing a world in the ram we have available it pretty much needs to have some variable length encoding, which makes it extremely difficult to use in a parallel manner as required by hardware. Signed Voxel Octrees, and SVO Directed Acyclic Graphs in particular solve this pretty well. Most megavoxel engines are an implementation of this paper: https://graphics.tudelft.nl/Publications-new/2020/CBE20/ModifyingCompressedVoxels-main.pdf https://graphics.tudelft.nl/Publications-new/2020/CBE20/Modi...
- binary132 2y agoGPUs? Are those like VPUs but for geometrexels?
- layer8 2y agoNice. At least we have VRAM. The term VPU is already taken though: https://en.wikipedia.org/wiki/Vision_processing_unit https://en.wikipedia.org/wiki/Vision_processing_unit
- binary132 2y agotimestream must have been forked before AI slop was pervasively installed on every handheld computer
- cpldcpu 2y agoVoxel rendering is basically raymarching. Current GPUs can implement this easily as pixelshaders. Plenty of examples on https://www.shadertoy.com/ https://www.shadertoy.com/
- xyzsparetimexyz 2y agoProbably wouldn't be too much different from modern gpus. The main difference would probably just be that it'd have a hardware method for doing ray-Signed Voxel Octree intersections.
- djmips 2y agoWith the flexibility of modern GPUs where some of the fastest rendering is pure compute, in a fashion you can code this up yourself or check out some of the commercial offering like Teardown.
- flohofwoe 2y agoIt would just be throwing more hardware resources at filling the screen with pixels. Describing geometry surfaces with triangles and textures is essentially a compression method to save massive amounts of memory and bandwidth. The downside is that you can't do some things that raymarching a voxel volume enables, and that the idea of triangle rasterization doesn't make much sense when triangles approach pixel size. The principle that image generation methods are dictated by available bandwidth goes all the way back to the first graphical computers (for instance the weird color-attribute encoding in the ZX Spectrum is essentially an image compression method to get more graphical fidelity out of a very limited memory bandwidth).