7 ms·
I remember when Voxels were the "Next Big Thing", 20 years ago. Delta Force: https://en.wikipedia.org/wiki/Delta_Force_(video_game) https://en.wikipedia.org/w
by strictnein 8y ago
I remember when Voxels were the "Next Big Thing", 20 years ago.
Delta Force:
https://en.wikipedia.org/wiki/Delta_Force_(video_game) https://en.wikipedia.org/wiki/Delta_Force_(video_game)
Which used the Voxel Space engine:
https://en.wikipedia.org/wiki/Voxel_Space https://en.wikipedia.org/wiki/Voxel_Space
- hardwaresofton 8y agoWhat was/is holding voxel back? the new programming model? computation density? I guess minecraft is an example of a voxel game (supposed a voxel game written in block style according to a random post on the internet[0]) that became really popular -- so I guess the answer could be "nothing", but it sure seems like voxels are still niche (and don't want to be). [0]: https://forum.unity.com/threads/voxel-games-vs-block-games.286747/ https://forum.unity.com/threads/voxel-games-vs-block-games.2...
- dragonwriter 8y ago> What was/is holding voxel back? The fact that the domains they might be used in are also the domains people are guaranteed to have spent a lot of money on specialized polygon-pushing processors. Voxel techniques seemed to peak at about the time of the last hurrah of CPU-based rendering.
- s-macke 8y agoThe „Voxel Space“ engine from the 90th has only very little to do with what we call voxel today. It it basically a raycasting engine for height maps [0]. It is very limited. You can‘t look up and down more than 20 degrees and you can‘t even render houses, cars or trees. [0] https://github.com/s-macke/VoxelSpace https://github.com/s-macke/VoxelSpace
- AstralStorm 8y agoThe main problem is memory bandwidth at higher resolutions. Minecraft runs at a really low resolution. (Internally.) Occlusion handling is less efficient too because bounding and occlusion volumes are discrete and either very inaccurate or nearly as slow as rendering the voxels.
- pandaman 8y agoIn principle, "voxels" and "polygons" are the same algorithm - you project some points on the surface to the screen and eliminate invisible ones with the z-buffer. Polygons allow to use sparser points and fill space between them with interpolation, voxels rely on the points density or blowing up the point size. Interpolation is quite complicated and voxels, on the other hand, could be arranged so it would be very easy to draw on a traditional CPU. So one could write a really fast voxel renderer on something like Pentium 200, which would produce better looking graphics than a polygonal renderer at the same speed (it would not be as versatile but when you do a demo you are free to chose scenes where voxels will do the job better). On GPUs interpolation is not just cheap but it's the only way to exploit massive parallelism since you can draw all interpolated points simultaneously. Drawing points, on the other hand, is sequential (because of z-buffer all primitives have to be drawn in the fixed order) and is already super slow by itself. GPUs are also optimized for drawing triangles so they do a lot of things with them they cannot do for a list of points (which would be the primitive you'd use to draw voxels). Of course you can do your voxels on compute but then you are not using color/depth buffer hardware so either way you are disadvantaged.
- dkersten 8y agoIt was my understanding that a large reason why early voxel engines had great performance is because you only draw each pixel once (kinda like how deferred lighting only calculates lights for each pixel once) eliminating overdraw and therefore doing work that wasn’t ever going to be visible. But now GPUs can crunch that data super fast (as you say) and memory bandwidth is often a bigger issue. So while voxels still get used in some places, they’re avoided in favour of more compressed data formats and rendering techniques. At least, that’s what it sounded like to me, I’m no graphics expert.
- phkahler 8y ago>> What was/is holding voxel back? Modeling and animation. I'm not even sure what some of these videos are showing, but it doesn't seem like it can be real voxels on a regular grid. Regular grids are hard to create models with, and are essentially impossible to animate in useful ways. I didn't see mention of how the animation in these clips was being done but there were indications that the models started out as polygons.
- JKCalhoun 8y agoArticle calls out Minecraft: voxel-looking, actually polygons though. A kind of voxel-cheater.
- DonHopkins 8y agoOne question is how to you rig and deform voxel models onto skeletal animation?
- DonHopkins 8y agoAnother technique related to voxels is the "Signed Distance Field" (using a data Field or procedural Function). Signed Distance Function: https://en.wikipedia.org/wiki/Signed_distance_function https://en.wikipedia.org/wiki/Signed_distance_function 2D Signed Distance Fields are used for rendering fonts and other shapes defined by a texture whose signed pixels (-128..128) specify how far each is from the border (+ is outside, 0 is on the border, - is inside). They scale beautifully because you can smoothly interpolate between samples. Drawing Text with Signed Distance Fields in Mapbox GL: https://blog.mapbox.com/drawing-text-with-signed-distance-fields-in-mapbox-gl-b0933af6f817 https://blog.mapbox.com/drawing-text-with-signed-distance-fi... TextMesh Pro - Font Asset Creation Process: https://www.youtube.com/watch?v=eXhfygRgIVY https://www.youtube.com/watch?v=eXhfygRgIVY You can convert them to piecewise outline contours (like an iso-map slicing at many different elevations) with the Marching Squares algorithm, but it's much more efficient to render them directly pixel-by-pixel with a shader. Marching Squares: https://en.wikipedia.org/wiki/Marching_squares https://en.wikipedia.org/wiki/Marching_squares Signed Distance Fields are excellent for shaders efficiently antialiasing and drawing effects like outlines, drop shadows, embossed and beveled edges, glows, multi texture mapping, bump mapping, etc). The shader can quickly determine exactly how far away each pixel is from the outline, and blend the appropriate effects together for that pixel, so you get precise anti-aliasing, outlines, drop shadows, etc, practically for free! (And literally for free, now that Unity gives TextMesh Pro away for free.) TextMesh Pro - Unite 14 Demo: https://www.youtube.com/watch?v=q3ROZmdu65o https://www.youtube.com/watch?v=q3ROZmdu65o 3D Signed Distance Fields are used for rendering volumes with the Marching Cubes and Tetrahedra algorithms (which are nice for users continuously carving and sculpting with tools, like Astroneer). Astroneer: https://astroneer.space/ https://astroneer.space/ Astroneer - Digging to the Center of the Planet: https://www.youtube.com/watch?v=C3zxBhPzxYU https://www.youtube.com/watch?v=C3zxBhPzxYU That also scales and handles different levels of detail nicely because you can interpolate between samples -- it creates smooth polygon meshes with interpolated normals, not harsh cubes with pointy corners like Minecraft. Marching Cubes: https://en.wikipedia.org/wiki/Marching_cubes https://en.wikipedia.org/wiki/Marching_cubes Marching Tetrahedra: https://en.wikipedia.org/wiki/Marching_tetrahedra https://en.wikipedia.org/wiki/Marching_tetrahedra Fast Marching Method: https://en.wikipedia.org/wiki/Fast_marching_method https://en.wikipedia.org/wiki/Fast_marching_method Fast Sweeping Method: https://en.wikipedia.org/wiki/Fast_sweeping_method https://en.wikipedia.org/wiki/Fast_sweeping_method Level-Set Method: https://en.wikipedia.org/wiki/Level-set_method https://en.wikipedia.org/wiki/Level-set_method Shaders can't render 3D Signed Distance Fields as directly and efficiently as 2D (unless you're rendering to 3D volumetric textures). But you can still implement Marching Cubes on the GPU, using compute shaders (or abusing 2D shaders). Marching Cubes on the GPU for Unity3D: https://github.com/Scrawk/Marching-Cubes-On-The-GPU https://github.com/Scrawk/Marching-Cubes-On-The-GPU
- JazzXP 8y agoEven older than that, Comanche: Maximum Overkill (1992) was voxel based. Amazing at the time, but I remember it'd fall apart pretty quickly as you got close to objects. https://en.wikipedia.org/wiki/Comanche_(video_game_series) https://en.wikipedia.org/wiki/Comanche_(video_game_series)
- streb-lo 8y agoThe author doesn't see it the same way: "There are a bunch of techniques people typically consider being voxel-based. The oldest ones used in games were height-map based where the renderer interpreted a 2D map of height values to calculate boundary between the air and the ground in the scene. That‘s not truly a voxel-based approach as there‘s no volumetric data set in use (ie in Delta Force 1, Comanche, Outcast, and others)."
- LoSboccacc 8y agoI saw them doing the same pitch for a decade now, can't find old version because I don't remember their original name but I do remember their terrain demo. https://www.youtube.com/watch?v=Gshc8GMTa1Y https://www.youtube.com/watch?v=Gshc8GMTa1Y it was quite impressive 8 years ago as it is today, but 10 years of demo without applications are weird. here's a 2011 critique from notch of this very technology https://notch.tumblr.com/post/8386977075/its-a-scam https://notch.tumblr.com/post/8386977075/its-a-scam - I don't think things have changed much
- dkersten 8y agoThe Notch blog post you linked mentions Euclideon’s “Infinite Detail”. I’ve looked into that over the years (but don’t know anything about Atomontage), so will post my thoughts here. My understanding of Euclideon (based on the snippets of information, interviews and videos they’ve released) is that the primary technology they created is an on disk spatial index and streaming system that allows only the data that is on screen to be streamed from disk, allowing them to have very large and complex datasets on disk while still rendering in real time. The “infinite detail” branding was referring to that the detail possible is only limited by disk space, not by rendering performance. That sounds pretty cool to me and not a scam as many people think. However, they’ve never been particularly convincing in the applicability to games or even that the quality gains are as high as they claim. They kept touting how easy it is for artists since they can 3d scan real objects and use that scan data almost directly (but many polygonal models start as scans too, so...), but I’ve never been impressed with the quality of their scans or demos. Their highest quality demos are nice (a lot nicer than their earlier demos which, to me, honestly looked like it was from the 90s) but they still don’t compare to modern games in my opinion. They also have not proven that it works well for animations or dynamic lighting and shadowing. At least, they’ve never demonstrated it. They did use their tech for their Holoverse[0] games, but, again, the quality of the actual graphics wasn’t particularly impressive in my opinion (certainly the animations seemed stiff and boring) and from reviews I’ve seen on YouTube, VR headsets provide a better experience and superior quality. So, my verdict is that they do have some novel and interesting tech, but they haven’t been able to get anywhere close to the quality claims that they’ve made and I certainly wouldn’t bet on them over more traditional modern graphics. [0] https://www.holoverse.com.au https://www.holoverse.com.au
- pjtr 8y agoAfter seeing Comanche in 1992, the term "voxels" for a time was quasi-synonymous with "heightmap terrain" to me. https://en.wikipedia.org/wiki/Comanche_(video_game_series) https://en.wikipedia.org/wiki/Comanche_(video_game_series) There used to be quite a few Turbo Pascal "voxel"-heightmap demos floating around. Blade Runner was surprising: It used voxels for characters. https://en.wikipedia.org/wiki/Blade_Runner_(1997_video_game) https://en.wikipedia.org/wiki/Blade_Runner_(1997_video_game) The technique seemed to fall out of favor for a while due to the polygon GPU boom (I guess I missed Delta Force) until Outcast in 1999. (Back to heightmap terrains.) https://en.wikipedia.org/wiki/Outcast_(video_game) https://en.wikipedia.org/wiki/Outcast_(video_game)
- madmoose 8y agoBlade Runner didn't actually use voxels, they used a rather unique technique that they called "slice animations". The 3D models were sliced from bottom to top into a couple of hundred slices (depending on desired quality) by intersecting the model with a horizontal plane and storing the resulting polygons. The engine can only rotate the models around the vertical axis. I made a hacky javascript version of the renderer a long time ago: http://thomas.fach-pedersen.net/bladerunner/mccoy_anim_13_frame_0.html http://thomas.fach-pedersen.net/bladerunner/mccoy_anim_13_fr... EDIT: Let me also plug our WIP Blade Runner engine for ScummVM: https://github.com/scummvm/scummvm/tree/master/engines/bladerunner https://github.com/scummvm/scummvm/tree/master/engines/blade...
- digi_owl 8y agohttps://en.wikipedia.org/wiki/Blade_Runner_%281997_video_game%29 https://en.wikipedia.org/wiki/Blade_Runner_%281997_video_gam... Seems that the people that developed the game considers it voxel based.
- anc84 8y agoRead on: https://en.wikipedia.org/wiki/Blade_Runner_(1997_video_game)#cite_ref-PC_Gamer_13-8 https://en.wikipedia.org/wiki/Blade_Runner_(1997_video_game)...
- pasabagi 8y agoI think the difference is VR. At the moment, CGI is essentially a craft. You use a set of tricks, illusions, and hacks to deliver an immersive experience. Games like Doom show that when you get all these tricks right, the result is impressive. Unfortunately, like all hacks, they aren't robust. Most of them work on the assumption that the player won't look to closely at anything, or will only look at certain angles, or move through the game world at regular speeds. People who do CGI are already well aware that when you go into VR, a lot of the hacks just don't work. Often, to deliver a high-quality experience, you have to throw polygons at the problem. I'm pretty skeptical of this presentation - talking that much about optimization and performance makes me suspicious that their performance is terrible. However, ultimately, unless better hacks are devised, I think VR will be too much of a robustness test for the current model. In the short term, that will probably just result in some ugly graphics. In the long term, it'll put a lot of weight behind the drive to find better, less hacky solutions - and voxels are kinda first and foremost in that category.
- digi_owl 8y agoI recall some glorious LAN sessions in the various Delta Force games. Only shooters where to snipe you actually had to account for bullet drop because of the distances involved.