Search Unity

  1. Unity 6 Preview is now available. To find out what's new, have a look at our Unity 6 Preview blog post.
    Dismiss Notice
  2. Unity is excited to announce that we will be collaborating with TheXPlace for a summer game jam from June 13 - June 19. Learn more.
    Dismiss Notice
  3. Dismiss Notice

Official Adaptive Probe Volumes (APVs) experimental release for HDRP in 2021.2

Discussion in 'Graphics Experimental Previews' started by Matjio, Feb 11, 2022.

  1. redspike474

    redspike474

    Joined:
    Oct 4, 2015
    Posts:
    10
    So I did end up getting this somewhat working, but could you confirm how this works legally.

    I want to stay on 2022 LTS for reasons, but does backporting features that are essentially from 2023 mean I have to use a different licence? will I have to use the 2023 one?
    Or can I backport as many features as id like (that work) and still stay on the 2022 licence?
     
  2. adrien-de-tocqueville

    adrien-de-tocqueville

    Unity Technologies

    Joined:
    Mar 16, 2020
    Posts:
    325
    that's is a good question but i am not a legal expert :D i can only link you to that license https://unity.com/legal/licenses/unity-companion-license which is the one use by the graphics repo
     
  3. wilgieseler

    wilgieseler

    Joined:
    Oct 17, 2013
    Posts:
    85
    Unfortunately the sample count doesn't seem to affect the results much. I set them all to 1024 and bounces to 16 and still get similar results. Decreasing the probe distance (adding more probes) doesn't help much either. I thought maybe it could have to do with the denoiser, but none of the settings there helped much. It seems to only happen in places that are primarily lit by indirect light. Any advice would be appreciated, not sure how to debug. It is a very simple test scene.
     

    Attached Files:

  4. wilgieseler

    wilgieseler

    Joined:
    Oct 17, 2013
    Posts:
    85
    Okay, it looks like the artifacts I'm describing happen in just a simple test scene. I created a new HDRP "Basic Outdoors" scene with the default sun light settings and some cubes to make a partially indoor space, and added a reflection probe in there. Baking APV for the scene with default settings and 0.5m min distance results in the splotchy appearance of all indirect lighting. This is especially noticeable when the camera auto-exposes for the interior or shaded area. Is this expected behavior? If so, I'm not sure how APVs can be usable as a lighting solution? Perhaps it is an issue with my HDRP asset or something?
     

    Attached Files:

  5. bnmguy

    bnmguy

    Joined:
    Oct 31, 2020
    Posts:
    137
    I get artifacts sometimes like this. They go away if I go to each reflection probe and manually rebake them. Sometimes a couple times. If your reflections are not baked, then I'm not sure.
     
  6. adrien-de-tocqueville

    adrien-de-tocqueville

    Unity Technologies

    Joined:
    Mar 16, 2020
    Posts:
    325
    adding more probes will not help in this case, it's juste noise because there isn't enough samples and there is no denoiser on probes
    you can try using the 'light probe sample multiplier' in the lighting window
     
  7. jiraphatK

    jiraphatK

    Joined:
    Sep 29, 2018
    Posts:
    312
    I can't find this information anywhere, so here goes:
    assuming that circle is APV probes, triangle is an object.

    a) How would an object sample the probes in case like this?
    upload_2023-11-14_7-19-35.png
    b) and what about this?

    upload_2023-11-14_7-21-23.png
    will there be light leaking in both case?
     
  8. PutridEx

    PutridEx

    Joined:
    Feb 3, 2021
    Posts:
    1,136
    Likely yes, the thicker the wall the less likely it'll happen.

    In your first picture, the wall is much thicker which reduces the likeliness of leaks, but the invalid probe inside of geometry might get it's probe data from exterior probes which causes light leaks. Virtual offset often fails to push probes out as it should.

    In your second picture, the wall is thinner, so leaking is very likely to happen.

    I tried experimenting with ridiculous thick walls, but there's still a chance leaking might happen, even then. The intensity of the light leak will change though.

    The amount of probes also plays a part, the more probes, the less likely it'll use a probe that's outside of your interior.

    Often though, an object will use an exterior probe even if there are no invalid probes anywhere, since APV itself doesn't know if a probe is interior or exterior, thus light leaks.
     
    Last edited: Nov 14, 2023
  9. Jack_Martison

    Jack_Martison

    Joined:
    Jun 24, 2018
    Posts:
    155
    I tried to use a lot of probes for thin walls, it's somewhat solves light leaking, but it eats resources, slowing down fps drastically, is it just in editor or this is legit fps eater?
     
  10. PutridEx

    PutridEx

    Joined:
    Feb 3, 2021
    Posts:
    1,136
    Most likely the more probes you have, the more expensive they are on runtime.
    it also eats an insane amount of disk space. I did many tests, one of them was a small dungeon, with a very high probe density, and APV took over 400MB. The size of an entire game for a small scene with a few objects.

    Bake times also become extremely long, the more probes you have the more samples you'll need for a clean result, and the more samples, the longer per probe for baking.

    I also experimented with multiple probe volumes, and making only probes around walls, roofs, and floors more dense compared to the rest of the scene.

    Unfortunate, not only will this most likely make APV more expensive on runtime, as well as insane disk space, it still doesn't get rid of all light leaks.

    Pretty sad to see APV in this state when it could've been the solution to GI for unity, one that works.
    Even for it's supposed intended purpose, dynamic objects, the light leaks are painfully evident on a moving character as I have shown previously in this thread.


    I know unity's SSGI can use APV as fallback, pretty well too, but unfortunately SSGI suffers with foliage, and in general lower quality compared to SSRT.

    APV needs to be better at preventing light leaks, and then either improve SSGI or SSAO with the goal of them working together with APV for better results.
    A perfect example is SSRT on the asset store, which also uses APV as fallback.
    SSRT works better with foliage (unlike SSGI), has less ghosting and issues, and has by far the best AO i have seen, completely changes visuals from bad to excellent, alongside APV GI.
    Frankly I don't care much for GI from SSGI or SSRT, APV handles that.

    The only real goal is better Ambient occlusion to ground object to reality, which APV doesn't do well. With these two improvements (Better APV anti light leak, and better SSAO or better SSGI), GI will be in an excellent state for HDRP.

    The real challenge comes in interiors and low direct light interiors, as I have explained previously. When there's enough indirect lighting to fill up a room, or close to it, it can hide all of APV's issues.

    From my outsider perspective, which might be completely wrong, it seems APV was butchered at the very beginning when it limited itself for the sake of URP.

    The fact the current anti-leaking mechanisms are considered enough is disappointing.
    I posted a lot on this thread, since the beginning of APV way back (or maybe the feedback for APV thread), so I won't say more since I probably already said it.
     
    Last edited: Nov 16, 2023
    Kabinet13 likes this.
  11. Jack_Martison

    Jack_Martison

    Joined:
    Jun 24, 2018
    Posts:
    155
    I think you one and only dig so deep regarding APVs, pretty sure even devs didn't test it so thoroughly.
    Perhaps you could write one and large thread with tips and usage of APVs? Just like HDRP optimization tips thread.

    Because I'm pretty sure APVs topics never left forums and being in development since 2021 version, nobody really knows anything about it, documentation is really poor on that part and Unity never marketed that feature well.
     
  12. wilgieseler

    wilgieseler

    Joined:
    Oct 17, 2013
    Posts:
    85
    Thank you! I updated the light probe sample multiplier to 24 (with default ray sample counts) and it mitigates this issue almost completely. Phew!
     
  13. wilgieseler

    wilgieseler

    Joined:
    Oct 17, 2013
    Posts:
    85
    I agree that improved or automated tools for fixing light leaking would be an enormous help!
     
  14. wilgieseler

    wilgieseler

    Joined:
    Oct 17, 2013
    Posts:
    85
    Starting with the new 2023.2.0f1 release I cannot bake APVs in my larger scenes (not that large though). Happens on both Mac/Metal and Windows/DX12

    Thread group count is above the maximum allowed limit. Maximum allowed thread group count is 65535.
    UnityEngine.GUIUtility:processEvent (int,intptr,bool&)



    OutOfMemoryException: Out of memory in BLAS buffer
    UnityEngine.Rendering.UnifiedRayTracing.ComputeRayTracingAccelStruct.AllocateBlas (System.Int32 allocationNodeCount) (at ./Library/PackageCache/com.unity.rendering.light-transport@1.0.0/Runtime/UnifiedRayTracing/Compute/ComputeRayTracingAccelStruct.cs:376)
    UnityEngine.Rendering.UnifiedRayTracing.ComputeRayTracingAccelStruct.AllocateBlas (UnityEngine.Rendering.UnifiedRayTracing.GeometryPoolHandle geometryHandle, UnityEngine.Mesh mesh, System.Int32 submeshIndex, UnityEngine.Rendering.RadeonRays.MeshBuildInfo& buildInfo, UnityEngine.Rendering.UnifiedRayTracing.BlockAllocator+Allocation& blasAllocation) (at ./Library/PackageCache/com.unity.rendering.light-transport@1.0.0/Runtime/UnifiedRayTracing/Compute/ComputeRayTracingAccelStruct.cs:207)
    UnityEngine.Rendering.UnifiedRayTracing.ComputeRayTracingAccelStruct.GetOrAllocateMeshBlas (UnityEngine.Rendering.UnifiedRayTracing.GeometryPoolHandle geometryHandle, UnityEngine.Mesh mesh, System.Int32 subMeshIndex) (at ./Library/PackageCache/com.unity.rendering.light-transport@1.0.0/Runtime/UnifiedRayTracing/Compute/ComputeRayTracingAccelStruct.cs:176)
    UnityEngine.Rendering.UnifiedRayTracing.ComputeRayTracingAccelStruct.AddInstance (UnityEngine.Rendering.UnifiedRayTracing.MeshInstanceDesc meshInstance) (at ./Library/PackageCache/com.unity.rendering.light-transport@1.0.0/Runtime/UnifiedRayTracing/Compute/ComputeRayTracingAccelStruct.cs:61)
    UnityEngine.Rendering.UnifiedRayTracing.TerrainAccelStructExtensions.AddHeightmap (UnityEngine.Rendering.UnifiedRayTracing.IRayTracingAccelStruct accelStruct, UnityEngine.Rendering.UnifiedRayTracing.TerrainDesc terrainInstance, System.Collections.Generic.List`1[System.Int32]& instanceHandles) (at ./Library/PackageCache/com.unity.rendering.light-transport@1.0.0/Runtime/UnifiedRayTracing/Common/TerrainAccelStructExtensions.cs:51)
    UnityEngine.Rendering.UnifiedRayTracing.TerrainAccelStructExtensions.AddTerrain (UnityEngine.Rendering.UnifiedRayTracing.IRayTracingAccelStruct accelStruct, UnityEngine.Rendering.UnifiedRayTracing.TerrainDesc terrainInstance) (at ./Library/PackageCache/com.unity.rendering.light-transport@1.0.0/Runtime/UnifiedRayTracing/Common/TerrainAccelStructExtensions.cs:34)
    UnityEngine.Rendering.ProbeGIBaking.BuildAccelerationStructure (System.Nullable`1[T] contribs, System.Int32 mask) (at ./Library/PackageCache/com.unity.render-pipelines.core@16.0.4/Editor/Lighting/ProbeVolume/ProbeGIBaking.VirtualOffset.cs:50)
    UnityEngine.Rendering.ProbeGIBaking.ApplyVirtualOffsets (System.Nullable`1[T] contributors, UnityEngine.Vector3[] positions, UnityEngine.Vector3[]& offsets) (at ./Library/PackageCache/com.unity.render-pipelines.core@16.0.4/Editor/Lighting/ProbeVolume/ProbeGIBaking.VirtualOffset.cs:113)
    UnityEngine.Rendering.ProbeGIBaking.ApplySubdivisionResults (UnityEngine.Rendering.ProbeSubdivisionResult results, System.Nullable`1[T] contributors, UnityEngine.Matrix4x4 refToWS, UnityEngine.Vector3[]& positions) (at ./Library/PackageCache/com.unity.render-pipelines.core@16.0.4/Editor/Lighting/ProbeVolume/ProbeGIBaking.cs:2302)
    UnityEngine.Rendering.ProbeGIBaking.RunPlacement () (at ./Library/PackageCache/com.unity.render-pipelines.core@16.0.4/Editor/Lighting/ProbeVolume/ProbeGIBaking.cs:2107)
    UnityEngine.Rendering.ProbeGIBaking.OnBakeStarted () (at ./Library/PackageCache/com.unity.render-pipelines.core@16.0.4/Editor/Lighting/ProbeVolume/ProbeGIBaking.cs:643)
    UnityEditor.Lightmapping.Internal_CallBakeStartedFunctions () (at <551f32857f194d049b414172a31861af>:0)
    UnityEngine.GUIUtility:processEvent(Int32, IntPtr, Boolean&)
     
  15. Wolfos

    Wolfos

    Joined:
    Mar 17, 2011
    Posts:
    958
    It couldn't have been. APV is a lightmapper. Obviously it has the same limitations as other lightmappers. Long baking times, lots of data, and not working for large worlds. I don't think there's been any baked solution that doesn't suffer those drawbacks, so if large worlds was their goal it was silly to choose baking.

    Wouldn't have been a problem if we had a real-time solution like all the other 3D engines. The Lumen announcement was 3.5 years ago. Surely they could've shipped something similar in that time. Even Godot somehow did it.
    Heck, voxel GI implementations (in production games) go all the way back to 2011.
     
    Last edited: Nov 17, 2023
    newguy123 likes this.
  16. jiraphatK

    jiraphatK

    Joined:
    Sep 29, 2018
    Posts:
    312
    It's not a lightmapper and have different limitation compared to baking lightmap.
    Ironically, it's doesn't work great for complex interior / thin wall (because light leaking) like archviz, but work mostly good in outdoor scenes.
     
    wilgieseler likes this.
  17. wilgieseler

    wilgieseler

    Joined:
    Oct 17, 2013
    Posts:
    85
    Also encountering this problem. Seems to be an exception when its trying to throw a different error message to the console, based on looking at the code.


    NullReferenceException: Object reference not set to an instance of an object
    UnityEngine.Rendering.ProbeReferenceVolume.AddPendingSceneLoading (System.String sceneGUID) (at ./Library/PackageCache/com.unity.render-pipelines.core@16.0.4/Runtime/Lighting/ProbeVolume/ProbeReferenceVolume.cs:1220)
    UnityEngine.Rendering.ProbeVolumePerSceneData.QueueSceneLoading () (at ./Library/PackageCache/com.unity.render-pipelines.core@16.0.4/Runtime/Lighting/ProbeVolume/ProbeVolumePerSceneData.cs:75)
    UnityEngine.Rendering.ProbeVolumePerSceneData.Initialize () (at ./Library/PackageCache/com.unity.render-pipelines.core@16.0.4/Runtime/Lighting/ProbeVolume/ProbeVolumePerSceneData.cs:132)
    UnityEngine.Rendering.ProbeVolumePerSceneData.OnEnable () (at ./Library/PackageCache/com.unity.render-pipelines.core@16.0.4/Runtime/Lighting/ProbeVolume/ProbeVolumePerSceneData.cs:89)
     
  18. jiraphatK

    jiraphatK

    Joined:
    Sep 29, 2018
    Posts:
    312
    wilgieseler likes this.
  19. wilgieseler

    wilgieseler

    Joined:
    Oct 17, 2013
    Posts:
    85
    Enabling disk streaming on Mac/Metal (but not Windows/DX12) fully breaks rendering throwing this error every frame:

    NullReferenceException: Object reference not set to an instance of an object
    UnityEngine.Rendering.ProbeReferenceVolume.UpdateActiveRequests (UnityEngine.Rendering.CommandBuffer cmd) (at ./Library/PackageCache/com.unity.render-pipelines.core@16.0.4/Runtime/Lighting/ProbeVolume/ProbeReferenceVolume.Streaming.cs:1218)
    UnityEngine.Rendering.ProbeReferenceVolume.CleanupStreaming () (at ./Library/PackageCache/com.unity.render-pipelines.core@16.0.4/Runtime/Lighting/ProbeVolume/ProbeReferenceVolume.Streaming.cs:355)
    UnityEngine.Rendering.ProbeReferenceVolume.Cleanup () (at ./Library/PackageCache/com.unity.render-pipelines.core@16.0.4/Runtime/Lighting/ProbeVolume/ProbeReferenceVolume.cs:970)
    UnityEngine.Rendering.HighDefinition.HDRenderPipeline.Dispose (System.Boolean disposing) (at ./Library/PackageCache/com.unity.render-pipelines.high-definition@16.0.4/Runtime/RenderPipeline/HDRenderPipeline.cs:1049)
    UnityEngine.Rendering.RenderPipeline.Dispose () (at /Users/bokken/build/output/unity/unity/Runtime/Export/RenderPipeline/RenderPipeline.cs:103)
    UnityEngine.Rendering.RenderPipelineManager.CleanupRenderPipeline () (at /Users/bokken/build/output/unity/unity/Runtime/Export/RenderPipeline/RenderPipelineManager.cs:97)
    UnityEngine.Rendering.RenderPipelineManager.HandleRenderPipelineChange (UnityEngine.Rendering.RenderPipelineAsset pipelineAsset) (at /Users/bokken/build/output/unity/unity/Runtime/Export/RenderPipeline/RenderPipelineManager.cs:86)
     
  20. Wolfos

    Wolfos

    Joined:
    Mar 17, 2011
    Posts:
    958
    Outdoor scenes are usually too big for baking unless you have a server farm. So there’s no situation it works in. Classic.
     
  21. PutridEx

    PutridEx

    Joined:
    Feb 3, 2021
    Posts:
    1,136
    It could, APV isn't innovative, many custom engine games do it properly with better anti-leaking for large worlds.
    They simply made severe limitations in considering URP platforms and performance, such as the current anti-light leak method.
    It's all a sort of hack.

    In outdoor areas, APV does very well because there's so much indirect lighting. Thus you don't need crazy amounts of probes.
    You can actually bake a fairly massive scene lightning fast compared to lightmaps with APV if it's all outdoor. And in new versions you can stream GPU probe data in realtime to deal with memory for large scenes.

    I'm not huge fan of Lumen, extremely reliant on temporal filters and taxing as can be.
    There's nothing the level of CryEngine SVOGI imo, the fact kingdom come deliverence from years ago, with an ancient CryEngine version, was working beautifully with realtime GI (SVOGI), that is enabled by default and can't be disabled, because it was _that_ fast, it was judged to be the way the game will be played.

    You can't do that with lumen. Nonetheless, lumen is still impressive, with much higher GI quality.

    You're right though, Voxel GI has been a thing since forever.
    I still think there's hope for APV. Albeit barely, but.. good thing this is just a hobby and doesn't effect my career, otherwise I don't know how I'd feel :)
     
    Last edited: Nov 17, 2023
    newguy123 and Kabinet13 like this.
  22. Kabinet13

    Kabinet13

    Joined:
    Jun 13, 2019
    Posts:
    154
  23. bnmguy

    bnmguy

    Joined:
    Oct 31, 2020
    Posts:
    137
    Where exactly are you getting this from?? I highly suspect this is not true.
     
  24. Jack_Martison

    Jack_Martison

    Joined:
    Jun 24, 2018
    Posts:
    155
    I still don't get the logic behind this. Probes that are outside clearly invalidated, why probe invalidation simply doesn't work?

    Screenshot_34.png
     
    Genebris, Kabinet13 and jiraphatK like this.
  25. Jack_Martison

    Jack_Martison

    Joined:
    Jun 24, 2018
    Posts:
    155
    I guess it's all based on this paper from 2017: https://arisilvennoinen.github.io/P...econstruction_from_Sparse_Radiance_Probes.pdf
    Which even should've been fully dynamic at potential cost of 2.0-4.0ms
     
    Last edited: Nov 18, 2023
  26. GTA_6

    GTA_6

    Joined:
    Jun 19, 2023
    Posts:
    11
    @adrien-de-tocqueville are there any plans to implement these or improve the memory consumption, light leaking and noise?
     
  27. Kabinet13

    Kabinet13

    Joined:
    Jun 13, 2019
    Posts:
    154
    That's actually another problem I've had. Why does that happen anyways? Is APV linearly interpolating between probes with very HDR lighting or something?
     
  28. PutridEx

    PutridEx

    Joined:
    Feb 3, 2021
    Posts:
    1,136
    Outside is not invalidated, probes inside of geometry are.

    When a probe is invalid, if virtual offset still fails to move the capture data outside of geometry and they remain invalid, dilation kicks in and gives them probe data from surrounding probes.

    The thing is it doesn't know what's inside an interior and what isn't, dilation simply gets its data from the nearest probe data that isn't invalid, thus light leaks when an interior probe gets data from outside.

    And that is also why the idea of more probes, less chance of light leaks. Simply brute forcing, have as many probes as possible that "nearby" probes will stay in the interior area and no probes will need to use probes from outside. This obviously has big issues for baking time, runtime performance, size, and noise. Most of all it's still random chance, you can still have light leaks.

    Even though for good GI you don't actually need that many probes, but the anti-light leak mechanisms are just nowhere near good enough, thus brute force a ridiculous number of probes and after 1 hour of baking for a tiny scene hope for no leaks, along with 500MB of probe data.
     
    Kabinet13 likes this.
  29. Kabinet13

    Kabinet13

    Joined:
    Jun 13, 2019
    Posts:
    154
    Ah. Doesn't apv scale probe contributions based on validity though? As in at sample time?
     
  30. Jack_Martison

    Jack_Martison

    Joined:
    Jun 24, 2018
    Posts:
    155

    Screenshot_37.png


    I tried nearly everything, the only thing is using probe spacing around 0.1 which tanks performance to "RTX" level. Even with DIlation turned off this thing won't go away. View bias and normal bias are good things but since this is camera view dependent, nothing can be done.

    Seriously after using Unity more than 6 years it's always been rip and tear experience, it feels like I'm constantly argue with engine, I don't remember any feature that just "works" without fiddling with unnecessary stuff.

    As much as I hate Unreal for stupid UI and bloated tabs inside tabs, it just works and not restricting any artistic experience over fiddling with small thingies that eat resources.

    Same scene in Unity and Unreal
    Screenshot_35.png

    Screenshot_31.png
     
    Genebris and PutridEx like this.
  31. PutridEx

    PutridEx

    Joined:
    Feb 3, 2021
    Posts:
    1,136
    Exactly, I went through the exact same experience and frustration, and most of all disappointment. Many posts months or a year ago in this thread or the other APV Feeback thread.

    Virtual offset can also sometimes cause light leaks, even sometimes pushing probes inside of geomtry, not out.
    And sometimes probes leak for seemingly no reason.

    I believe it does, or should, but from my experience it didn't change much.
     
    Kabinet13 likes this.
  32. Kabinet13

    Kabinet13

    Joined:
    Jun 13, 2019
    Posts:
    154
    It's so frustrating because of how close to a genuinely great GI system it is. It's really only one major iteration away from being a joy to work with.

    Maybe the developers working on dynamic APV right now are also getting fed up with it and will improve light leaking for their own sake. (I'm an optimist)
     
    Genebris, PutridEx and Jack_Martison like this.
  33. Jack_Martison

    Jack_Martison

    Joined:
    Jun 24, 2018
    Posts:
    155
    I can't agree more, this is really great GI solution but one step from actually using it.
    It could solve so many headaches while performing ideally and dynamically
     
    Genebris likes this.
  34. jiraphatK

    jiraphatK

    Joined:
    Sep 29, 2018
    Posts:
    312
    Lightmap | APV
    non axis aligned geometry.
    view bias 0.5, probe spacing 0.75
    NVIDIA_Share_vA86Wd1SUB.png


    view bias 0.5, probe spacing 0.5
    NVIDIA_Share_2spvJGyWMa.png

    Even if we mark walls and large structures to be lightmapped, the leaking can still cause problem with dynamic object. I can't force player to not be near the wall...

    Screenshot 2023-11-19 080218.png
     
    nehvaleem, Jack_Martison and GTA_6 like this.
  35. SomethingElse12

    SomethingElse12

    Joined:
    Apr 4, 2022
    Posts:
    60
    Unity 2023.2 update makes it even less possible to bake large worlds. In 2023.1 I could bake scenes individually and that way bake the full world, even though I got seams between the volumes the bake was possible. with 2023.2 all hopes for baking large worlds are gone. Everything is written to few files, rather than per scene files, and bake crashes the same way as baking all scenes at the same time. :((( Is there really no way you can reverse this or do anything about baking larger worlds?
     
  36. SolidK

    SolidK

    Joined:
    Jun 27, 2019
    Posts:
    11
    I feel like one of the most urgent features to work on is individual cell baking. That would basically solve the problem for large worlds and iteration. APV It's an incredible technique that's proven to work well (Demon Souls remake, AC Mirage, The Order 1886, Shadow Of The Colossus remake). They just need to improve it a bit more, but it's really not that far away from being fully usable.
     
    LumaPxxx and SomethingElse12 like this.
  37. SolidK

    SolidK

    Joined:
    Jun 27, 2019
    Posts:
    11
    Also just general stability and predictability. It's funny because I throw a pretty complex environment at it and it does absolutely fine (with favorable conditions, i.e one direct light source). Even with geometry that's screwed beyond repair. But then it can really struggle with just...boxes?
     

    Attached Files:

    • apv.png
      apv.png
      File size:
      1.7 MB
      Views:
      87
  38. jiraphatK

    jiraphatK

    Joined:
    Sep 29, 2018
    Posts:
    312
    More like struggle with thin wall
     
  39. adrien-de-tocqueville

    adrien-de-tocqueville

    Unity Technologies

    Joined:
    Mar 16, 2020
    Posts:
    325
    We noticed this issue internally too, it's because the terrain has a lot of vertices.
    A fix for 23.3 has landed but now we should backport it also
     
    Last edited: Nov 20, 2023
    wilgieseler and PutridEx like this.
  40. newguy123

    newguy123

    Joined:
    Aug 22, 2018
    Posts:
    1,279
    Quoted for 100% agreement.
    In non gaming, we need stuff that just works. We dont have time to mess with little things like this
     
  41. wilgieseler

    wilgieseler

    Joined:
    Oct 17, 2013
    Posts:
    85
    I wonder if there would be a way to mark probes as interior or exterior somehow? I'm not sure how you'd generally define that. But certainly manually indicating which areas are interior would be easy enough to do if it would prevent light leaking. You could automatically generate it perhaps by having an interior probe that flood fills nearby probes about whether they are indoors via physics colliders at bake time? Or volumes? Or some other way of baking more information about where thin walls are? Or maybe even just making it more efficient to have smaller cells and then spam thin walls with extra probes?
     
  42. PutridEx

    PutridEx

    Joined:
    Feb 3, 2021
    Posts:
    1,136
    Unity APV doesn't have that, some other private engines implement their probe system this way.

    Although with APV you can give meshes tags, and create multiple probe volumes, for example 2.

    One only places probes around meshes with the tag "walls", and the other is for everything else.
    Then you can make it so the APV for 'walls' is 0.5 density, while the other is 1.
     
  43. Jack_Martison

    Jack_Martison

    Joined:
    Jun 24, 2018
    Posts:
    155
    I don't think closed engines really hustling that much, as shown in the paper I sent above, they changed grid system to much sparser probes, leading to much more accurate results, and automatically placing probes where needed

    upload_2023-11-23_16-3-19.png
     
  44. GXMark

    GXMark

    Joined:
    Oct 13, 2012
    Posts:
    516
    APV's can they be placed in an empty scene and procedural runtime objects loaded. For example if you had a terrain with your APV probes set out on it. Then started rezzing your world on top would it work? Or does it also require the objects pre loaded at build time?
     
  45. LumaPxxx

    LumaPxxx

    Joined:
    Oct 3, 2010
    Posts:
    350
    Did anyone try apv in 2023.2 with terrain?
    it never worked for me.
    it doesn't bake any light data for terrains,only bake light data for mesh objects.
    it works perfectly with terrain in 2021.2,2022.2,2023.1 on my pc.
     
  46. SomethingElse12

    SomethingElse12

    Joined:
    Apr 4, 2022
    Posts:
    60
    Every update of APV kind of makes it worse. 2022.2 was the most stable one :p I can't even bake my world anymore on 2023.2, have to stay on 2023.1.
     
    LumaPxxx likes this.
  47. LumaPxxx

    LumaPxxx

    Joined:
    Oct 3, 2010
    Posts:
    350
    Thx for info,i saw you guys discussion about apv in 2023.2,i decide stay in 2023.1.20 until next summer.

    extremely agree with the idea of individual cell baking.
     
  48. jiraphatK

    jiraphatK

    Joined:
    Sep 29, 2018
    Posts:
    312
    upload_2023-11-30_22-42-35.png



    If anyone can get this simple scene working somewhat correctly with apv without going below 0.5 probe spacing please tell me how :)

    I have upload the scene geometry setup here
     

    Attached Files:

  49. wilgieseler

    wilgieseler

    Joined:
    Oct 17, 2013
    Posts:
    85
    I have tried this in 2023.2.2f1 and it no longer throws an exception or logs an error but it still does not bake. Also the baking on Mac tends to freeze the editor permanently, even though I have an M3 Max. 2022.3 worked fine.
     
  50. SomethingElse12

    SomethingElse12

    Joined:
    Apr 4, 2022
    Posts:
    60
    Same can't bake terrain in 2023.1 and newer versions. Have to resort to terrain to mesh conversion, then bake.