@Eneen could you share the scenes so that I can have a look at them?
you need this hdri to get hdri lighting, it’s CC0:
Playing with some old PS2 game geometry. I had been cleaning it up and adding principle shader to the old textures. It always looked fine in Cycles previously, but with the path guiding build I’m getting what appears to be light leaking through any face that isn’t actually joined at the edges, even when verts are perfectly snapped on top of each other.
Just wanted to point out that we fixed the issues with MNEE and spot lights maybe a week ago.
Would be worth re-doing some of these tests (I know at least this prism scene gets correct now).
cycles_path_guiding branch unfortunately doesn’t have those changes yet. It needs to be merged with master to bring it back up to date.
Fortunately, the workaround for this is pretty easy, just put a cover over where the two objects meet (ie. kind of emulating thick walls, but it is not true thickness).
This is usually noticeable when a strong light such as the sun is hitting a thin surface, I have not seen any notable anomalies that look wrong elsewhere. I assume that Intel has been testing scenes that do not take a lot of shortcuts in modeling (like not creating exterior walls).
@Eneen thanks. I looked at it, and this scene triggered a situation (looooong paths with a chain of 100 perfect spec bounces) that we did not test before.
The fix for that will be part of the next OpenPGL release.
Have you also looked into directional light issue? There’s one inside scene to test, just turn off env.
EDIT: my bad here, light named “spot_light” was actually direct, so you need to enable “spot_light” to test.
Easy in most cases but not ideal… Hope that issue can get resolved regardless. Guess park guiding is actually too good at hiding paths through miniscule openings lol
I seem to have a scene that crashes inside OpenPGL using the Aug. 1st build:
ExceptionCode : EXCEPTION_ACCESS_VIOLATION Stack trace: blender.exe :0x00007FF783B26A40 openpgl::KDTreePartitionBuilder<openpgl::Region<openpgl::ParallaxAwareVonMisesFisherMixture<4,32>,o blender.exe :0x00007FF783B19B30 tbb::internal::function_invoker<<lambda_8f79c36ac1c78eba32095d68b6a570b5> >::execute tbb.dll :0x00007FFEDD3EF220 tbb::recursive_mutex::scoped_lock::internal_try_acquire tbb.dll :0x00007FFEDD3EF220 tbb::recursive_mutex::scoped_lock::internal_try_acquire blender.exe :0x00007FF783B26A40 openpgl::KDTreePartitionBuilder<openpgl::Region<openpgl::ParallaxAwareVonMisesFisherMixture<4,32>,o blender.exe :0x00007FF783B25BB0 openpgl::KDTreePartitionBuilder<openpgl::Region<openpgl::ParallaxAwareVonMisesFisherMixture<4,32>,o blender.exe :0x00007FF783B24DC0 openpgl::Field<openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFisherMixture<4, blender.exe :0x00007FF783B251D0 openpgl::SurfaceVolumeField<openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFis blender.exe :0x00007FF783B05AC0 pglFieldUpdate blender.exe :0x00007FF780CF2130 ccl::PathTrace::guiding_update_structures
Open the following and enable Viewport rendering:
test-light.blend (905.1 KB)
I’m not sure if I do something wrong but I can’t get caustics from spheres, but no problems with flat surfaces. It’s current 3.4 build from 01.08.2022:
filter glossy value to something like 0.10 or 0.20. Path Guiding helps with caustics, but initial paths need to be found before the magic can start.
I will also note that the default distribution scheme (in the current version of OpenPGL) has trouble with difficult effects if they are not discovered right away, the Directional Quadtree distribution meanwhile does not have this problem.
Correction: These problem are caused by a combination of auto smooth shading and shadow terminator and custom split normals data, not path guiding.
I downloaded the latest path guiding branch build. Simple test - a U shaped corridor, with a point light at the end of one arm and Suzanne at the end of the other so the light has to bounce around the bend to reach her.
Render set to equal time (60s).
Path Guiding off
Path Guiding on
Path guiding clearly helps in this scenario - much cleaner image in the same amount of time.
Another test - this time a disco ball lit by a spot light - again equal time render (60s).
Path Guiding Off
Path Guiding On.
In this example - there is a slight tradeoff with noise in the spot light as path guiding renders samples slower, so the overall number of samples with path guiding on is lower - but IMO what you do gain (the reflective caustics) more than compensates.
Very nice! I hope Path Guiding will soon land in Master.
Yep - I believe it’s intended for blender 3.4, so hopefully it will land in master very soon.
I hope it “lands in Linux” first!