Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Internal/master #7453

Merged
merged 55 commits into from May 24, 2022
Merged

Internal/master #7453

merged 55 commits into from May 24, 2022

Commits on May 11, 2022

  1. URP RenderGraph foundation work (v2)

    Jira: https://jira.unity3d.com/browse/URP-1370
    RND Jira:  https://jira.unity3d.com/browse/RND-175
    
    This PR prepares the ground for the URP RenderGraph work:
    
    - Added an hidden option to toggle the RenderGraph render path (use the RENDER_GRAPH_ENABLED to enable the checkbox in the UI)
    - All the passes, except the post processing ones, have been refactored and ported to RenderGraph. All the rendering code was moved into static functions so it can be called from both the current SRP path and the new RenderGraph path. As part of the refactoring, all the SetRenderTarget code has been moved out of the shared static function (since RenderGraph will take care of that), and is called directly in the SRP Execute().
    - Added the infrastructure for the RenderGraph render path, this provides new base methods for the ScriptableRenderers to override
    - UniversalRendererRenderGraph provides a base implementation for the RenderGraph path of the UniversalRenderer. NOTE: this file is currently containing all passes scheduled with no optimizations or culling, since it is the current basic frame used for porting passes. All this code is totally hidden from users, not possible to enable (the UI is hidden), and it is just used by the development team to keep working on rebuilding the full URP frame. So it doesn't need testing since it is work in progress and not final.
    
    The main goals of this PR are: to provide the (hidden) render graph render path, to refactor all basic internal passes to be "RenderGraph friendly" without changing any of their functionality
    
    NOTE TO QA: the RenderGraph path shouldn't be tested since it still doesn't provide the same functionality as the old path, since the work is not complete yet. It is very important to test the "old" non RenderGraph path to make sure that all the refactoring didn't change any of the functionality or the results of the existing passes.
    manuele-bonanno committed May 11, 2022
    Copy the full SHA
    7ca015d View commit details
    Browse the repository at this point in the history
  2. [URP] Case 1403640 Render Objects Pass mask fix

    fix for https://fogbugz.unity3d.com/f/cases/1403640
    
    The RenderObjectsPass didn't set up properly the target attachments and relied on the assumption that the previous passes would set them up correctly. However since the post processing passes don't use the depth attachment and set up only color, this caused issues with missing depth stencil attachment when injecting the pass after post processing.
    
    This PR sets up explicitly the RenderObjectsPass color and depth stencil attachments.
    manuele-bonanno committed May 11, 2022
    Copy the full SHA
    3d10fe4 View commit details
    Browse the repository at this point in the history
  3. Add explicit texture and sampler precision support for DXC (a.k.a. mo…

    …bile texture/sampler precision) (v2)
    
    POI link: https://jira.unity3d.com/browse/RND-385
    Epic link: https://jira.unity3d.com/browse/QOL-123
    
    This PR adds support for generating half/relaxed precision texture/sampler resources in the final platform code with DXC which is relevant on mobile.
    
    **Technical details
    This is implemented in the frontend i.e. via preprocessor defines and with an extra HLSL "postprocessing" step that is done manually afterward (postprocessing only needs to be done for mobile targets)
    
    **From the users perspective "Compile and show code" with the "Preprocess only" checkmark will:
    
    *On mobile targets:
    -Show replacement of the "_half" and "_float" postfixes with "_h" and "_f" respectively on "sampler2D" and similar legacy types
    -Show additions of "_h" postfixes on "sampler2D" and similar legacy types (except for "_CameraDepthTexture" and "_LastCameraDepthTexture" resource declarations it will be '_f")
    -Show "Texture2D" and "Texture2D_half" (and other separate texture types) getting "< min16float4 >" postfixes
    
    *On desktop targets:
    -Show some additions of "_f" postfixes on "sampler2D" and similar legacy types
    
    **DXC currently has 2 mobile backends, they will be affected as follow:
    1) Vulkan - will get additional RelaxedPrecision decorations for the "< min16float4 >" textures and their downstream results in the SPIR-V
    2) Metal - will not be affected as SPIRV-Cross does not translate RelaxedPrecision decorations on textures into "texture2d< half >" as HLSLcc does
    Dredhog committed May 11, 2022
    Copy the full SHA
    e23d871 View commit details
    Browse the repository at this point in the history
  4. [RPW]Adding new API to ShaderData to obtain the Tags from the Seriali…

    - Improve `ShaderUtil `API to fetch data from the Serialized Shader.
    - Fix `GetShaderData().GetSubShader(int)` to obtain the `IntShader `and not the `SerializedShader`.
    alex-vazquez-unity3d committed May 11, 2022
    Copy the full SHA
    7fc6a94 View commit details
    Browse the repository at this point in the history
  5. Fixed water simulation not stopping when entering pause mode in the u…

    …nity editor (case 1400668).
    
    https://fogbugz.unity3d.com/f/cases/1400668/
    Currently the simulation doesn't stop when hitting the pause button while being in the editor. This pr fixes the behavior.
    sebastienlagarde committed May 11, 2022
    Copy the full SHA
    f8f5c60 View commit details
    Browse the repository at this point in the history
  6. Improve auto test perfs

    https://jira.unity3d.com/browse/VFXG-227
    
    The goal is to make the automatic tests run faster.
    Ultimately, we would like to prevent Unity from stealing the focus when running those tests locally.
    julienamsellem committed May 11, 2022
    Copy the full SHA
    dc42c2b View commit details
    Browse the repository at this point in the history
  7. Ported debug color monitors to HDRP (Vectorscope, Waveform & Parade) …

    …(v2)
    
    Ported the [old built-in color monitors](https://docs.unity3d.com/2018.3/Documentation/Manual/PostProcessing-Monitors.html) (Vectorscope, Waveform and parade) to HDRP under the Render Pipeline Debug window in the Rendering panel.
    They are now displayed on top of the scene/game view.
    Docs have been ported from the link above too.
    
    ![image](https://media.github.cds.internal.unity3d.com/user/5326/files/8f1b77ce-95cb-4f10-85d8-9e7bc1bf9ac0)
    BasileUnity committed May 11, 2022
    Copy the full SHA
    4c150c9 View commit details
    Browse the repository at this point in the history
  8. [URP] Depth to Store action for Opaques/Transparents

    fix for case 1404157
    
    Previously we would discard depth for both of these passes which leads to bad scenarios on multiple camera scenarios.
    This PR adds a check for that and stores if it's not the last camera in stack
    jonuuukas committed May 11, 2022
    Copy the full SHA
    03b9cb0 View commit details
    Browse the repository at this point in the history
  9. [URP] Case 1405209 recorder capture fix

    Fixes these issues:
    https://fogbugz.unity3d.com/f/cases/1405209/
    https://fogbugz.unity3d.com/f/cases/1405224/
    
    Introducing the swap buffer system caused a recorder regression, since the recorder source texture wasn't set up properly at Setup time.
    Because of the dynamic nature of the swap buffer, the capture pass source texture needs to be setup at Execute time so we are sure we are accessing the correct swap buffer.
    manuele-bonanno committed May 11, 2022
    Copy the full SHA
    c99f404 View commit details
    Browse the repository at this point in the history
  10. Copy the full SHA
    9ac9521 View commit details
    Browse the repository at this point in the history
  11. [Bug] Rename refraction model box as planar

    [Bug] Rename refraction model box as planar
    skhiat committed May 11, 2022
    Copy the full SHA
    6d086e0 View commit details
    Browse the repository at this point in the history
  12. Changed the way HDRP volumetric clouds presets are handeled to allow …

    …for blending.
    
    This PR changes the way presets are described for three reasons:
    
    - Allow the user to blending between various presets.
    - Start from a preset and alter it slightly.
    - Improving the usage of the samples to increase the quality at equivalent cost.
    
    This PR also changes the actual presets and alters the aplitude distortion.
    https://user-images.githubusercontent.com/42026998/154358834-bb0d46d5-3a5e-43e4-ac70-44a3d62c61fd.mp4
    https://user-images.githubusercontent.com/42026998/154358882-5ed4e19d-a449-4fcf-9920-a30a73328143.mp4
    sebastienlagarde committed May 11, 2022
    Copy the full SHA
    f549c71 View commit details
    Browse the repository at this point in the history
  13. Fix stale light cookie data after cookie disable.

    Fix bug 1400696.
    eh-unity committed May 11, 2022
    Copy the full SHA
    804b791 View commit details
    Browse the repository at this point in the history
  14. Update images of DLSS tests due to new drivers

    Update of DLSS test images for driver update.
    Jira: https://jira.unity3d.com/browse/ANT-592
    kecho committed May 11, 2022
    Copy the full SHA
    3759d63 View commit details
    Browse the repository at this point in the history
  15. graphics/shadersystem/fix_case_1421417_incorrect_stripping_when_combi…

    …ning_stages to trunk
    
    TL DR;
    Fix URP shader stripping for graphics APIs that combine several shader stages together - Vulkan, Metal, GL and Switch (case 1421417).
    
    We got a report that Editor crashes when building Gigaya if Vulkan is in the graphics API list. Turns out it was compiling too many variants (over 400K) for Vulkan while needing only 12K for D3D.
    The underlying issue is that Vulkan is combining vertex and fragment stages together (as do GL and Switch) and stripping logic didn't get the correct information about keywords.
    This PR fixes the stripping in URP.
    aleks01010101 committed May 11, 2022
    Copy the full SHA
    edb6b75 View commit details
    Browse the repository at this point in the history
  16. [URP] Case 1397612 SimpleLit shader instancing fix on SM 2.0

    fix for: https://fogbugz.unity3d.com/f/cases/1397612/
    
    The SM 2.0 shaders were missing the multi_compile_instancing pragma. This PR adds support to GPU instancing on those platforms.
    manuele-bonanno committed May 11, 2022
    Copy the full SHA
    bf25779 View commit details
    Browse the repository at this point in the history
  17. [YAMATO] PS5 Raytracing tests update

    The goal of this PR is to make DXR PS5 tests green:
    - Updated screenshots for all tests with minor noise difference compared to PC
    - Updated screenshots for all tests containing both supported and unsupported features (because of multi bounce not being supported)
    - Disabled all tests only for unsupported feature
    - Disabled failing tests that need investigation:
    
    Failing tests list is in this case: https://fogbugz.unity3d.com/f/cases/1423476/
    
    https://unity-ci.cds.internal.unity3d.com/job/13356273/dependency-graph
    https://unity-ci.cds.internal.unity3d.com/job/13464627/dependency-graph
    JulienIgnace-Unity committed May 11, 2022
    Copy the full SHA
    a01a5dc View commit details
    Browse the repository at this point in the history
  18. [VFX] Skinned Mesh Sampling Out of Experimental

    This PR adds missing feature and integration to get the Skinned Mesh Sampling out of experimental in Visual Effect Graph.
    ![_smr_root_ter](https://media.github.cds.internal.unity3d.com/user/42/files/b5cb2ded-2be6-4edc-ab5b-5c67f21c87de)
    
    _Short version_
    - Remove experimental on all operator/block relative to SMR
    - Add root transform access
    - Add access to previous skin mesh data (to compute velocity)
    
    POI: https://jira.unity3d.com/browse/RND-175
    EPIC: https://jira.unity3d.com/browse/VFXG-150
    Task:  https://jira.unity3d.com/browse/VFXG-194
    PaulDemeulenaere committed May 11, 2022
    Copy the full SHA
    3148eb7 View commit details
    Browse the repository at this point in the history
  19. [RPW]Shader Stripping Watcher

    - Bring back the callback to notify when a shader variant has been processed.
    - Fixing this[ yamato job](https://yamato-artifactviewer.prd.cds.internal.unity3d.com/bfd11010-3cc0-495c-aa6b-1d019a56c210%2FTest_Report_1%2FUtrTestReport1/TestReport.html
    )
    alex-vazquez-unity3d committed May 11, 2022
    Copy the full SHA
    deecca5 View commit details
    Browse the repository at this point in the history

Commits on May 17, 2022

  1. [HDRP][Path Tracing] Replaced recursive continuation rays with loop i…

    …n ray generation (v3)
    
    Although user-wise there should not be too much visible change (if at all), other than slightly improved performance (in the 5-10% range after early tests), this PR removes the recursion from the path tracing, with no more continuation rays shot from closesthit().
    
    This allow us to use an arbitrary number of bounces (still caped to 32 in the UI, but could be increased to any value now), without adding to the recursion level. This also makes aspects of the code cleaner and easier to read (no more do we have to deal with different miss() functions, for instance).
    
    This will also hopefully open the door to other optimizations, like returning a BSDFData-like payload from closesthit() and do all shading computations in the raygen(), or even return a materialID and compute BSDFData or equivalent in the raygen() too.
    
    Note that this PR existed on the public repository already, and was validated by all reviewers, but slightly too late to be merged before the repo change: #7090
    eturquin committed May 17, 2022
    Copy the full SHA
    669b5de View commit details
    Browse the repository at this point in the history
  2. Light Batching Debugger for debugging layers batched with lights and …

    …shadow casters (v3)
    
    POI: https://jira.unity3d.com/browse/RND-175
    EPIC: https://jira.unity3d.com/browse/D2D-2838
    TASK: https://jira.unity3d.com/browse/D2D-1667
    
    Light  Batching Debugger is a new tool for users using the 2D Renderer to quickly and iteratively debug how the lights and shadows are batched according to their sorting layers in the scene.
    
    ![Screenshot 2022-04-18 134833](https://media.github.cds.internal.unity3d.com/user/3757/files/acac6f93-dabc-4291-aa94-423c11ba5db8)
    kennytann committed May 17, 2022
    Copy the full SHA
    2f1c19d View commit details
    Browse the repository at this point in the history
  3. [VFX] Instancing: First iteration (v2)

    VFX Instancing is a feature for VFX Graph that allows batching VisualEffects in memory to perform some operations on them at the same time.
    
    This is the first iteration of the feature, which we consider incomplete at the moment. One or more PRs related to this will need to land before 2022.2.
    
    * How it works
    In general, the process is automatic and VisualEffects will be batched together if the feature is enabled. We included some options to control this behavior:
    - The feature can be globally disabled in Editor in developer mode, using an option under "Preferences> Visual Effects> Instancing enabled".
    - Each VFX graph asset has an option in the inspector to control how the VFX of that asset type are handled. That option allows to disable instancing for that particular asset, to automatically decide the batch size(default), or to manually specify how many VFX can be per batch.
    - Once the VFX is created, the VFX Renderer allows to disable only the rendering part of the feature
    
    Some VisualEffect assets will have instancing forced to disabled if:
    - A particle system has an output node that is transparent.
    - Uses sorting.
    - Use any ShaderGraph material.
    - Has particle strips
    - Uses output events
    - Uses GPU events
    - Has Mesh outputs
    - Exposes variables that are Gradient, Curve, Texture or GraphicsBuffer
    
    * What needs to be tested:
    The feature involved an important refactor, so any VFX can be affected, even if instancing is disabled. We have a good test coverage but it would need additional general testing in case we are missing something.
    Being a first iteration, we are mostly interested in stability. For the next iteration we will test more performance and usability.
    
    * JIRA:
    https://jira.unity3d.com/browse/VFXG-182
    
    * Design document:
    https://docs.google.com/document/d/1WmsOZp1zd3Gl1u7HatiEh-AgCyTp90a_O1RRJPAD9v4
    
    * Short technical high-level presentation on changes to the structure:
    Slides: https://docs.google.com/presentation/d/1Ddmfk0Gbn0gSt-DV1PZcPw_qhN_MkH3sIekGuiwBEHk/edit?usp=sharing
    gabrieldelacruz committed May 17, 2022
    Copy the full SHA
    b56ca45 View commit details
    Browse the repository at this point in the history
  4. Fixed an issue preventing delayed properties from being saved

    https://fogbugz.unity3d.com/f/cases/1422686/
    
    How to reproduce:
    1. Create a new VFX Graph
    2. Type any number in the capacity
    3. Press save button in the toolbar or CTRL + S
    
    Expected result: Capacity value is saved
    Actual result: Capacity reset
    
    [Before]
    ![Unity_qjYnOp192Y](https://media.github.cds.internal.unity3d.com/user/4003/files/7ce21b23-12bc-4329-92fc-ffce71c11672)
    
    {After]
    ![Unity_ID3pJCCpoW](https://media.github.cds.internal.unity3d.com/user/4003/files/29ffc53b-6768-490a-a99a-f45ac77587b8)
    julienamsellem committed May 17, 2022
    Copy the full SHA
    8fd575f View commit details
    Browse the repository at this point in the history
  5. Added renderer bounds access in ShaderGraph

    Migration of #7179
    
    Add access to the renderer bounds in shadergraph through the object node.
    
    ![image](https://media.github.cds.internal.unity3d.com/user/745/files/9287bb14-2cd6-4da9-beb0-97bcc39e2c00)
    
    Jira: https://jira.unity3d.com/browse/HDRP-114
    alelievr committed May 17, 2022
    Copy the full SHA
    6603f3c View commit details
    Browse the repository at this point in the history
  6. platform/gamecore/hdrp-dxr to trunk

    To add ray tracing support for XboxOne Series platforms.
    Runtime support for the XboxOne raytracing has already landed in trunk
    
    Raytracing for Xbox is included in https://jira.unity3d.com/browse/RND-350
    Adrian1066 committed May 17, 2022
    Copy the full SHA
    0332edb View commit details
    Browse the repository at this point in the history
  7. Finding a view’s projection type during BRG culling (v2)

    [RFC: Finding a view’s projection type during BRG culling](https://docs.google.com/document/d/1T0VlP0n7keHPVXmLHuXnJrZJ3-VnKCi1zwzHkhOSHQI/edit?usp=sharing)
    
    The BatchRenderGroup (BRG) API offers a code path for culling that is different from the way most other things in Unity are culled.
    
    ![image](https://media.github.cds.internal.unity3d.com/user/2726/files/99d0d3fe-ea45-4673-9a32-1a71fff45bf8)
    
    In this code path, culling is done in C# and hence is scriptable by the user. Without the BRG, culling is done in C++ and is not scriptable.
    
    In the BRG API, we pass in a culling matrix for each view being culled. When doing culling in C#, the user will want to know what kind of projection that view has. This PR adds an API to do so.
    
    The essence of this PR is adding this member to the context struct:
    
    ```
    struct BatchCullingContext
    {
        // Add this member variable
        BatchCullingProjectionType projectionType;
    }
    ```
    
    The rest of the code is to allow SRPs to provide this information to the engine. This is needed because we cannot infer projection type purely based on the light's type. E.g. even if spot lights usually have perspective projection, HDRP's _box-shaped_ spot lights are orthographic.
    ApoorvaJ committed May 17, 2022
    Copy the full SHA
    63f23e9 View commit details
    Browse the repository at this point in the history
  8. Bump Graphics Packages (v3)

    3rd iteration of https://ono.unity3d.com/unity/unity/pull-request/140981/_/graphics/bump-packages-to-14.0.3 :'(, had to redo it once more because of ghost merge conflicts and impossible clean trunk rebase from the git branch.
    
    The packages are bumped from 14.0.2 to 14.0.3.
    A new section was added to the changelogs, they will need to be actually filled _after_  this PR lands, as we don't know yet what will make it to 14.0.3.
    theo-pnv committed May 17, 2022
    Copy the full SHA
    106d0af View commit details
    Browse the repository at this point in the history
  9. Graphics/hd/bugfix4

    Collection of small bug fixes for HDRP:
    
    [Fix blend mode Label Field](https://github.cds.internal.unity3d.com/unity/unity/pull/9764)
    [Fixed a render error when disabling both movec and opaques.](https://github.cds.internal.unity3d.com/unity/unity/pull/9774)
    [Fixed a render graph error when opening a project with default lighting enabled and clouds in the scene.](https://github.cds.internal.unity3d.com/unity/unity/pull/9784)
    [Fix a NaN resulting from < 0 absorption coefficient in pathtraced hair.](https://github.cds.internal.unity3d.com/unity/unity/pull/9798)
    [Improve the default state of newly created Planar Reflection Probes](https://github.cds.internal.unity3d.com/unity/unity/pull/9799)
    [Fix Planar Probe Preview](https://github.cds.internal.unity3d.com/unity/unity/pull/9840)
    [Display warning for rt sss](https://github.cds.internal.unity3d.com/unity/unity/pull/9849)
    [[HDRP] Change refraction nodes display name](https://github.cds.internal.unity3d.com/unity/unity/pull/9851)
    [Fixed accumulation when shutter interval is zero](https://github.cds.internal.unity3d.com/unity/unity/pull/9871)
    [Adding initial stripping mechanism for shader graph interpolators](https://github.cds.internal.unity3d.com/unity/unity/pull/9896)
    [Try to further improve Depth of Field consistency across resolutions](https://github.cds.internal.unity3d.com/unity/unity/pull/9943)
    [Update accumulation example scripts in the documentation](https://github.cds.internal.unity3d.com/unity/unity/pull/10028)
    [Fixed custom post process not released correctly when switching HDRP asset](https://github.cds.internal.unity3d.com/unity/unity/pull/9951)
    [Fixed a render graph error when using Output AOV in non-dev builds](https://github.cds.internal.unity3d.com/unity/unity/pull/9931)
    [Add information about histogram based exposure and path tracing](https://github.cds.internal.unity3d.com/unity/unity/pull/10043)
    [SSS doc improvements](https://github.cds.internal.unity3d.com/unity/unity/pull/9777)
    
    https://unity-ci.cds.internal.unity3d.com/job/13637711/dependency-graph
    JulienIgnace-Unity committed May 17, 2022
    Copy the full SHA
    34b5635 View commit details
    Browse the repository at this point in the history
  10. [hdrp] Fix for includeForRaytracing, lightDimmer not working for HDAd…

    …ditionalLightData
    
    Missing parameters from sim to renderer
    petterunity committed May 17, 2022
    Copy the full SHA
    f8c4c07 View commit details
    Browse the repository at this point in the history
  11. Add support for skinned motion vectors in HDRP for DOTS (v3)

    This PR enables a path for motion vectors in HDRP for skinned entities. It changes the code that is generated from the Compute Deform node in Shader Graph.
    
    Adds a path in MotionVector vertex shader when dots instancing and deformation defines are enabled. The previous positions are then overwritten by data from DOTS buffers.
    The function is behind the HAVE_MESH_MODIFICATION define inside HDRP. This is enabled by the SG node generation when position, normal or tangent is modified. This is always true for our path as we rely on our Compute Deform node. The Compute Deform node also guarantees that vertex ID is defined.
    
    Compute Deformation node now includes a file from entities graphics and adds a DOTS_DEFORMATION shader define. For now this is hidden behind a motion vector define because it changes the material property from uint to uint4. The file it includes contain the shader logic for applying the deformed vertex data.
    Linear Blend Skinning node uses ByteAdressBuffer instead of Structured. This is fixing an existing issue in DOTS Deformations code for LBS.
    
    Also removed old define to enable dots deformations which is no longer relevant.
    
    
    Note: This is a simpler version of the code implemented as a fix for this bug https://fogbugz.unity3d.com/f/cases/1296266/
    Hedvig Axelsson committed May 17, 2022
    Copy the full SHA
    758b973 View commit details
    Browse the repository at this point in the history
  12. [URP] Rendering Debugger disable Depth priming

    We currently disable a lot of stuff for Rendering Debugger, but not depth priming. To properly fix case 1379409 i am disabling depth priming as well (as depth prepass was already disabled, this won't affect anything)
    jonuuukas committed May 17, 2022
    Copy the full SHA
    7a5f51e View commit details
    Browse the repository at this point in the history
  13. APV Staging PR

    FrancescoC-unity committed May 17, 2022
    Copy the full SHA
    845ef93 View commit details
    Browse the repository at this point in the history
  14. [URP] Case 1418462: Improved fallback to single shadow cascade on GLES2

    Fix for ISS case https://fogbugz.unity3d.com/f/cases/1418462/
    
    We strip shadow cascade keywords from the lighting shaders on GLES2. This was not communicated to users and can cause confusion.
    
    This PR adds an info box under the shadow cascades settings, when targeting GLES2, notifying the users about the fallback to 1 cascade.
    It also makes sure that we fallback correctly to 1 cascade at runtime too, so that the shadows max distance is correctly taken into account.
    manuele-bonanno committed May 17, 2022
    Copy the full SHA
    7af23bc View commit details
    Browse the repository at this point in the history
  15. Copy the full SHA
    93aa599 View commit details
    Browse the repository at this point in the history
  16. Graphics/hd/fullscreen samples

    This is a first version for the new samples of the already merged feature Fullscreen Shadergraph for HDRP.
    AlixMi committed May 17, 2022
    Copy the full SHA
    aa1b734 View commit details
    Browse the repository at this point in the history
  17. [VFX][Feature] Six-way smoke lighting

    This PR creates a new _Material Type_ for the VFX Lit Output of HDRP : SixWaySmokeLit. This feature gives the user the ability to achieve visually realistic smoke effects that react acurately to the lighting of the scene.
    
    Two textures, baked from an external DDC (e.g. Embergen, Houdini, Blender), store the smoke response to lights coming from 6 directions (Right, Top, Back, Left, Bottom, Front). At runtime, these values are interpolated depending on the relative position of the light source.
    This lighting model is integrated to the light loop of HDRP, so the smoke can be affected by all the different light types : 
    
    - Point/Spot Light
    - Directional Light
    - Area Lights
    - Ambient Lighting (LPPV, APV)
    
     
    Additionally, there is an option to store the emission intensity of the smoke in the fourth channel of one of the textures. This intensity value can be remapped with a gradient to render flames. 
    It is also possible to use a separate Emissive map that store RGB values.
    
    Old, but not out-dated presentation : https://docs.google.com/presentation/d/1Q-xgFFXLIu54AwzSXwhy57woOy1ghNIPv-anFzEaCTA/edit#slide=id.ga990b2f242_0_35
    
    JIRA Link : https://jira.unity3d.com/browse/VFXG-225
    
    ![SmokeLitGif](https://media.github.cds.internal.unity3d.com/user/2768/files/5f5c69b2-8f7f-4460-9d81-bb831fcfbb64)
    ludovic-theobald committed May 17, 2022
    Copy the full SHA
    b0dfe1a View commit details
    Browse the repository at this point in the history
  18. [HDRP][Path Tracing] Better match between rasterization and path trac…

    …ing transparency
    
    Addresses https://fogbugz.unity3d.com/f/cases/1408034/
    In short, these changes provide a better match between the transparent objects look in rasterization and path tracing, by following the following rules:
    
    Path Tracer should ignore normal mode and determine it depending on other properties.
    
    If the object is opaque:
    - Single sided: we do not change anything
    - Double sided: if set to mirror do not change anything, otherwise set to flip
    
    If the object is a NON-refractive transparent:
    - Single sided: we do not change anything
    - Double sided: if set to mirror do not change anything, otherwise set to flip
    
    If the object is a refractive transparent:
    - Single sided: we force the refractive mode to thin (5mm interface)
    - Double sided:
        - if the model used is box or sphere: force normal mode none
        - if the model used is thin: if set to mirror do not change anything, otherwise set to flip
    eturquin committed May 17, 2022
    Copy the full SHA
    ca3ef59 View commit details
    Browse the repository at this point in the history
  19. [VFX] Janitoring (Timeline, Decal, SMR)

    Three minor maintenance changes:
    - Update Timeline Asset: The actual issue is due to the cache server enabling (see this conversation, relative to https://github.cds.internal.unity3d.com/unity/ant-graphics-ci/pull/205)
        - Bonus: Provide more info about the cache server issue with more explicit throw exception. See changes in `VisualEffectActivationTrackMigration.cs`, it doesn't change the behavior but only throw earlier.
        - Bonus (bis): Add `Please Reimport.` message
    - Update 37_DecalTest (see this [conversation](https://unity.slack.com/archives/G1BTWN88Z/p1652251551258519) relative to https://github.cds.internal.unity3d.com/unity/unity/pull/8795), some update screenshot has been already done here https://github.cds.internal.unity3d.com/unity/unity/commit/a1fd096d7be12ed200c15d5ce33a25a0bfee3b05 by @adrien-tocqueville 
    - Update wrong graph version of `007_MeshSampling_Animated.vfx` (missing update from https://github.cds.internal.unity3d.com/unity/unity/pull/9537 after conflict resolution), it prevents a log error during import.
    PaulDemeulenaere committed May 17, 2022
    Copy the full SHA
    d126395 View commit details
    Browse the repository at this point in the history
  20. shader replacement for SRP's (v3)

    https://jira.unity3d.com/browse/RND-175
    https://jira.unity3d.com/browse/GFXRPF-27
    https://docs.google.com/document/d/1x8IqIut5iANYzZSbUpfZWeFn-HymlpbGsYEkj2vQo5Y/edit?usp=sharing
    In Built-in there is Camera.RenderWithShader(). For SRP's this functionality does not exist. This PR adds a replacement shader parameter to the DrawRenderers command.
    
    There is already an overrideMaterial available but there is a key distinction between overrideMaterial and replacementShader.
    overrideMaterial: override the material and all material properties.
    replacementShader: override the shader and keep all current properties and try to fit them to the replacement shader. This way users can access textures and properties originally on the renderer in their replacementShader.
    
    This is mainly useful for debug views or other effects that need to access things such as alpha cut-out textures.
    
    This PR also adds UI so this feature is available in the DrawObjects and DrawRenderers customPass and RenderFeature in HDRP and URP.
    
    https://drive.google.com/file/d/1kASDA2S95MijYMpihLT2sWQpzEj8wbiq/view?usp=sharing
    
    
    This feature is not yet supported by the SRPBatcher and BatchRendererGroups. This will be scheduled in the next release and has been added to our backlog for tracking purposes. https://jira.unity3d.com/browse/GFXRPF-40
    robin-demoor committed May 17, 2022
    Copy the full SHA
    d1c61da View commit details
    Browse the repository at this point in the history

Commits on May 23, 2022

  1. Added vfx shadergraph compatibility with Sprite Subtargets (v2)

    Able to use visual effect graph with 2D Sprite Lit, Custom Lit and Unlit Subtargets
    kennytann committed May 23, 2022
    Copy the full SHA
    a2a4717 View commit details
    Browse the repository at this point in the history
  2. [HDRP] Transmission mask support - better scattering distance control

    https://jira.unity3d.com/browse/RND-159
    
    * Transmission Mask
    
    When doing mixed materials, or a material atlas, it was previously not possible to mask transmission in some parts (actually you could put crazy high values in thickness texture but it's weird). For example for trees you only want transmission on leaves and not on the rest of the tree.
    
    added input in all lit shaders + lit/stacklit/fabric shadergraph to control transmission intensity.
    It's similar to subsurface mask, but it's only for transmission. Added graphic test for that
    
    ![image](https://media.github.cds.internal.unity3d.com/user/2154/files/763e4e92-ce21-4622-987b-15288ff62eef)
    
    
    * Scattering distance
    
    Artist request - scattering distance was very hard to control because of broken picker, and it's actually not intuitive to put something HDR here
    
    | before | after (auto migrated) |
    | -- | -- |
    | ![image](https://media.github.cds.internal.unity3d.com/user/2154/files/98397e3a-b639-46cb-bdd7-dcb591de0e25) | ![image](https://media.github.cds.internal.unity3d.com/user/2154/files/d26e3ce7-57b0-416f-99e5-8085bd18fc1f) |
    
    * Added error box
    
    When no profile is assigned, added an error box explaining why the material is purple
    ![image](https://media.github.cds.internal.unity3d.com/user/2154/files/41fa00aa-bdeb-4e3d-989f-53865a5d5cef)
    adrien-de-tocqueville committed May 23, 2022
    Copy the full SHA
    0c214d7 View commit details
    Browse the repository at this point in the history
  3. URP RTHandles P2 - Blitter (v2)

    Migrating public Graphics PR: #7115
    
    Jira: URP-1186
    POI: https://jira.unity3d.com/browse/RND-175
    
    The goal is to use Blitter when doing full screen draws with RTHandles internally in URP and to recommend it to our users.
    
    Blitter offers many advantages:
    * Blitter will use procedural draw where available and this allows us to remove many XR checks.
    * It automatically sets viewport on for scaled RTHandles and seamlessly does it inside of the vertex shader.
    * It doesn't use `cmd.Blit` which does not play well with XR
    * It is in SRP core and therefore is used in other SRPs. URP doesn't need a custom solution.
    * It does not use the DRAW_PRCEDURAL variant which will remove one shader variant from many full screen shaders
    
    This PR goes through URP and factors out all uses of full screen draws and `cmd.Blit` and replaces them with calls to Blitter.
    It also goes through all the affected shaders and makes use of the core package's blit vertex shader instead of URP's.
    
    Additionally, the following changes we done.
    * Many left-over uses of `cmd.GetTemporaryRT` render targets have been replaced by RTHandles.
    * Factor our 4 different implementations of final blit (final blit pass, post process pass (x2), SSAO) into one reusable function.
    * Fix to Blitter's dynamic scaling on RTHandles with scaling disabled.
    * Add Load and Store operations to Blitter.
    * Remove URP's full screen hlsl file.
    sandy-carter-unity committed May 23, 2022
    1
    Copy the full SHA
    42600cf View commit details
    Browse the repository at this point in the history
  4. Keep sticky notes when converting to block subgraph

    https://fogbugz.unity3d.com/f/cases/1200121/
    
    To Reproduce:
    1. Create a new project
    2. Create a new Visual Effects Graph
    3. Create a Sticky Note in it
    4. Select multiple elements using the selection box (click and drag), including some graph elements and the sticky note.
    5. Right click and "Convert to Subgraph"
    
    Expected Result: Subgraph is created and the sticky note appears in the subgraph
    Actual result: Subgraph is created and the sticky note is deleted
    
    _Trying to subgraph this subgraph further throws a null reference exception. Once the main bug is fixed, this needs to be verified._
    julienamsellem committed May 23, 2022
    Copy the full SHA
    aac50e4 View commit details
    Browse the repository at this point in the history
  5. Fix incorrect behavior for the screen space ray traced shadows (case …

    …1424996).
    
    This PR fixes two issues, a regression relative to  the attribution of screen space shadow slots and the maximal slider position for the screen space shadows debug menu.
    https://fogbugz.unity3d.com/f/cases/1424996/
    sebastienlagarde committed May 23, 2022
    Copy the full SHA
    90dc5e8 View commit details
    Browse the repository at this point in the history
  6. [VFX] Activation slots in blocks

    This PR implements the activation ports in block to allow a better/more convenient way to enable/disable blocks with graph.
    Activation expressions can be evaluated on both CPU and GPU and works for spawner blocks. Also for compile time constant, an optimized path is used.
    
    ![activationslot](https://user-images.githubusercontent.com/22473360/137947511-7dbeb592-6c4f-4534-bf6b-93afc5c16902.png         )
    
    In addition to the core feature, this PR also:
    
    - Fixes some useless recompilation triggered when dragging an edge out of an output slot connected to some compilable system
    - Add bool <> uint, int, float casts
    - Optimize the reduction of logical expressions
    
    Fixed https://fogbugz.unity3d.com/f/cases/1428639/
    julienf-unity committed May 23, 2022
    Copy the full SHA
    cabd676 View commit details
    Browse the repository at this point in the history
  7. FIx a zfighting issue with ray tracing effects (case 1425941).

    This PR fixes some artifacts that happens when ray traced shadows are evaluated for a surface that is very far from the camera. This was also fixed for other ray tracing effects
    https://fogbugz.unity3d.com/f/cases/1425941/
    sebastienlagarde committed May 23, 2022
    Copy the full SHA
    872d653 View commit details
    Browse the repository at this point in the history
  8. Apply fog on sky reflections

    https://fogbugz.unity3d.com/f/cases/1357622/
    
    Apply fog when sampling sky texture for reflections. Doesn't apply volumetric fog.
    Currently, fog is applied in screenspace after rendering, so the sky env texture doesn't contain fog.
    SSR correctly reflects fog since it samples the rendered texture, but sampling the cubemap doesn't
    So we should apply fog between pixel position and skybox when sampling the sky to have a consistent look between reflections.
    But applying volumetric fog requires sampling the vbuffer which is kind of expensive
    
    Following screenshot have a black plane with smoothness = 1
    SSR is enabled, which is why some part of the reflection looks correct
    
    |   | Master | Branch |
    | ------------- | ------------- | ------------- |
    | Fog only  | ![image](https://user-images.githubusercontent.com/61282776/150821819-b87f613e-85f9-4ddc-afef-31df7b7715c6.png )  | ![image](https://user-images.githubusercontent.com/61282776/150822029-f4b319f2-301c-4f85-84f5-60f485d46f99.png ) |
    | Fog + Volumetric Fog  | ![image](https://user-images.githubusercontent.com/61282776/150822047-9c186ada-a9ec-476d-862d-e5e5b6c3153a.png )  | ![image](https://user-images.githubusercontent.com/61282776/150822055-63df5807-ea31-49e7-ac0c-cb0d0d3a8175.png ) |
    adrien-de-tocqueville committed May 23, 2022
    Copy the full SHA
    e394b31 View commit details
    Browse the repository at this point in the history
  9. [APV] Scenario Blending Improvements

    https://jira.unity3d.com/browse/HDRP-222
    
    Added None Option for scenario blending budget that disables blending
    ![image](https://user-images.githubusercontent.com/61282776/156154474-48c7aeed-e1a0-4ff0-82ff-ca201c6ab83b.png )
    
    Also added lazy loading to prevent any resource allocation until scenario blending is used. There's no free up when unused, maybe we could add an option to request it from script, or unload when scene changes for example, but if a user decides to use blending at some point, he'll likely reuse it after so not sure it's useful.
    
    Disabled uploading to pool from regular streaming path when blending is enabled, so when cells are uploaded, they are always in the correct state. This requires to delay the update of brick indices to still reserve the spot in the pool, but avoid the data to be sampled by shaders (because they still contain garbage from the previous brick that was loaded there)
    
    Related to above, added option to prioritze a cell, so that newly loaded cells get taken care of quickly.
    Also doesn't allocate validity texture for scenario blending pool, and upload it only once, when the spot in the main pool is acquired. This is doable because validity doesn't change between two scenarios, as subdivion is the same
    
    Added a turnover rate parameter, to allow a percentage of the blending pool to be used for cells with low priority when the system is in a stable state. This ensures all cells get update from time to time.
    This is only available from script through variable `turnoverRate`, but putting it in a VolumeComponent would be a good idea i suppose
    
    GIFs below are with max one cell updated per frame. A script runs to continuously set the blending factor from 0 to 1 so there are always cells to blend.
    Not shown but on master, the behaviour is that only cells in the center (closer to camera) are blended because they have the best streaming score, and other cells never get a chance to update
    
    | Random | Sorted |
    | --| --|
    | ![random-turnover](https://user-images.githubusercontent.com/61282776/156182130-4edd8047-8c15-421a-a0fa-0f9b3f2d652e.gif ) | ![sorted-turnover](https://user-images.githubusercontent.com/61282776/156182136-b097b761-7dba-496b-882d-1b2f181771ce.gif )
    
    When "max number of cells to update per frame" is smaller, you can actually see the chunks updating with the sort method but not a big deal i think since they are close together in the scene
    adrien-de-tocqueville committed May 23, 2022
    Copy the full SHA
    dbf0a47 View commit details
    Browse the repository at this point in the history
  10. Copy the full SHA
    d8f6fd5 View commit details
    Browse the repository at this point in the history
  11. URP Forward+ Improved Tiling

    This PR revamps the tiling math and algorithm used for URP Forward+, and makes it available for general use. This has far tighter bounds than previously, while keeping CPU usage reasonable. It also streamlines a number of things.
    
    Some algorithmic explanations in TDD, but feel free to throw me any questions :) https://docs.google.com/document/d/1-NA5XUqAboVAB4fsMfV9O3eQOrC0RKOvPT9_SGjgwMc/edit#heading=h.wo67r6cr8k6c
    
    Part of the following initiatives:
    https://jira.unity3d.com/browse/RND-406
    https://jira.unity3d.com/browse/RND-177
    pbbastian committed May 23, 2022
    Copy the full SHA
    b155398 View commit details
    Browse the repository at this point in the history
  12. Added documentation and fixed invalid <inheritdoc/> in URPAsset

    The purpose of this PR is to fix the invalid use of <inheritdoc/> which refers to documentation outside the URP package which results in not fetchable documentation that isn't tracked by the FindMissingDoc.exe tool.
    Nzollner committed May 23, 2022
    Copy the full SHA
    f246fca View commit details
    Browse the repository at this point in the history
  13. [URP] Automatic Alpha-To-Coverage Support

    This change attempts to automatically enable alpha-to-coverage
    functionality whenever alpha clipping is in use on opaque materials
    in URP. Since this functionality relies on MSAA, it is only active for
    forward passes. With this change, alpha clipped geometry such as
    foliage should see improved visual quality when MSAA is enabled.
    
    No MSAA:
    ![image](https://user-images.githubusercontent.com/89797527/142033665-071df79a-44ca-4145-a299-b5452a8e10a2.png      )
    
    4x MSAA:
    ![image](https://user-images.githubusercontent.com/89797527/142033684-c1f24950-3fb7-4c4e-9ed5-95379541a16d.png      )
    
    No MSAA (5x Zoom):
    ![image](https://user-images.githubusercontent.com/89797527/149583024-0e7e094e-a658-4dd2-b100-67d0bd9fd5b4.png      )
    
    4x MSAA (5x Zoom):
    ![image](https://user-images.githubusercontent.com/89797527/149583035-878397d1-2e18-4f64-a960-79f489620784.png      )
    gmitrano-unity committed May 23, 2022
    Copy the full SHA
    9701275 View commit details
    Browse the repository at this point in the history
  14. Disabling DLSS vulkan tests temporarily until the QV machines upgrade

    Disable DLSS vulkan tests temporarily until QV machines upgrade.
    Jira: https://jira.unity3d.com/browse/ANT-592
    kecho committed May 23, 2022
    Copy the full SHA
    476c979 View commit details
    Browse the repository at this point in the history
  15. Copy the full SHA
    ba538b5 View commit details
    Browse the repository at this point in the history
  16. Fix the bake diffuse lighting not affeced by the diffuse color (case …

    …1425814).
    
    This PR fixes the fact that the ambient probe is not tinted by the diffuse color in ray tracing effects. Somehow this has been going on for a while undetected. Had to update some screenshots.
    https://fogbugz.unity3d.com/f/cases/1425814/
    anisunity committed May 23, 2022
    Copy the full SHA
    cd14993 View commit details
    Browse the repository at this point in the history