Announcement

Collapse
No announcement yet.

Ray Tracing Overview - Unreal Engine 4.22 Preview

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • replied
    Originally posted by Antidamage View Post
    How's landscape and foliage support going? I haven't checked in on github for a while.

    Edit: I see some landscape, HISM and ISM raytracing commits. Might be worth taking a look.
    4.23!

    We'll have support for some new features that were unsupported in 4.22, but primarily 4.23's release is focused on stability with DirectX12 and performance with Ray Tracing, and more specifically you should see performance improvements with GI, and multi-bounce reflections.

    Leave a comment:


  • replied
    How's landscape and foliage support going? I haven't checked in on github for a while.

    Edit: I see some landscape, HISM and ISM raytracing commits. Might be worth taking a look.
    Last edited by Antidamage; 06-06-2019, 10:42 AM.

    Leave a comment:


  • replied
    Super cool
    Last edited by BernhardRieder; 06-06-2019, 05:18 AM.

    Leave a comment:


  • replied
    Originally posted by NilsonLima View Post
    Leo Rakes Does the plugin also reports unsupported games when using the NVidia Creator's driver? This specific driver says it supports UE4.22, but the release number is delayed when compared with NVidia Gamer's driver. I didn't test it myself, but would be a good opportunity to check this.
    I tested the Create driver and Game driver, and I couldn't start Ansel. The only available way is to uninstall the NVIDIA Geforce, and then Ansel will go back to the old version and use it. But once the NVIDIA Geforce is installed, no Ansel, including AnselRT, can be used.

    Amazingly, I started AnselRT successfully in a preview version in March or so. Although AnselRT was not supported in the engine at that time, it did include AI functions.

    Leave a comment:


  • replied
    Leo Rakes Does the plugin also reports unsupported games when using the NVidia Creator's driver? This specific driver says it supports UE4.22, but the release number is delayed when compared with NVidia Gamer's driver. I didn't test it myself, but would be a good opportunity to check this.

    Leave a comment:


  • replied
    Originally posted by Tim Hobson View Post

    I should have clarified more so that I tried out the Ansel plugin when it was introduced to UE4 specifically.

    Also, as I mentioned, I've not used the Ansel Plugin since around the time it was added, so I'm not sure of its current state. Those docs are pretty old so they should probably be vetted again. I'll make a note to do so. Looking at the Ansel SDK on GitHub, it doesn't look like it's been updated in 6 months or more and I'm not sure how often, or when the last time was that that was updated. It's not a tool I've had any reason to use. :/
    Because 4.22 updates DXR and 4.22.1 updates have AnselRT support, it is not clear whether the problem that Ansel cannot use is due to engine problems or NVIDIA problems.

    AnselRT should be great. It should be the best tool for getting high resolution and panoramic images in the Unreal engine, and the RT version also adds special DXR quality improvement support. I see Ansel's RT version is also supported in the 4.22.1 update. He mentioned "Increasing support for AnselRT" in Epic's 4.22.1 Githib and EPIC's official update log.

    Unfortunately, Ansel can't start properly at present. If you install the Geforce of NVIDIA, starting Ansel in the engine will prompt "unsupported games". AnselRT and NVIDIA Geforce now think that the engine is "unsupported games", so it can't start. (I used AnselRT successfully in the preview version of 4.22 in early March, but there was no support for Ansel RT functionality in the engine at that time.)

    Unfortunately, this is not available for the time being. I just want to ask if this is the reason for the internal support of the engine, but at present, it seems more likely that Geforce of NVIDIA has made a mistake.
    Last edited by Leo Rakes; 05-15-2019, 09:26 PM.

    Leave a comment:


  • replied
    Originally posted by NilsonLima View Post

    The plugin is published by Epic, documentation: https://docs.unrealengine.com/en-US/...Ansel/Overview
    I should have clarified more so that I tried out the Ansel plugin when it was introduced to UE4 specifically.

    Also, as I mentioned, I've not used the Ansel Plugin since around the time it was added, so I'm not sure of its current state. Those docs are pretty old so they should probably be vetted again. I'll make a note to do so. Looking at the Ansel SDK on GitHub, it doesn't look like it's been updated in 6 months or more and I'm not sure how often, or when the last time was that that was updated. It's not a tool I've had any reason to use. :/

    Leave a comment:


  • replied
    Originally posted by Tim Hobson View Post

    TBH, I had to look up what AnselRT was. Didn't even know about it or if it's even supposed to be supported with UE4. I don't think this is something that is on us though. I remember trying the NVIDIA Ansel plugin out ages ago when it was first introduced, but I think we just provide access to plug-in and nothing else.

    If it's part of NVIDIA's UE4 GitHub branch, you'd probably want to take it up with them for support. Beyond that, I'm just not familiar. sorry.
    The plugin is published by Epic, documentation: https://docs.unrealengine.com/en-US/...Ansel/Overview

    Leave a comment:


  • replied
    Originally posted by Leo Rakes View Post

    Hi,TIM, I have a problem outside the scope of RT, AnselRT; I see that AnselRT support has been updated in version 4.22.1, but now Ansel is not available.
    TBH, I had to look up what AnselRT was. Didn't even know about it or if it's even supposed to be supported with UE4. I don't think this is something that is on us though. I remember trying the NVIDIA Ansel plugin out ages ago when it was first introduced, but I think we just provide access to plug-in and nothing else.

    If it's part of NVIDIA's UE4 GitHub branch, you'd probably want to take it up with them for support. Beyond that, I'm just not familiar. sorry.

    Leave a comment:


  • replied
    Originally posted by Slayemin View Post

    I know exactly what this is. You're running into floating point precision problems. The farther a float moves from 0, the less precise it gets because you need to use more bits to represent the exponent and you are limited to 32 bits with a float.
    https://en.wikipedia.org/wiki/Single...g-point_format

    If you were writing the ray tracer code and wanted to "fix" this, one thing you could do is change all your floats to doubles, but that only kicks the problem further down the road. Another thing you could do is perform a behind the scenes origin shift on all objects in your world when the player reaches some threshold value on their X, Y or Z axis.
    Thanks, yeah that was our hunch as well. I'm going to be rendering to 32bit EXR for world position pass AOVs so will also check that path tracer issue. Unfortunately the PT has other issues (at least in our custom build) where certain lights turn off when enabling it and strangely, the lights flip on/off states on each re-toggling. I've tried moving the lights to new sub-levels but have yet to pin down the issue.

    The hybrid renderer doesn't have this issue but it doesn't seem possible to match the unbiased renderer at this point (even when realtime isn't a goal).

    Leave a comment:


  • replied
    Originally posted by Tim Hobson View Post
    I plan to revisit the docs for Ray Tracing over time and expand upon it. With the state that the features are currently Early Access, we don't always "fully" document as much as we would for a Production-Ready feature that is finished.

    I'll consider adding command list information, but no promises at this time. Again, denoisers shouldn't really be tweaked by designers or artists just making adjustments to the scene.

    So some additional info about denoisers (and as a side note, I'll consider adding this type of description in the near-term future over command lists that users don't really need to adjust):
    • Each feature ray tracing feature has a denoiser available.
      • All this denoiser does is take the low sample count (a single sample per pixel) which looks like a lot of dotted points in the case of shadows, GI, and so on. The denoiser takes that low sample count and does some magic to soften, smooth out the result, and make it possible to use during real-time. While there is some minor quality loss because of using a single sample vs many hundreds or thousands per pixel (like offline renderers), however, the results are still fairly accurate to that of an offline render except in real-time.
      • Because each RT feature is different and self-contained, a denoiser for ambient occlusion or GI isn't going to work the same as one for shadows. So they have their own for each feature. Then for each Denoiser, the additional commands you see are used by programmers to write their denoising algorithms.
    • Denoisers support up to 4 samples per pixel.
      • This simply means that on a light casting a shadow, I can increase the SPP between 1 and 4 and the denoiser will smooth and soften the results as needed to match an offline render. When you use something outside of this range, it should fall back to just using however many samples per pixel you punch in without the denoiser (so you see a bunch of dancing points on screen for that ray traced feature.)
      • Using a value of 0 doesn't disable the Denoiser, it just says no samples for that feature. In the case of a light's shadow, if you punch in 0, there are no samples being used so everything is dark because the light isn't being ray traced.
    • As for all the commands, I'm still on the side of the fence that we've exposed the important ones to the lights and post process volumes that matter for artists and designers to make adjustments. Beyond that, I wouldn't touch them at all.

    Auto-Exposure

    There's an Option in the Post Process Volume details panel to set it to Infinite Extent (Unbound). This will do the same as scaling the PPV infinitely large without having to do that. You can just keep it the small box and tuck it away somewhere.

    Feel free to shoot me a message or tag me. I'll offer some suggestions and help when and where I can.

    Tim

    Hi,TIM, I have a problem outside the scope of RT, AnselRT; I see that AnselRT support has been updated in version 4.22.1, but now Ansel is not available.

    Now when we want to use Ansel, pressing the shortcut key will prompt "unsupported games". No operation can solve this problem, and AnselRT can not work properly.

    The only way to use Ansel is to uninstall the Geforce of NVIDIA so that the old version of Ansel can be exhaled and used. But once Geforce is installed, Ansel, including the latest AnselRT support, cannot be used in the Unreal engine.

    I don't know if this is a NVIDIA support problem or an internal engine support problem, but this problem seems awkward. There is support for AnselRT updates in the engine, but Ansel can no longer be used.

    Leave a comment:


  • replied
    Originally posted by George Allan CS View Post
    I've had another look and it seems that the stair-stepping issue is related to how far objects are from the world origin (and therefore an accuracy problem). To test:

    1. Create a cube
    2. Enable the Path Tracer
    3. Move the cube 100,000 units in X (or Y/Z)
    4. Problem is clearly visible (wobbly / stairstepping edges)
    I know exactly what this is. You're running into floating point precision problems. The farther a float moves from 0, the less precise it gets because you need to use more bits to represent the exponent and you are limited to 32 bits with a float.
    https://en.wikipedia.org/wiki/Single...g-point_format

    If you were writing the ray tracer code and wanted to "fix" this, one thing you could do is change all your floats to doubles, but that only kicks the problem further down the road. Another thing you could do is perform a behind the scenes origin shift on all objects in your world when the player reaches some threshold value on their X, Y or Z axis.

    Leave a comment:


  • replied
    Okay, this is a pretty hard question...

    I'm trying to figure out how to intercept a ray trace in the rendering pipeline to redirect the ray to a different direction. I've looked through the engine source code for a few hours and found the section where rays are generated, but it looks like they're doing through a shader? I looked at this tutorial on NVidia's site and I can see some parts of the high level architecture in UE4's RTX rendering pipeline, but there are quite a few differences as well to suss out. Where exactly does UE4 generate the list of rays with their starting position and end position? I'm thinking the near plane would be the film and the far plane would be the backing, with rays casted out proportionately to the FOV ratio, but I'm not seeing anything like that in the RHI code.

    Generally speaking, I'm trying to simulate lens distortion based off of a physical lens model and it must be hyper realistic. I can't do this as a post processing effect because the density of sampled pixels varies by lens shape and you get lower resolution lens distortions in regions with high magnification (this is a side effect of post processing rather than lens distortion).

    Leave a comment:


  • replied
    I plan to revisit the docs for Ray Tracing over time and expand upon it. With the state that the features are currently Early Access, we don't always "fully" document as much as we would for a Production-Ready feature that is finished.

    I'll consider adding command list information, but no promises at this time. Again, denoisers shouldn't really be tweaked by designers or artists just making adjustments to the scene.

    So some additional info about denoisers (and as a side note, I'll consider adding this type of description in the near-term future over command lists that users don't really need to adjust):
    • Each feature ray tracing feature has a denoiser available.
      • All this denoiser does is take the low sample count (a single sample per pixel) which looks like a lot of dotted points in the case of shadows, GI, and so on. The denoiser takes that low sample count and does some magic to soften, smooth out the result, and make it possible to use during real-time. While there is some minor quality loss because of using a single sample vs many hundreds or thousands per pixel (like offline renderers), however, the results are still fairly accurate to that of an offline render except in real-time.
      • Because each RT feature is different and self-contained, a denoiser for ambient occlusion or GI isn't going to work the same as one for shadows. So they have their own for each feature. Then for each Denoiser, the additional commands you see are used by programmers to write their denoising algorithms.
    • Denoisers support up to 4 samples per pixel.
      • This simply means that on a light casting a shadow, I can increase the SPP between 1 and 4 and the denoiser will smooth and soften the results as needed to match an offline render. When you use something outside of this range, it should fall back to just using however many samples per pixel you punch in without the denoiser (so you see a bunch of dancing points on screen for that ray traced feature.)
      • Using a value of 0 doesn't disable the Denoiser, it just says no samples for that feature. In the case of a light's shadow, if you punch in 0, there are no samples being used so everything is dark because the light isn't being ray traced.
    • As for all the commands, I'm still on the side of the fence that we've exposed the important ones to the lights and post process volumes that matter for artists and designers to make adjustments. Beyond that, I wouldn't touch them at all.

    Auto-Exposure

    There's an Option in the Post Process Volume details panel to set it to Infinite Extent (Unbound). This will do the same as scaling the PPV infinitely large without having to do that. You can just keep it the small box and tuck it away somewhere.

    Feel free to shoot me a message or tag me. I'll offer some suggestions and help when and where I can.

    Tim


    Leave a comment:


  • replied
    Originally posted by Daffrendo View Post
    It is strange, I was expecting there would be just one overall 'Denoiser', but I see that there 18+? Meaning you have to turn on and off each one?
    I'm assuming you're referring to the above screenshot of the denoiser commands. That's just 18 available controls, not separate denoisers. Most implementations will likely have individual denoisers for each raytraced element(reflections, shadows, GI, etc) as they all focus on different aspects, and as pictured you get even more fine-grained control over their appearance and performance if necessary. Denoising isn't something the average artist should have to worry about though, as well as the other non-denoising controls like material sorting, russian roulette, etc. as they are much more technical and deal more with the performance and not visuals.

    Leave a comment:

Working...
X