Not sure how you are handling the render change, but there’s a cvar called r.ApproximateHybridRaytracing that disables ahr. When disabling it from the engine ini (setting it at 0), ahr is not even initialized, so it mostly works like the “vanilla” version. If the engine started without AHR enabled, enabling it at runtime can cause crashes. But, if you start with AHR, disabling it later by setting the cvar to 0 doesn’t causes problems, and as it doesnt release any objects, it just “pauses” AHR, you could disable it for the top-down view, and re-enable it for the other view.
Not sure if it’ll work straight away, but think that’s the way to do it.
About videos, sadly no, I haven’t had much time to make new videos.
Hey, just wanted to say I’m back!
Working on some performance improvements, that I also hope will allow me to push quality further. Will keep you people updated.
Does mean I need to update again ? LOL I am going to burn my CPU to dust lol.
Not yet, not yet…
I have been following thread for quite some time, i am looking forward to what you show us for your performance improvements!
Sadly, it will take a bit more than expected. Turned out that the changes I’ve been working on haven’t improved performance by much. Will keep looking into it though, but like I said, it’ll take some more time.
Can you integrate multibounce in the AHR module? I noticed that only 1 bounce is used. It would increase the quality very much. At the moment I am working with VXGI. Multibounce gives me fantastic results in interiors…
On VXGI, multiple bounces are relativity straightforward to implement, but for AHR I require to add a specific pass for that. Overall, it’s doable, but need to get around and do it, and in a way that I keep the performance hit on check.
TL;DR: I’ll implement it eventually ;D
Can you tell where to see some screenshots for your interiors done with VXGI…!!?
That’s ok im still here to support you, is a great project.
Sorry for the lack of updates people, worked the past month in performance updates, yet they turned out to be a failure, so they are on the backburner for now.
Also I’m currently working on a few freelance projects, and with university started again i don’t have a lot of time.
Nevertheless, I’m working now on some tweaks to the blur code, to improve quality and hopefully performance. I’m also playing with the idea of using something like LPV to propagate the voxel information, and have multiple bounces way.
So, will try to have some more news soon
PS: Another thing that could be really helpful and I’m not taking advantage off is temporal filtering, so that’s another thing to play with. Probably something along the lines of alternating the rays on each frame, to “duplicate” the number of rays at the same cost
Keep pushing Torant, youre amazing
What you’re doing looks absolutely amazing! Just keep up the good work, we’ll patiently wait for it.
Hey I’ve been using AHR a lot more as of recently, and after messing around with it for a while I’m starting to get a grip on how to use it effectively. That being said, I’m noticing that I have to put the indirect intensity for spotlights at 10 or higher to get a good amount of diffuse GI, but directional lights give good results with indirect intensity at 1. Is a bug, or am I doing something wrong?
Really? I would love to see what you are working on!. Regarding the intensity question, spot lights use physically correct units for intensity (lumens) but directional lights don’t (that’s an engine thing, not mine) so it needs different multipliers.
Thanks for the help! I don’t have anything to show at the moment, but when I do I’ll post it here!
One more question. On the spotlights, since they are physically accurate, does the indirect intensity still act as a multiplier, or does it actually specify the intensity of bounce lighting in lumens? (ex. Indirect intensity of 50 would mean bounced light has an intensity of 50 lumens)
Yes and no. For spot lights illumination is computed correctly(using the same function as the direct lighting). After that, its multiplied by the indirect intensity and that’s stored. For true pbr, the multiplier should always be one, and the indirect intensity determined solely by light intensity(in lumens), surface properties, angle and distance to the light. The problem is that the attenuation function when tracing indirect its not physically correct(manly because a direct lights and a few range problems).
Will try to get physically correct attenuation (and temporal filtering) working week.
Hope I’ve answer your question, if not ask again
If by attenuation you mean the range of the indirect lighting, then that explains it perfectly. Right now in order to get diffuse spot light GI to even be visible I have to have the indirect intensity at like 8 or so, and even then the light doesn’t seem to “reach” far enough. So right now the attenuation range seems to be far too low.
Not exactly. By attenuation I meant how the light gets dimmer as it gets further away from the object (inverse square law for example), but the range of the indirect illumination it’s set by the ray lenght, and that is the number of samples times the Voxel size. Plus was just checking and right now I don’t even have any attenuation, that is, the light keeps its intensity as it gets further away from the origin point(completely fake). Will try to get physically correct attenuation working. Also keep in mind that increasing the number of samples can have an almost linear performance hit (on the worst possible case, twice the samples mean half the performance. In practice it’s not that direct, but it does make a hit)
PS: Another way to improve range without a performance hit(will most certainly be a gain) is to increase the Voxel size. Of course, that makes it less accurate, so it’s a compromise