Jump to content

VXRT Progress


This is an update on my progress of our voxel raytracing system. VXRT is designed to provide all the reflection information that PBR materials use. If a picture is worth a thousand words, then this counts as a 5000 word article.

Direct lighting:

Direct Lighting

Global illumination:

gi.thumb.png.078739c9c26f9e66f68f4a158e4bd611.png

Specular reflection:

spec.thumb.png.83d6ed3bcb4d3731ee1e0c2a675694d3.png

Skybox component:

sky.thumb.png.b308cc3795235c84acb513d8b743e090.png

Final combined image:

combo.thumb.png.873ea0c5bf34a722852640a34084bd29.png

  • Like 2
  • Thanks 1

17 Comments


Recommended Comments

trashcanuseful

Posted

Let's be proud. Let's get started, -wow this looks great! 

could it be possible to monetize pride and open a presale?
  • Haha 1
Josh

Posted

It's getting there....

978404097_UltraEngine_d2021-12-2912-48-26-39.thumb.jpg.abf12ef61cf879ef5ad616aa71170ced.jpg

Notice the interior is much darker than the shaded exterior walls.

vxrt.thumb.jpg.d48bda1a134fe55983fe6595577e22a4.jpg

  • Like 3
Vida Marcell

Posted

2 minutes ago, Josh said:

It's getting there....

1034225166_UltraEngine_d2021-12-2912-33-59-72.thumb.jpg.4965aaf7d4313930fb68556b935ce24a.jpg

Josh, where can i learn for shading in leadwerks, i mean, i found some glsl tutorials, but i dont know how to work with the integrated glsl.

Josh

Posted

Anything metal will look amazing:
pipes.thumb.jpg.db0b29a8c882a052943ffefa3334f995.jpg

  • Like 1
Josh

Posted

Very shiny metal:
metal.thumb.jpg.a55144337be375c8b7d5d6d3964bce4d.jpg

  • Like 1
Vida Marcell

Posted

Wow, thats so cool, Josh will the Ultraengine have animation and shader graph?

Josh

Posted

Here's a nice comparison.

Leadwerks:

leadwerks.thumb.jpg.8f634fba41ad202efcec6e369056d41c.jpg

Ultra:

ultra.thumb.jpg.9cddc7d814be2c73fd20865a67d7e873.jpg

  • Like 2
trashcanuseful

Posted

incorrect comparison, light sources are different

  • Confused 1
Vida Marcell

Posted

47 minutes ago, trashcanuseful said:

incorrect comparison, light sources are different

You're right, but the point is, you can see the light bounces enough to make a visible difference

  • Upvote 1
reepblue

Posted

Leadwerks had like very weak light bouncing. I have to set an ambient light color for my indoor scenes inorder for it to not look too dark without using hundreds of lights. The correct way for this should be to use a black ambient light and let the bouncing of light do all the work.

Really hopeful that UltraEngine fixes this.

Thirsty Panther

Posted

Josh, have you tried using TWahl's Sci Fi  textures 

in the new engine. Would look fantastic .

Josh

Posted

In the shot above of Leadwerks, I could have made a probe volume and it would look okay, but the problem is they have to be made by hand so in most development shots they aren't present.

reepblue

Posted

Also you can tell were 2 volumes meet/overlap. I never felt it did radiosity as well as precomputed solution like the rad tools in Source. You had to crank up the brightness to the max to see texture lights look like they are emitting light which made everything else washed out.

Josh

Posted

The funny thing is that if we have voxel shadow data,  then we don't actually need shadow maps. This shot is using voxels for shadows, and is not using the shadow maps.

voxelshadows.thumb.jpg.8d5d270a3cc6c84c1c142a97c36cddd5.jpg

reepblue

Posted

20 minutes ago, Josh said:

The funny thing is that if we have voxel shadow data,  then we don't actually need shadow maps. This shot is using voxels for shadows, and is not using the shadow maps.

voxelshadows.thumb.jpg.8d5d270a3cc6c84c1c142a97c36cddd5.jpg

What's the perks of doing this? Would we be able to hide shadows on a per entity basis this way?

Josh

Posted

The problems of image-based techniques go away, like shadow acne and adjusting the resolution of the shadow map. Transparency and particle shadows would be easy to implement. Voxel lighting will probably end up being faster, since you are only calculating shadows along surfaces at a low resolution. No matter what, you distribution of lighting data is much more efficient since it is following the scene surfaces instead of rendering to an image and then gathering pixels from that image.

Right now I am storing all voxels in a DXT5 compressed texture. I need to create an octree structure and send that to the GPU instead. Then data size and raycasts would be very efficient.

I can't think of any reason not to do it this way, other than it is hard to implement. Moving objects will be a little tricky because I am not sure how fast the polygon-to-voxel step will be.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...