I'm making a *tiny* voxel renderer
ฝัง
- เผยแพร่เมื่อ 21 ส.ค. 2024
- [set quality to 1440p for best results]
This is a custom renderer that uses very small voxels to create detailed, stylized environments. I wanted to modernize the retro look of games like Doom and Quake, where pixelated textures give surfaces a blocky appearance up close. Now, surfaces have blocky three-dimensional details - voxels. The result has a foot in both worlds between retro 3D graphics and something much more modern.
Despite all the voxel detail, I actually modeled this environment with textured, low-poly triangle meshes. How does this work? What am I planning to do with it? For more info, or to get in touch, see here: blog.danielsch...
Captured on a Radeon RX 5700 XT at 1440p with frame-times from 4 to 9 ms, or 250 to 110 FPS. (There are some small skips in the video capture; OBS doesn't like my computer.) The same demo sequence stays above 60 FPS on a Steam Deck OLED at its native 800p, with many parts locked at 90 FPS.
Dont let Big Polygon buy you out, stay strong brother
fk that take the bag
maybe just read his article on it, it is polygons behind
@@dranon0o Yeah I read the article afterwards XD it's a good idea
@@dranon0o At the end of the day, it has to be because of the way GPUs work.
They'd buy him out and bury the project
This. This is what Doom and Heretic and Hexen looked like to me when I was 12.
yesss
accuraate
Yeah! Wow, such memories! I remember that game Hexen - that seemed kind of exotic or new when it came out as it was something different to Doom and Quake.
I was trying to think of why this was making me feel nostalgic. Totally made me think of Heretic.
I'm glad I'm not the only one instantly going to Heretic's level textures
This style is perfect for nostalgic remasters of classic games. I can imagine the PS1 remakes looking so good with this.
Imagine if we got a New Xwing-Vs Tie Fighter, Quake, Elder Scrolls, Marathon, doom etc in this engine
Ultima Underworld 🙂
This is really cool. It's the first time voxels look like 3D pixels to me. Usually, since voxels used are so big, they stop looking like tiny components of a bigger thing and just look like cubes, which is why I've never been a big fan of them. Here you can see the big picture, and the voxels just give it the texture. I've seen nice art made out of tiny voxels, but never in the context of a game. So yea, nice work!
I agree. It's a strange phenomenon. Once you miniaturise them enough, they feel much more like pixels. I'd love to see different sized voxels compared in each scene, so we can see just how much they impact the feel of it. I've got a feeling this is the optimal size already though. Too small and they're essentially just pixels.
a n i m e
n
i
m
e
Finally, minecraft 2
God I fucking wish
It's like calling Terraria "Minecraft 2D" lol
This is my first comment in 2024 in which I use the word _lol_ 🤔
SHUT UP
@@nix-wizard There are hundreds of "tiny voxel" projects, if not thousands, created by hobbyists over the past 15 or 20 years (at least). And every time one of them is posted on TH-cam, the comments include people for whom it's the first such project they've ever seen. So there are always comments like "wow, why has nobody done this before?" or "Minecraft 2."
Usually with these, they remain cool tech demos and never get past that point. Eventually the creator of each project moves on to something else.
Just adding some context here. I have a project like this too, for example. I feel like probably 50% of all graphics programmers have one of these on the backburner.
That being said, I think this one is prettier than most.
Many have tried and hopefully someone will succeed. It is quite hard to make game like Minecraft. Yet to see one that comes close to being as good.
I like how it looks retro and modern at the same time, crazy
No kidding! The rough surfaces give it a more 3D look than most high-end 3D games.
Someone needs to make a Quake-like game from this ASAP
@@user-iq6gp8qo8b I would love to have a "clayspace" server friends can log onto & sandbox play RPGs with destructible terrain.
This mix of pixelated graphics with realistic lighting is giving me such an awesome atmosphere! This is awesome, congratulations on the results!
The chunky detail of the geometry really makes it feel like it has mass to it. Very nice!
Dude, this visual style in a 3D dungeon crawler would be absolutely epic.
It reminds me of the MS-DOS game Lands of Lore: Guardians of Destiny, I loved this game as a child
I second this! What an incredible job!
It really would. If we got dungeon Crawler RPGs and some Quake-like FPS games in this engine I would be so pleased
And I'll be the voxels can be converted into pixels after being rendered to save on processing power and improve performance while wtill retaining the same visual style
notch is making exactly that conveniently enough
I think something a lot of people in the comments are missing is that this isn't true implementation of voxels in the sense of being able to edit individual voxels in real time ala Minecraft. As far as I understand this, it's not actually creating a voxel grid (for that you'd need a voxel engine like Teardown's) as it's just interpreting displacement maps in a granular manner with grid-aligned displaced vertices to create tiny cube-like structures. Don't get me wrong, it's massively cool and reminds me of DoS and FMV games of the 90s. Love it, fantastic work. ❤
yeah he stated this in paper, it's just not the same as John Lin or teardown
Damn, I for a moment thought it was an actual voxel grid, not an illusion I was spinning in my head on how this could be done optimally 😅
Ah like Delta Force games
Yeah the give-away is where the surfaces are angled, you can see the cubelets are angled, too. So they are extruded from a polygonal surface. But regardless it looks really cool, and world destruction is not something every game benefits from. I can imagine psuedo-destruction can be achieved with decals affecting the topography of the cubes.
I do wonder if something more than just displacement of a 2D texture is happening though, to add detail to the extruded areas. The knobbly stairs at 1:00 are interesting, I'm not sure if extrusion alone could create that edge definition (perhaps it's a mixture of polygonal meshing and extrusion in tandem though)
@@merkaba48 Daniel Shroeder actually replied to another comment stating that it's entirely possible to even do animated textures with this effect, so you could probably even do stuff like flowing water with a scrolling/animated texture. Definitely would like to see how this progresses! I see a lot of DOOM and Duke3D remasters where artists make voxel remakes of item/character/etc sprites, and this would fit perfectly into that.
This is perhaps the most incredible things I've ever seen! At 1:18, where you see the wall right next to you and it's all voxelated, and then you look down the cave and it looks like high quality assets... Amazing!
I really dig the pixel aesthetic that still managed to have an absurd amount of surface detail! As a person that enjoys video games that *look* like video games, this is some really great stuff!
Really neat! Does this rendering technique also work well with dynamic lights and moving objects? Could an animated displacement map be used, like the surface of water or fire?
Holy moly its CodeParade!
It would be very cool to see how this project works with dynamic lights and animated displacement maps
Thank you! Short answer: yes, yes, and yes.
In the current demo, all the lights are dynamic and can be moved freely. Lighting is one of the big places where I want to make further improvements, though I'll need to decide what direction to take it. (I talk about this a little in the second blog post.)
The individual meshes are static but can be moved with rigid transforms, for things like doors. This is implemented, but I don't take advantage of it yet. I plan to handle more heavily dynamic elements like enemies in a different way; that's work for future me :)
It's possible to update which texture is mapped to each part of a mesh (think material slots in Blender), and this is free from a performance standpoint. I plan to use this in the future for things like old-school animated water. It would also be pretty easy to scroll the textures, again for things like water, though I haven't implemented that yet.
CodeParade + Voxels = 5D Chess
@@dan5sch Where can I find your blog?
code parde
*Standing ovation*
I had the honor of seeing a live demo. The video does not do this justice. Even on a portable device, it looked and performed so well, I started tearing up. Keep up the fantastic work, I can't wait to see this in a game!
Thank you!
hahahahahahhahaha
holy moly, i thought this would have to be pre-rendered, but it's fast on low-end hardware ? ridiculously cool
...tearing up over this?
Where voxels would gotten us, if we'd haven't abandoned them for poligons
This is an incredible unexplored aesthetic! 3d environmets with the granularity and detail of Pixel Art!
not unexplored
@@vibaj16 it's new to me! Where else can I see it?
Is your name Hugh Mann by chance?
This really gives things a much greater sensation of texture compared to the standard ways.
I mean yeah, because the texture is _literally_ there in the traditional sense instead of artificially placed there via visual tricks like bumpmapped textures on top of flat polygonal triangles, or achieved by simply vastly increasing your polygon count, which can be expensive to achieve a rough textured appearance like we see here with voxels.
@@KissyKaede i mean, this IS achieved by vastly increasing polygon count
@@vibaj16 Sure, in wholly unoptimized games that require NASA computers to run (Think Starfield). Voxel engine games by contrast are much less resource-intensive to run.
@@KissyKaede these aren't true voxels. This uses displacements to achieve the voxel look, which does indeed vastly increase the polygon count.
Even with phong diffuse, no shadow casting, no AO, etc, the increase in geometric detail (especially given how clean it is) makes quite exquisite. And it's only really detectable at edges, and with very subtle parallax, but it informs an "idea" of dense geometry over the entire scene. Very interesting..
As someone that doesn't like the look of most voxel games, this looks breath-taking. Perfectly captures feelings of nostalgia as if this fell out of some parallel universe where games just kept building off of 90's FPS. I'll be sad if nothing comes of all this effort, but it can easily stand on its own as a beautiful work of art.
My gosh, this looks incredible! Now I really want to see a remake of Doom or Dungeon Master in this style!
I've been dreaming about a FPS with this + destructible environment/enemies my whole life
Battlebit Remastered has it to some degree
He just displaced textures, there is no data inside...
In terms of 2D, Noita exists.
Look at John Lin voxel game
Have you seen Teardown?
the effect of things looking smooth at a distance and then obviously being voxellated up close is really neat
I couldn't help but want an Ultima Underworld remake after watching this. Your intended goal for the style was definitely met -- well done!
This literally looks like one of those 3d renders from the 90s, pretty cool!
People are talking about physics and stuff, but this just looks like a really cool graphic style to play an rpg or something in
Yeah this actually looks so good.
There are already plenty of games that look like this and better
@@hypno5690 For example?
@@Irowned He has no examples. Because they don't exist.
what's so "cool graphic style" about fixed voxel resolution? Is Minecraft a cool style instead of a compromise for you too? :D
OMG I love it. It's like those old pre rendered graphics but live.
Like Ecstatica?
There is something so much more real about this than traditional shader and texture mapping, even though it looks way less spectacular.
I wish voxels were given more recognition and development. They're really cool.
This smells like massive unexplored potential. I'm sure everyone seeing this can at least think of a game or two this could enable.
Imagine elder scroll morrowind or older made in this style, would be cool ngl
Voxels are definetly not an unexplored potential, common guys..
I love it
This is the kind of thing that Unlimited Detail tried to do years ago. Their problem was not admitting it was just vowels and tried touting it as something revolutionary.
The voxels make everything look good with a very rough texture like sandpaper, almost in contrast to the textures we have where basically everything appears to be shiny and smooth
Looks really good! Thought for sure it was a pre-render and was amazed when I found out this is real-time.
Looks amazing. Really captures that old-school look albeit with more depth. I’m looking forward to see more.
This could really shine with more detailed lighting, but I cannot imagine the work required for that. Always great to see something outside the box.
I like the look this gives the game. It's almost kind of a modern retro aesthetic with the shape and detail of the stones and bricks and the lighting really compliments it.
Since some people, including me, had a fight in the comments about this renderer and how it works, I want to summarize what we've discussed as well as provide some insights from the linked article in the description. Also I am very intrigued into this renderer, because the artstyle is in my opinion just genius. I am no fan of games trying to achieve "realism"; especially not with graphics. Here it goes:
The main discussion revolves around the term voxel. In this renderer, voxels are used to add fine geometric details to low-polygon meshes. This is achieved by applying displacement maps to these low-poly meshes, defining voxel-scale surface details that protrude from the base geometry. The author's approach allows for sharp edges and corners to be rendered accurately, overcoming limitations of traditional displacement mapping. And this is the reason why I am intrigued into this. That's a really smart move and has a lot of potential.
From a game dev perspective this is nice, because one only needs to consider the voxel details for selected game systems, while most of the game can treat the geometry as conventional low-poly meshes.
And now the fun part: Physics. As an example, in a first person shooter, one could implement a displacement-aware raycast function so that bullets can respect the exact shapes of the displaced geometry. Things like this can be done right away as they require additional systems anyway. A lot trickier are actual physic simulations like fluids or environmental destruction. To achieve this with this renderer the best approach (my opinion in it's current state) would be to generate a voxel representation of the displaced geometry. This presents us with the same problem as all other voxel renderers: Implementing a physics engine that can handle voxel-based rigid body simulation and collision detection. But this is not really the problem of this renderer anymore. Depending on the usage of this renderer, the development of systems to synchronize the rendering output with the physics simulation could be crucial as the voxel displacement requires updates based on rigid body transformations.
My approach to pair physics with this renderer would be clearly to do it based on the low-poly meshes; not the voxelized data. I do not see the need of voxel physics here at all. I mean we are all here, because we love the asthetics, right? These originate from old games like Doom and Quake. Why make things complicated and computationally intensive by trying to merge voxel-based physics into it? From a game design perspective I don't like the idea anyway.
The steps I'd take from here on would be:
1. Develop a custom rendering pipeline and shaders (the author of the renderer mentioned that shaders are basically done already) in Godot to render the voxelized geometry data.
2. Develop a custom voxel physics systems. (please, see my explanation above)
3. Use these systems to implement gameplay interactions like shooting raycasts against the voxel representation for accurate collision detection. I would use this only if the game design requires it which shouldn't be often.
4. Develop systems to synchronize the rendering output with the physics simulation.
5. Create tools to generate displacement maps from mesh data during asset import, and integrate them with the voxelization pipeline.
6. Implement optimizations like level-of-detail, occlusion culling, and limiting the voxel resolution based on camera distance to maintain real-time performance.
7. Create awesome looking games in Godot!
As you can see it requires a significant engineering effort, but I hope the author can assemble or find a team willing to do so. I'd be happy to be part of it, but my main activity and passion in video game development is game design, which is why I can only contribute fully developed concepts without being able to (properly) program them myself. If this project makes progress and is actually incorporated into Godot - as free-to-use or even better as open-source - I will create game design documents that capture the essence of the games of that time and make them available for free. I would like to see the gaming industry revitalized and I see the potential for this renderer to achieve that.
If I have made any mistakes, please let me know as I am always eager to learn.
Thanks for reading! Have a great day :)
I dont even understand half of it, but please make this happen!
Have a great day too ^-^
Bro wrote the only useful comment i ever witnessed on youtube
@@Brinkology for real.
Damn, sounds like a smooth approach to using the renderer in such a way. Less computation is preferred anyway.
I'm sold for sure!
I agree with everything you said... except Godot. That project should take some cues from Blender, because right now it's still a buggy nightmare to actually pull more than a few things into. Despite all the progress made on some features, in other ways it's even more buggy than it was years ago.
Wow from a little distance you can’t even tell they’re voxels.
I just love voxel graphics. Its so nice and organic looking even if you can see the pixels.
Finally, Voxels that genuinely look believable.
Make the voxels smaller and add molecular interactions and now we've got a chemical physics sim
And a molten GPU.
This is super fun in concept, but because of all the small changes in angle and such, it almost looks sort of fuzzy. Like it’s all covered in hair. I don’t really know how you could change that though…
I love this. There's something special, concrete, about voxels. Something charming.
Me: That looks like he somehow voxelized textures...
Looks at blog post, and nailed it.
Good job 👍
I don't even want to know all the hoops you had to jump through.
video game consoles stole voxels from us .
Voxels is the way to render
Uhm, I don't know really. Everything in this video is opaque, no dynamic elements, no visual effects, no physics and/or destruction. I think that right now it's not clear if voxels are superior to polygons.
@@user-ix6xw8ww6uAre voxels superior to polygons? These are completely different things, obviously, voxels are a 3D array of physical objects, and polygons are just flat cardboard decorations
@@user-ix6xw8ww6u voxels consist of polygons and can have any kind of shaders applied just like any polygon, the same way a blocky game like Minecraft has PBR shaders.
how you render voxels to screen is entirely up to you, it's just in this video there's only diffuse lighting, because dev wants retro game aesthetic.
@@Deniil2000 There is no way he's rendering that with rasterization. I'm guessing it's a renderer similar to Teardown that does raytracing but massively optimizing for voxels. I don't know what the technique is called, but Unreal 4 used Voxel Cone Tracing for GI back in the day so it's a proven and fast technology. Not all raytraced graphics look like "RTX"
@@SomeRandomPiggo There is a link to a blog post with details in the description. It is rasterized! It is also just traditional meshes with displacement mapping that is processed to look like voxels.
If voxels keep getting tinier each day eventually they'd be so small taht they could replicate reality
integration
It's called Nanite.
@@2.Plus.2.Equals.5 Yea but the thing with nanite and other polygonal things in 3D is that it cant properly Replicate Volume, Like in voxel games you can dig in a mountain and you can find more mountain under that mountain, unlike most polygonal games I've seen
@@lelordiii8702 still a far cry from much more challenging tasks like a water (ocean, waterfall, river..) and fog (ground volumetric fog, godrays thru clouds, moving headlights thru smoke...) for voxel engines.
These walls got some digital atoms.. looks beautiful
this has thew potential of becoming one if not the greatest way of modern retro game artstyle. dying to see this with raytracing. an old church with stained glass panels comes to mind.
looks amazing! can you actually do voxel physics with that or you only have meshes with displacement mapping and no actual voxel data to simulate physics on?
The latter. The way I like to put it is that I'm focusing on voxels as an art style, not voxels as a game mechanic. I have a ton of respect for the folks who do physics on small voxels, though.
@@dan5sch I am curious about your other showcases - what is your ideas for dynamic LOD / voxel size blending as they getting closer to camera?
I remember John Lin from back in the day... Hope you can achieve what he gave up on!
Not sure he gave up or was paid to stop ;)
i wish he made it open source or something if he gave up anyway
He hasn't given up on the game, which name is Sunheart, by the way.
That is insanely cool looking. It’s like an isometric JRPG art style up close. With really good light effects this would be religious
This is what I thought old school games would look like in the future. It's awesome.
at 480p you cant even tell that you are looking at voxels! Honestly, I think this is a promising approach at rendering 3D geometry. Maybe one day we will make voxels the size of molecules to build our virtual realms out of.
at 144p you cant even tell what your looking at!
I wonder if it would look even better on a crtv
Instead of making voxels the size of molecules, could you make them the size of pixels on your display? Then increase or decrease the detail density of how precisely any given object is rendered based on the distance from the camera. I suspect that real time transformations like that would be quite taxing to calculate though.
@@Moshugaani I guess that's LOD for voxels, but for every voxel to be the size of a pixel you'd need to have some not-voxel representation of the scene to make it from (maybe polygons lol)
@@Moshugaani That's what Atomontage's engine does. But they moved away from games to more industrial applications.
I absolutely adore the retro vibe. I’d play the hell out of a classic rpg in this
its kinda crazy because in theory this is basically the reverse of everything that we've ever played, where detail gets better the further away something is rather than closer
I am absolutely enthralled with this, it looks just like I imagined old PC games looking when I was a kid. Fantastic, I can't wait to see more. Will definitely also be reading the blog, and thanks for sharing!
it is an old-stylish looking environment, but then you realize it's all made of tini-tiny 3d blocks. just love it. imagine a sandbox game made that way, maybe something like DRG. it would've been really good, of course, if fps is playable.
There is something pleasing to see about those pixel texture
I love how the System Shock remake handles textures, very nice pixels up close but slick looking from a distance
It's like watching a cutscene from 90s games. Well done.
This could be the single most substantial improvement so far!
Honestly, I don't know why Voxel graphics never got improved on from the 2000s and isn't getting the attention it deserves in modern gaming, your demo just proved my point. I can imagine Skyrim 6 on a next gen console using just voxels. I just love the rugged look in your demo whereas polygon graphics tend to look "shiny".
Oh man, I remember seeing a proof of concept of something like this probably close to a decade ago. It’s cool to see it come back around!
Why does this look so cool?
I mean, it's perfect. I have no suggestions or criticisms (not that I'm an expert on anything other than "this is a thing I like"). you nailed it and i look forward to this being used in all sorts of games.
The caves are really what do it for me. Incredible
Wow this is beautiful. It's simultaneously very modern looking, but still super retro too. The voxels give it a very nostalgic feeling. I'd love to see a game built in this style. It sort of reminds me of Boltgun, which uses a pixelated retro aesthetic on a modern looking game engine, except this is doing it with voxels, which just looks much cooler. Great job!
A single video on this channel, from 12 days ago, and TH-cam recommends it to me? And I love it? Well done, algorithm.
this is what i've been wanting for AGES
It looks even better in black and white
I’ve wanted to make a voxel renderer for years and never committed. Well done
I genuinely believe this is the development style of the future. Once GPUs catch up, we're going to start seeing micro voxel renderers with incredible realism.
I theorized this tech would get made 32 years ago. Thank you for making it at last!
The textures look great. Excellent retro-modern feel. Would love to see a dungeon crawl game in this style.
1:18 That shot in particular looks so nice, well done.
The depth perception is incredible
This is some serious next level thing man. The universe could be rendered in your engine. Entirely.
theres something really beautiful and nostalgic about this
I don't understand much about voxel graphics, but it's wild to think how far we've come technologically, from Minecraft to this beauty. Like, I can see the pixel textures but from far it looks almost lifelike! I hope to see a Minecraft-esque game with these graphics someday, it feels so nice.
I don't know what you're doing with lighting your scenes, but it looks amazing, and somehow very warm and cozy.
2030: Atom sized voxel renderer
Voxel engines are my favorite thing ever.
I like it :) It's got a quirky lo-fi charm that avoids the uncanny valley. But being voxel-based leaves room for stuff destructive environments and all kinds of interesting game mechanics.
this is very pretty. ever i saw ken silverman's work on voxel rendering, i have been looking forward to the resurrection of the aesthetic in a more practical form. great work.
babe wake up, a revolutionary 90's dungeon crawler just came out
This looks fantastic. I absolutely love voxel graphics, and wish they were used more.
this pretty much looks pretty good, add some good lighting and maybe, just maybe make the voxel count higher, and it'll look like real life.
Me literally hours ago: "Wonder what it'd be like to see Noita in 3D..."
This video: "Here's a very specific renderer that gives your brain the images needed to imagine that!"
These graphics would make for such a nice MMO
The caves are absolutely incredible!
Really nice work. :) Reminds me of what we cooked up for medical imaging during the 1988 "development pause" of mental ray. No polygons involved, unlike here. We quickly found out, to our amusement, that we could easily render other data than MRI datasets, like landscapes, vehicles or buildings.
this is amazing, keep up with this. If someday you are able to make them even tinier than this, like, 2x tinier, or 4x tinier, i think it would be a paradigm shift on how we render things because its way more realistic and if computation constraints allow us to do it we'll probably end up doing it
I don't care what game this becomes, I need it.
wow. this may be the first time outside of minecraft i've liked voxels. well done!
Dude, this is amazing. Actually it feels like future tech that we should have years ago. Thanks for doing this!!!❤
holy shit that looks like a classic render from those ads about games from the 90s man that looks awesome
Imagine you'd have a game with a voxelsize like this, but you also build in that same size...
It's like trying to build a house, pebble by pebble.
It feels like low quality and high quality at the same time. Great showcase.
The look of it is fantastic. Love that retro vibe and yet, very modern with all the geometry details. Very promising. 🙂
The resulting look is so incredibly cool