[HN Gopher] Voxel Displacement Renderer - Modernizing the Retro ...
___________________________________________________________________
Voxel Displacement Renderer - Modernizing the Retro 3D Aesthetic
Author : huhtenberg
Score : 242 points
Date : 2024-05-24 09:54 UTC (13 hours ago)
(HTM) web link (blog.danielschroeder.me)
(TXT) w3m dump (blog.danielschroeder.me)
| 7bit wrote:
| Impressive.
| zevv wrote:
| https://web.archive.org/web/20240524065427/https://blog.dani...
|
| https://www.youtube.com/watch?v=1xFEbXWstCM
| rspoerri wrote:
| Looks nice, but without shadows it's missing an important (and
| often very complex) feature.
| JKCalhoun wrote:
| Yeah, thinking it may need a second pass to produce shadows.
| It's not clear to me that you could "bake them in" since
| textures are reused.
|
| Stretch goal, dynamic lighting -- like someone carrying a torch
| ahead of you in a tunnel and illuminating as they went.
|
| To be sure though, the retro vibe is 100% nailed as is.
| ImHereToVote wrote:
| Just use a second uv for the lighting.
| pcdoodle wrote:
| Sometimes the lack of something shifts our focus elsewhere.
| Could be a feature.
| septune wrote:
| The benefits of having less is underrated.
| phendrenad2 wrote:
| This is inspiring. Makes me want to try to duplicate the results
| using old-fashioned bump mapping.
| zellyn wrote:
| That's a very appealing aesthetic (possibly because I'm old
| enough to remember downloading games over a 2400 baud modem!).
| Very nice work!
|
| That video looked great, and (at least for me) felt very
| evocative. In the section where the roof was too low, I started
| feeling claustrophobic and cramped.
|
| Those rock and sandy-floored caverns, and the cavern with
| boulders (which are gorgeous!) made me think I'd love playing a
| Myst or LucasArts-style adventure game using this as the
| renderer. Spelunking through caves, or archeological digs, etc.
|
| Can't wait to see where you take this!
| Varriount wrote:
| I agree. To me this is _very_ evocative of the pixel-art /retro
| look, even moreso than the low-poly Doom/Wolfenstein look.
| prox wrote:
| If the author realizes it, he could make the next Valheim
| hit.
| anthk wrote:
| No polygons in Doom/Wolf3D.
|
| The example from Back To Saturn X2 can be played on a
| software rendered engine with no concept of polygons at all.
| gsliepen wrote:
| Imagine a 3D version of Noita with this aesthetic, and perhaps
| using smoothed particle hydrodynamics to make the falling sand
| engine scale to 3D.
| abluecloud wrote:
| completely agree with the aesthetics!
|
| my issue with it that it looked so good, but the architecture
| felt wrong. in the part with the low ceiling, it felt like
| those blocks hanging from the roof were defying physics
| hatenberg wrote:
| I love love love it. Ultima Underworld comes to mind.
| nikolay wrote:
| I wish this was open-sourced! I wish!
| omoikane wrote:
| I wonder how this approach compares to Unreal Engine 5 nanites,
| or maybe Unreal Engine is actually doing something similar?
|
| I remember one motivation for using voxels in older games (like
| Comanche[1]) is that you can get seemly more complex terrains
| that, when modelled using triangle meshes, would have been more
| expensive on similar hardware. The author mentions 110FPS on a RX
| 5700 XT, I am not sure how that compares to other approaches.
|
| [1] https://en.wikipedia.org/wiki/Comanche_(video_game_series)
| jayd16 wrote:
| Its hard to say exactly because the OP doesn't go into the
| runtime mesh used but my guess is its quite different form
| Nanite.
|
| Nanite assumes high poly authoring of objects and works to
| stream in simplified chunks such that the rendered triangles
| are not less than a pixel wide. Displacement maps are a bit
| redundant because geometry can be naturally very detailed,
| there's no reason to use a texture map for it. (There is a case
| for Landscapes but that's a unique case)
|
| This seems to be using a displacement and a low poly mesh to
| generate high poly but 'voxelized' geo on load.
| Scaevolus wrote:
| Basically unrelated. He's using geometry shaders to generate
| voxel mesh details-- perhaps with some LOD optimizations, while
| Nanite is a GPU-driven rendering technology that adapts
| triangle density to aim for a given fidelity target.
|
| Nanite _can_ use displacement maps and perform tessellation,
| but it uses an alternate pathway that 's not necessarily more
| efficient than feeding it a high-poly asset to render.
| nicebyte wrote:
| I'd be very surprised if they were actually using geometry
| shaders (at least this conclusion can't be drawn from their
| post). Geom shaders are basically dead weight, a holdover
| from a bygone time, and are better avoided for modern
| renderers.
|
| The techniques they're drawing on mentioned in the post -
| parallax mapping, shell mapping - do not generate explicit
| geometry, rather they rely on raymarching through
| heightfields in the frag shader. It's more likely that
| they're doing something like that.
| scheeseman486 wrote:
| Parallax mapping breaks on the edges of polygons though,
| while this technique seems to actually add geometry since
| the edges of surfaces are appropriately detailed and bumpy.
| Scaevolus wrote:
| Err, right, they're doing the transformations CPU-side. The
| blog hints that it's related to shell maps, so maybe the
| new mesh geometry is densest on the sharp edges?
| fho wrote:
| Iirc Comanche used a ray tracing approach to render the terrain
| [1]. No Voxels there, just a 2D height map that is sampled.
|
| (They called it "VoxelSpace" ... so some confusion is
| warranted)
|
| [1] https://github.com/s-macke/VoxelSpace
| low_tech_love wrote:
| Sorry for being pedantic, but it's ray "casting" not tracing.
| It's similar in some ways but very different in others.
| torginus wrote:
| My guess its the exact same technique used in the Comanche
| games - or at least the same results can be achieved with it.
|
| Contrary to popular belief, those games didn't use true 3D
| voxels - they used a heightmap that stored a color and height
| value in the terrain texture which they raymarched into.
|
| You could recreate the same look with raymarching into the
| texture in a shader which I suspect would look very similar to
| what the blog post achieved..
| tcsenpai wrote:
| Sorry if I am dumb but...I was wondering if this in practice
| would theoretically be able to convert or render directly old
| games and graphics (provided the starting point is compatible) in
| such a "remastered" way.
|
| In any case I am at the third read and I think I understood
| enough to say "wow, looks and feels great. Would play TES Arena
| like that."
| vsuperpower2020 wrote:
| This is really cool, but with all homemade voxel engines I have
| to ask the same thing. Where is the game?
| scheeseman486 wrote:
| It's not a real voxel engine, the world geometry itself isn't
| much different from Quake.
| hgs3 wrote:
| This is neat, but I'm wondering how well the authors approach
| will map to animated 3D models. I'm guessing, at best, it might
| look something like the "Voxel Doom" mod for Doom [1] [2].
|
| [1]
| https://media.moddb.com/cache/images/mods/1/55/54112/thumb_6...
|
| [2]
| https://media.moddb.com/cache/images/mods/1/55/54112/thumb_6...
| cma wrote:
| The article has a footnote about Voxel Doom, but more about
| Voxel Doom's environment approach and not monsters:
|
| > Now that I've laid out all this context, I want to give a
| shout out to the Voxel Doom mod for classic Doom. The mod's
| author replaced the game's monsters and other sprites with
| voxel meshes to give them more depth, some very impressive
| work. Then, in late 2022, he began experimenting with using
| parallax mapping to add voxel details to the level geometry.
| This part of the mod didn't look as good, in my opinion -- not
| because of the author's artwork, but because of the fundamental
| limitations that come from using parallax mapping to render it.
| This mod wasn't the inspiration for my project -- I was already
| working on it -- but seeing the positive response the mod
| received online was very encouraging as I continued my own
| efforts. -
|
| It does say though that the approach supports animated doors
| and stuff so combined with mesh and texture flipbook I think it
| could be used for original doom looking monsters too, but sharp
| curvature areas I think have the most artifacts with shell
| mapping and he mentions limitations to the meshing of levels so
| maybe not.
| Animats wrote:
| There's another approach - Deep Bump.[1] Addresses the same
| problem, but in a totally different way.
|
| Deep Bump is a machine-learning tool which takes texture images
| and creates plausible normal maps from them. It's really good at
| stone and brick textures like the ones this voxel displacement
| renderer is using. It's OK at clothing textures - it seems to be
| able to recognize creases, pockets, and collars, and gives them
| normals that indicate depth. It's sort of OK on bark textures,
| and not very good on plants. This probably reflects the training
| set.
|
| So if you're upgrading games of the Doom/Wolfenstein genre,
| there's a good open source tool available.
|
| [1] https://github.com/HugoTini/DeepBump
| zellyn wrote:
| If I read that blog post correctly, it's a model to infer
| normal maps from textures, not a new way to render geometry.
|
| The article in this thread is more about a small-voxel-based
| representation of displacement maps. A tool like Deep Bump
| could conceivably be used to aid in the creation of texture
| assets for the system discussed in this thread.
| Animats wrote:
| Yes, it's a model to infer normal maps from textures. Then
| you can use a modern PBR renderer on old content and have a
| better illusion of depth. It doesn't introduce the blockiness
| of voxels.
| ricardobeat wrote:
| It seems the blockiness of voxels is the whole point.
| Applying normal maps to low-res textures doesn't look good
| and completely changes the look. Generating high-res
| textures from the originals makes it even worse.
|
| This voxel approach preserves the aesthetics of the old
| pixelated (now voxelated) graphics in a much more pleasing
| way.
| SuperHeavy256 wrote:
| This should be the future of modernizing retro 3D games. God,
| this is beautiful.
___________________________________________________________________
(page generated 2024-05-24 23:00 UTC)