Wow, that forest scene is gorgeous! You mentioned during the video that 3D textures are used to color the voxels. Another approach is to use triplanar mapping with a 2D texture. This requires knowing the voxels' normals, but it yields good-looking results and allows for much larger textures in my tests.
Thank you! I was considering that at first, but I don't yet have per-voxel normals implemented, and I'm not sure if I will soon. If I ever add normals I'll try it out.
@@icicleditor it's a sort of curse with engine devs that have promizing engines, which so far has been happening 100% of the time, which is that whenever one tries to make a kind of general purpose game engine they either give up completely or disappear from internet. i don't think it went right for anybody
To allow particles casting shadows and be reflected somewhat, you could do screen space shadows and reflection, if the shadow or reflection ray goes out of screen space, continue as normal raytracing. Would be extra work tho and would require you to further divide the pipeline.
Good idea, I'll look into that in the future. For now though, if you really have particles that need to show up in reflections and such, you could just make a 1x1x1 voxel volume, which is slower to render than a particle but would affect lighting.
All it's missing is some global illumination to brighten up the scene (shadows are great at adding depth but they do end up making the final render look quite dull), volumetric fog to give the scene some atmosphere and sunlight scattering, and some cute critters (you could use Glep from Smiling Friends as reference for nice simple character designs that could fit the theme!) 💖
Love it! awesome work. In my engine, I do traditional rasterization shadow maps for the particles that I think need shadows. Works great and looks good too! (I have a video showcasing "Particle Shadows" on my channel) Also, I recommend having a gradient from light at the top to dark at the bottom of each grass blade, faking AO in a sense.
Ah that’s really smart, I remember seeing that video on your channel. I’ll look into it. I don’t want to add any gradient to the grass board though, i want to keep each voxel a single solid color.
@@frozein ah sorry - I meant still having a single color per grass voxel but making each voxel darker than the last the further down they go. That's what I do. Unless your grass is very short? I found around 4 voxels tall was the size I liked and 4 voxels is enough for a small gradient
@@GabeRundlett I see what you mean, I do that for Terra Toy's grass, which is 3 voxels tall. I didn't spend too much time on the forest scene so I think each voxel is the same color.
Have you considered generating procedural textures based on normals/gradient? For example dirt could turn into stone if a hill side gets too steep. Really cool stuff so far and I'm excited to see more features in the future!
Thank you! I’m going to open source it eventually. I just want to have all the core features finished first so I know I won’t make any massive rewrites.
@@frozein I know it's just a rendering engine, but having collisions detection with voxel volumes could be a HUGE upgrade. It could take a bit (a lot) of time to get it right and optimized. Having at least oriented bounding boxes would be really nice to make games. Now I must say that you should go at your pace and don't forget to have fun making your engine.
Impressive work ! Will the size of the voxels be changeable (as in at compile or at game launch globaly) ? Will you add a animation and sound system ? I would love to know more about your roadmap and where the engine is heading.
Thank you! The engine can handle multiple different voxel volumes, each with their own position, rotation, and scale. So you will be able to mix and match different sized voxels if you really want to!
really doubt this is radiance cascades. it's clearly not screenspace cascades and full 3d cascades are probably impossible to calculate in 1 frame. besides, i dont think they work well with ligths like the sun, not 100% sure though radiance cascades would probably work well for voxels that emit light, but this looks more like just shadows on top of whatever they had before which at least for this scene could probably be done by just casting a few rays in the direction of the sun
No it's not based on radiance cascades, radiance cascades work best in very small, constrained scenes or in 2D. They wouldn't work for a large outdoor scene. I'll talk more about the lighting next devlog!
I keep thinking about a game with robots fighting made out of tiny voxels. Sort of like Robocraft, but instead of the bots being made of big cubes and different shapes, they're all super tiny voxels like Teardown and similar (such as your engine) games/engines. So the weapons and mobility features are made out of voxels too. I want a workflow sort of like a simplified CAD program for building robots, then have people take these robots into a voxel terrain and blow each other up. I need to get off my ass and start teaching myself how to do this stuff. I have so many ideas.
I already have this feature actually, I just didn't show off the hard shadows in the video. Overlapping shadows only happen in real life when there are multiple light sources casting shadow. In the forest scene, the sun is the only light source so you wouldn't expect overlapping shadows.
you could make the rendering of different particles configurable... like, of course for small particles in large quantities you can give up ray tracing, but for situational particles that only appear in small quantities, there is no reason to not ray trace them
Will you make the code open source in the future? There aren’t many great voxel engines out there. There are popular open source game engine, like Godot, but they’re not voxel based.
If you said you wanted to talk about shadows in the next video, it will be a perfect opportunity for this song. Noir scene in a detective's office, dark calm voice says: "Shadows... They've been chasing me everywhere since I started working on this case... They were very edgy, spying on me from every corner possible... They've killed to many braincells of mine, but finally I softened them" Or some similar stuff. And when the flute starts playing it's a title of the video and then it goes normally
@@frozein They are a Chinese corporation that makes TikTok, and like other Chinese applications, TikTok takes user data and uses it for questionable things. Heck! Temu has been found to exploit the Android OS! It is not a great situation when it comes to Chinese tech.
4:20, Once more am I taken aback about how the mere presence of even just simple lighting can positively affect the aestetics so immensely.
Just wait until I add even more lighting features 👀
man, you're feeding my voxel addiction 💀
Om nom, son - om nom.
same.
Wow, that forest scene is gorgeous! You mentioned during the video that 3D textures are used to color the voxels. Another approach is to use triplanar mapping with a 2D texture. This requires knowing the voxels' normals, but it yields good-looking results and allows for much larger textures in my tests.
Thank you! I was considering that at first, but I don't yet have per-voxel normals implemented, and I'm not sure if I will soon. If I ever add normals I'll try it out.
Good job man, this looks awesome.
new devlog !! really nice to see you going further and further
i do have to say, please don't get lost trying to make a general purpose game engine
Can you elaborate on why?
Don’t worry haha. My goal is to have an extremely flexible rendering engine. I don’t plan to add any other features like an entity system or editor.
@@icicleditor it's a sort of curse with engine devs that have promizing engines, which so far has been happening 100% of the time, which is that whenever one tries to make a kind of general purpose game engine they either give up completely or disappear from internet. i don't think it went right for anybody
@@dottedboxguy I smell a conspiracy...
(Joke)
Looks absolutely amazing! Congrats on the engine progress and your internship!
Texture enhancements are amazing…. Nice job! And, ability for user to leverage his imagination is awesome.
To allow particles casting shadows and be reflected somewhat, you could do screen space shadows and reflection, if the shadow or reflection ray goes out of screen space, continue as normal raytracing. Would be extra work tho and would require you to further divide the pipeline.
Good idea, I'll look into that in the future. For now though, if you really have particles that need to show up in reflections and such, you could just make a 1x1x1 voxel volume, which is slower to render than a particle but would affect lighting.
I cannot wait for the next episode!
All it's missing is some global illumination to brighten up the scene (shadows are great at adding depth but they do end up making the final render look quite dull), volumetric fog to give the scene some atmosphere and sunlight scattering, and some cute critters (you could use Glep from Smiling Friends as reference for nice simple character designs that could fit the theme!) 💖
Looks pretty. Looking forward to hear how you're doing lighting.
amazing project dude
Love it! awesome work. In my engine, I do traditional rasterization shadow maps for the particles that I think need shadows. Works great and looks good too! (I have a video showcasing "Particle Shadows" on my channel) Also, I recommend having a gradient from light at the top to dark at the bottom of each grass blade, faking AO in a sense.
Ah that’s really smart, I remember seeing that video on your channel. I’ll look into it. I don’t want to add any gradient to the grass board though, i want to keep each voxel a single solid color.
Where voxels are, you are sure to find Gabe :)
@@frozein ah sorry - I meant still having a single color per grass voxel but making each voxel darker than the last the further down they go. That's what I do. Unless your grass is very short? I found around 4 voxels tall was the size I liked and 4 voxels is enough for a small gradient
@@GabeRundlett I see what you mean, I do that for Terra Toy's grass, which is 3 voxels tall. I didn't spend too much time on the forest scene so I think each voxel is the same color.
Youre so inspiring bro. Love the vids
Have you considered generating procedural textures based on normals/gradient? For example dirt could turn into stone if a hill side gets too steep.
Really cool stuff so far and I'm excited to see more features in the future!
That’s more on the end user of the engine I think. For the forest scene I could easily modify the terrain gen to include more gradients.
Looks amazing, well done 👏😃
Amazing work dude. Are you planing to ever open source your engine?
Thank you! I’m going to open source it eventually. I just want to have all the core features finished first so I know I won’t make any massive rewrites.
A 2.5D game in this style might be cool
can't wait for next devlog "Added propscript to my voxel engine, so you don't need to use C++" 😈
I think transparent/translucent voxels could be a good challenge, even tho you already did it in your last engine.
I plan to add them eventually!
@@frozein I know it's just a rendering engine, but having collisions detection with voxel volumes could be a HUGE upgrade. It could take a bit (a lot) of time to get it right and optimized. Having at least oriented bounding boxes would be really nice to make games. Now I must say that you should go at your pace and don't forget to have fun making your engine.
Impressive work ! Will the size of the voxels be changeable (as in at compile or at game launch globaly) ? Will you add a animation and sound system ?
I would love to know more about your roadmap and where the engine is heading.
Thank you! The engine can handle multiple different voxel volumes, each with their own position, rotation, and scale. So you will be able to mix and match different sized voxels if you really want to!
@@frozein A Minecraft clone would probably run very good if done right as the voxels would be huge compared to minecraft's rasterized cubes
dude wtf this is amazing?
Real-time soft shadows...
could you have been implementing radiance cascades? Or something else? I cannot wait to hear more from that
really doubt this is radiance cascades. it's clearly not screenspace cascades and full 3d cascades are probably impossible to calculate in 1 frame. besides, i dont think they work well with ligths like the sun, not 100% sure though
radiance cascades would probably work well for voxels that emit light, but this looks more like just shadows on top of whatever they had before which at least for this scene could probably be done by just casting a few rays in the direction of the sun
unless they meant soft shadows for everything including emitting voxels idk maybe im stupid
No it's not based on radiance cascades, radiance cascades work best in very small, constrained scenes or in 2D. They wouldn't work for a large outdoor scene. I'll talk more about the lighting next devlog!
welcoe back!!!
I keep thinking about a game with robots fighting made out of tiny voxels. Sort of like Robocraft, but instead of the bots being made of big cubes and different shapes, they're all super tiny voxels like Teardown and similar (such as your engine) games/engines.
So the weapons and mobility features are made out of voxels too. I want a workflow sort of like a simplified CAD program for building robots, then have people take these robots into a voxel terrain and blow each other up.
I need to get off my ass and start teaching myself how to do this stuff. I have so many ideas.
6:40, Idea: setting the display of shadows, sharp/soft.
It seems like your shadows are not overlapping, perhaps this also requires settings
I already have this feature actually, I just didn't show off the hard shadows in the video. Overlapping shadows only happen in real life when there are multiple light sources casting shadow. In the forest scene, the sun is the only light source so you wouldn't expect overlapping shadows.
nice
you could make the rendering of different particles configurable... like, of course for small particles in large quantities you can give up ray tracing, but for situational particles that only appear in small quantities, there is no reason to not ray trace them
If the end user wants ray-traced particles, they could just create a 1x1x1 voxel volume and treat it as a particle!
@@frozein that's actually pretty clever
Will you make the code open source in the future? There aren’t many great voxel engines out there. There are popular open source game engine, like Godot, but they’re not voxel based.
I plan to open-source it eventually! I just want to implement all of the core features first.
Have you seen what 4j studios has been making lately?
Yes, the elements engine looks really cool.
umm, my tlas crashes when i have more than 10 instances
Start next video with C418 - Stal. I'll be waiting...
If I won't hear this song next time, just remember... I'M IN YOUR WALLS
If you said you wanted to talk about shadows in the next video, it will be a perfect opportunity for this song.
Noir scene in a detective's office, dark calm voice says: "Shadows... They've been chasing me everywhere since I started working on this case... They were very edgy, spying on me from every corner possible... They've killed to many braincells of mine, but finally I softened them"
Or some similar stuff.
And when the flute starts playing it's a title of the video and then it goes normally
Haha I love that song. I’ll add it if I remember to.
@@frozein Yay!
You work at Bytedance!? * spits in disgust *
What’s the problem with ByteDance?
@@frozein They are a Chinese corporation that makes TikTok, and like other Chinese applications, TikTok takes user data and uses it for questionable things. Heck! Temu has been found to exploit the Android OS! It is not a great situation when it comes to Chinese tech.
@@frozeinthey are influenced by the CCP which are known for censorship and data privacy and security concerns
@@frozein it's chinese, so any data it has can be given to chinese government. i think that's it (i don't use tiktok so i don't really care)
Is it open source ?
Not yet, but I plan to release the source code eventually.
you still working on this?
Yes! Progress has been slow unfortunately as I've been busy. New video will hopefully be out soon.