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

[HDRP][Path Tracing] SSS transmissive mode now triggered by double-sidedness + transmission #5551

Merged
merged 139 commits into from
Sep 16, 2021

Conversation

eturquin
Copy link
Contributor

@eturquin eturquin commented Sep 7, 2021

Changes how thin mode for SSS is enabled in Path Tracing:

A recent change made it so that it is turned on when the "transmission" sss option is set on the material.
However, activating this option when not needed is to be avoided, as half the samples will be lost (on closed objects, they stay "inside" and will have a null contribution)... and since the "transmission" option is on by default on the Lit familty of materials, this would change the results of previously set up scenes, or by default on new scenes even if this behaviour is unwanted in most scenarios.

What is more, the transmissive SSS mode only makes full sense for thin, double-sided surfaces (leafs, sheet of paper or fabric, etc.). We could make it so that it requires both "double-sided" and "transmission" on, but then these options become redundant, and there is no practical case in path tracing where you'd want one without the other. For that reason, it's simpler to make this thin surface behaviour triggered by double-sidedness only, and "transmission" does not have any effect (as was the case originally).

Documentation has been added on the path tracing page to cover this behaviour.

EDIT: after further deliberations, it has been decided to keep dependency on the transmission toggle too: while in most situations it is redundant, there are some corner cases for which it can be useful to rely on both sidedness and this extra toggle.

pmavridis and others added 30 commits May 26, 2021 19:23
* Fix AxF debug output in certain configurations.

* Update comment
* Fix white flash

* changelog

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>
* Show info box when ray tracing is enabled.

* Changelog

* Move below MSAA

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>
…phics Compositor enabled (#4593)

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>
* Reconstruct jittered projection matrix far plane (for Infinite )

* Changelog

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>
…DRP's lifecycle. (#4688)

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>
* Fix overdraw in custom pass utils blur function

* Updated changelog

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>
* Fix

* changelog

* Force sync compilation for TAA

Co-authored-by: CifaCia <f.cifariellociardi@gmail.com>
Co-authored-by: sebastienlagarde <sebastien@unity3d.com>
Co-authored-by: sebastienlagarde <sebastien@unity3d.com>
…side is updated. (case 1335737, related to 1314040) (#4691)

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>
…ing only the RTSSS Data (case 1332904). (#4626)

* Fixed the ray traced sub subsurface scattering debug mode not displaying only the RTSSS Data (case 1332904).

* Add test scene

Co-authored-by: Remi Chapelain <remi.chapelain@unity3d.com>
Co-authored-by: Sebastien Lagarde <sebastien@unity3d.com>
…e refraction and probe refraction (#4653)

* Delete the second transmittance mul

* Changelog

Co-authored-by: Sebastien Lagarde <sebastien@unity3d.com>
#4636)

* Initialize the shading normal to a non-zero value for anisotropy

* Changelog

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>
* Fix VfX lit particle aov output color space

* Update comment

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>
* Fixed issue with transparent unlit.

* Updated changelog.

* Reverted accidental change to default mtl.

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>
* Fix

* changelog

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>
…cal volumetric fog volume (#4728)

* Fixed nullref when deleting the 3D mask of a density volume (case 1339330)

* Updated changelog

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>
@remi-chapelain remi-chapelain self-requested a review September 9, 2021 12:30
Copy link
Contributor

@remi-chapelain remi-chapelain left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Updated test for fabric that this previous PR broke
  • Updated new added test to be more robust for regressions

image

All PT test are green locally.

Relaunched yamato. All green 🟢

@sebastienlagarde
Copy link
Contributor

Todo: merge master and re-target to master

@eturquin eturquin requested review from a team as code owners September 14, 2021 11:57
@eturquin eturquin changed the base branch from hd/bugfix to master September 14, 2021 11:58
@theopnv theopnv removed the request for review from a team September 14, 2021 12:34
@sebastienlagarde sebastienlagarde removed request for a team September 14, 2021 13:01
@sebastienlagarde sebastienlagarde merged commit 1c16be2 into master Sep 16, 2021
@sebastienlagarde sebastienlagarde deleted the hd/pt_sss_thin branch September 16, 2021 17:13
@sebastienlagarde
Copy link
Contributor

@Vic-Cooper I merged this PR but please if you can track it and review the doc. THanks

sebastienlagarde added a commit that referenced this pull request Sep 20, 2021
…dedness + transmission (#5551)

* [HDRP] Fix AxF debug output in certain configurations (#4641)

* Fix AxF debug output in certain configurations.

* Update comment

* Fix SSR accumulation white flash (#4648)

* Fix white flash

* changelog

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Display Info Box when MSAA + ray tracing is onr (#4627)

* Show info box when ray tracing is enabled.

* Changelog

* Move below MSAA

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Fix distortion when resizing the window in player builds with the Graphics Compositor enabled (#4593)

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Add support for the camera bridge in the graphics compositor (#4599)

* Fix Jittered Project Matrix Infinite Far Clip Plane  (#4638)

* Reconstruct jittered projection matrix far plane (for Infinite )

* Changelog

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Fixed a memory leak related to not disposing of the RTAS at the end HDRP's lifecycle. (#4688)

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Fix custom pass utils Blur + Copy overdraw. (#4623)

* Fix overdraw in custom pass utils blur function

* Updated changelog

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Fix draw procedural invalid pass idx 1 on first template load (#4632)

* Fix

* changelog

* Force sync compilation for TAA

Co-authored-by: CifaCia <f.cifariellociardi@gmail.com>
Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Changed light reset to preserve type (#4624)

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Revert "Add support for the camera bridge in the graphics compositor (#4599)"

This reverts commit 2325e3f.

* AxF carpaint: Fix a compilation issue on Vulkan until the cpp HLSLcc side is updated. (case 1335737, related to 1314040) (#4691)

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Revert "Revert "Add support for the camera bridge in the graphics compositor (#4599)""

This reverts commit 30fffd5.

* revert: Fix distortion when resizing the window in player builds with the Graphi

* Fixed the ray traced sub subsurface scattering debug mode not displaying only the RTSSS Data (case 1332904). (#4626)

* Fixed the ray traced sub subsurface scattering debug mode not displaying only the RTSSS Data (case 1332904).

* Add test scene

Co-authored-by: Remi Chapelain <remi.chapelain@unity3d.com>
Co-authored-by: Sebastien Lagarde <sebastien@unity3d.com>

* Fix for discrepancies in saturation and intensity between screen space refraction and probe refraction (#4653)

* Delete the second transmittance mul

* Changelog

Co-authored-by: Sebastien Lagarde <sebastien@unity3d.com>

* Fix a Divide-by-Zero Warning for some Anisotropic Models (Fabric, Lit) (#4636)

* Initialize the shading normal to a non-zero value for anisotropy

* Changelog

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* [HDRP] Fix VfX lit particle AOV output color space (#4646)

* Fix VfX lit particle aov output color space

* Update comment

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* [HDRP][Path Tracing] Fixed transparent unlit (#4605)

* Fixed issue with transparent unlit.

* Updated changelog.

* Reverted accidental change to default mtl.

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Fix distortion with MSAA (#4711)

* Fix contact shadow debug views (#4720)

* Fix

* changelog

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Update Decal-Projector.md (#4695)

* [HDRP] Fixed nullref when deleting the texture asset assigned in a local volumetric fog volume (#4728)

* Fixed nullref when deleting the 3D mask of a density volume (case 1339330)

* Updated changelog

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Fix decal layer enum (#4753)

* Fix typo

* Fixed reflection probes being injected into the ray tracing light cluster even if not baked (case 1329083). (#4640)

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Ignore hybrid duplicated reflection probes during light baking (#4663)

* Ignore hybrid duplicated reflection probes during light baking

* test path instead of scene

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Fix double sided option moving when toggling it in the material UI (#4725)

* Fix double sided option moving when toggling it in the material UI (case 1328877)

* Updated changelog

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Fix formatting

* Fix volumetric fog in planar reflections (#4736)

* Fix planar reflection

* changelog

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Fix motion blur compute dispatch size (#4737)

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* - Updated the recursive rendering documentation (case 1338639). (#4759)

* - Updated the recursive rendering documentation (case 1338639).

* review fixes

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Fix issue with OnDemand directional shadow map being corrupted when reflection probe are updated same frame (#4812)

* Don't mark as rendered for reflection probes as we want the cached version to be from main view

* Do the thing just for directional

* Doc update

* changelog

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Fix cropping issue with the compositor camera bridge (#4802)

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Fix for unused resources in depth of field (#4796)

* Removing the word Radii from exposure settings (#4854)

* Rename in UX

* Update docs

* [HDRP][Path Tracing] Support for shadow mattes (#4745)

* Shadow matte support.

* Updated changelog.

* Only take occluders into account, closer match to raster mode.

* Added test scene.

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Revert "[HDRP][Path Tracing] Support for shadow mattes (#4745)"

This reverts commit 85ebbc2.

* Fixed the transparent cutoff not working properly in semi-transparent  and color shadows (case 1340234). (#4756)

* Fixed the transparent cutoff not working properly in semi-transparent and color shadows (case 1340234).

* Update test ref image

Co-authored-by: Remi Chapelain <remi.chapelain@unity3d.com>
Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Use non jittered projection in outline pass (#4836)

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* [HDRP][Path Tracing] Sky settings now properly taken into account when using recorder (#4856)

* Make sure sky settings are correctly set when recording.

* Updated changelog.

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Fix Resolution Issues for Physically Based Depth of Field (#4848)

* Add the necesarry texture coordinate clamping for RTHandle for color pyramid sampling

* Add some resolution independence, fitted for 1920x1080

* Changelog

* Switch back to point sampling from trilinear, with commentary

* Update test reference images

* Small correction to the point sampling, always sample mip 0.

* Re-update the test images, for mip 0 color sampling

* Use a simpler UV scaling/clamping since we are now point sampling.

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Fixed bug introduced by sky-for-recorder support. (#4906)

* [Fogbugz 1341576] Memory leaks when the player is paused, and the user changes pipeline… (#4845)

* Memory leaks when the player is paused, and the user changes pipeline settings

* changelog

* [HDRP] Fixed shadergraph double save (#4916)

* Don't need to save twice shadergraph the first time we create a graph

* Updated changelog

* Write 0 instead of micro sized motion vectors + fix extremely fast velocities (#4820)

* Kill micromovements.

* Do same for camera

* Debug view update

* Changelog

* Remove unnecessary comment

* Fix excessive velocity end up marked as no velocity

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* [HDRP] Fix material upgrader (#4821)

* Fix HDRP material upgrade failing when there is a texture inside the builtin resources assigned in the material

* Updated changelog

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* [HDRP] Fix custom pass volume not executed in scene view (#4860)

* Fix custom pass volume not executed in scene view because of the volume culling mask

* Updated changelog

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Fix reflection probe tootltip (#4890)

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Updated the Physically Based Sky documentation for baked lights (#4891)

* Updated the Physically Based Sky documentation for baked lights

* Rewrite

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Fixed remapping of depth pyramid debug (#4893)

* Fixed remapping of depth pyramid debug

* Removed debug pragma

* Update changelog

* Updated tooltip

* Fix wobble-like (or tearing-like) SSAO issues when temporal reprojection is enabled. (#4895)

* Fix AO perceived wobble

* changelog

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Fix Asymmetric Projection Matrices and Fog / Pathtracing (#4926)

* Check for asymmetric projections and choose the generic path if so.

* Fix asymmetric projections for the pathtracer ray generation.

* Changelog

* Simplify the matrix multiplication for computing the generic matrix.

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Revert: Fix wobble-like (or tearing-like) SSAO issues when temporal reprojection…

* Fix GBuffer depth debug mode (#5054)

* Fixed Volume Gizmo size when rescaling parent GameObject (#4915)

* Fix Vertex Color Mode documentation (#4976)

* Fix wobble-like (or tearing-like) SSAO issues when temporal reprojection is enabled.  (#4986)

* Fix AO perceived wobble

* changelog

* Update screenshots

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Fix formatting in NestedOverrideCameraRendering

* [HDRP] Fix white flash with SSR when resetting camera history (#5089)

* Fix white flash with SSR when resetting camera history

* Move branch login inside GetPreviousExposureTexture

* Fix for fixed exposure

* [Fobguz # 1348357] VFX Particle templates missing stencil flags (#5080)

* Adding missing macro for stencil flags in particle forward shaders. This will let flags like TAA Reject be useful

* Changelog

* Fix object disappearing from lookdev (#5063)

* Fixed objects disappearing from Lookdev window when entering playmode (case 1309368).

* Updated changelog

* Added hideflags in Lookdev context

* [HDRP] Fix render object after taa jittering (#5088)

* Add a pass after TAA to restore non jittered matrices

* updated changelog

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Fix GC alloc in hd/bugfix branch (#5134)

* Fixed GC alloc on hd/bugfix branch

* Fix GC alloc again

* Fix refraction tile artifacts near reflection probe edges (#4727)

* Pick the right probe at object center instead of tile granularity.

* changelog

* Missing commit

* Move stuff in lightloop and out of prelightData

* Update LightLoop.hlsl

* Formatting

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Fix camera rotation uncontrollable with low framerate (#5076)

* Fix camera rotation uncontrollable with low framerate.

* updated changelog

* Clearing out render targets and randmo write targets on pipeline destruction (#5176)

Changelog

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Fixed a null ref exception when adding a new environment to the library. (#5131)

* Fixed a null ref exception when adding a new environment to the library.

* Update changelog

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* FogBugz#1348462 - Wait for accessing the HDProjectSettings instance as it was before. (#5141)

* Fix nullref in volume system after deleting a volume object (#5161)

* Fix nullref in volume system after deleting a volume object (case 1348374)

* Updated changelog

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* [HDRP] Fix APV UI loosing focus when changing a param (#5219)

* Fixed the APV UI losing focus when the helpbox about baking appears in the probe volume.

* Small changes (#5220)

* Fix update order in Graphics Compositor causing jumpy camera updates (#5235)

* Prevent material from having infinite intensity (#5132)

* Prevent material from having infinite intensity

* Fix switching from ldr to hdr emissive

* Fix input field precision

* Round the max value

* Make two variables

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* [HDRP] Adding limitations of decal emissive positive contribution to the documentation (#5237)

* Add emissive positive contribution limitation to the doc

* changelog

* Update CHANGELOG.md

* Update Decal-Projector.md

* Update Decal-Shader.md

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* [HDRP] Fix issue with path tracing when switching between non-persistent cameras (#5246)

* Fix issue with path traceing accumulation when switching between cameras.

* Check if camera history is persistent

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* removed undesired files

* Fix log base (#5260)

* [HDRP] Fixed mask value stored by the LayerMaskParameter class (#5250)

* Fixed value stored by the layer mask parameter class.

* Updated changelog.

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* [HDRP][DXR] Make vertex color default to 1.0 instead of 0.0 (#5268)

* When raytracing, make vertex color default to white if not present.

* Updated Changelog.

* Added comment.

* Fix issue with 0-sized dispatch with extremely low resolutions (#5272)

* Ceil to int instead.

* changelog

* [HDRP] Fix incorrect light list indexing when TAA is enabled (#5287)

* Fix incorrect light list indexing when TAA is enabled

* Better handle XR

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Fix incorrect additiona velocity for alembic (#5304)

* Fixed LUT initialization in Wireframe mode (#5156)

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* [HDRP] [LightExplorer] Fix missing refreshwhen editing property with a running paused editor. (#5321)

* Update HDLightExplorerExtension.cs

* Update CHANGELOG.md

* Changed Ambient Mode to Dynamic by default (#5350)

* Visual Environment component ambient mode now defaults to Dynamic.

* Update changelog

* Updated test scene with correct ambient mode after the change

* Missing files

* Last scene fix

* Hd/fix framesettings ordering (#5323)

* Fix strange entry in the FrameSettings and add comments for better readability

* Update CHANGELOG.md

Co-authored-by: JulienIgnace-Unity <julien@unity3d.com>

* Bugfix 1357311: Fixed old ray tracing material conversion (#5364)

* - fixed crash in material conversion where material used old raytracing render queue (3900)

* - changelog update

# Conflicts:
#	com.unity.render-pipelines.high-definition/CHANGELOG.md

* Bugfix 1358480: Fixed missing tooltip for "Tessellation Mode" (#5365)

* - fixed missing "Tessellation Mode" tooltip

* - update changelog

* - updated "Tessellation Mode" tooltip

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* [HDRP] Fix HD template (particularly visible in path tracing) (#5319)

* Made the 3 light bulbs non shadow-casting.

* Revert "Made the 3 light bulbs non shadow-casting."

This reverts commit f32ba7d.

* Changed bulb prefab (shadow caster off).

* Revert: Changed Ambient Mode to Dynamic by default #5350

* Fixed a null ref exception when no opaque objects are rendered. (#5463)

* Fixed a null ref exception when no opaque objects are rendered.

* Update changelog

* Fix slope scale depth bias when depth offset is ON (#5466)

* Fix slope scale bias being broken when depth offset was enabled

* changelog

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* [HDRP] Fix spot shadow sampling when using custom spot angle (#5439)

* Fixed shadow sampling artifact when using the spot light shadow option 'custom spot angle'

* Updated changelog

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Fix darkening in SSR fade  (#5472)

* Fix

* Changelog

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* [HDRP] Improve path traced subsurface scattering for transmissive surfaces (#5485)

* Improve subsurface scatering for transmissive surfaces

* Add changelog + fix throughput multiplication

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Fix missing context menu for 'Post Anti-Aliasing' in Camera (1357283) (#5497)

Co-authored-by: sebastienlagarde <sebastien@unity3d.com>

* Thin SSS mode now requires double-sidedness too.

* Thin mode now only relies on double-sidedness (and not transmission).

* Added doc for path-traced transparent and SSS objects.

* Added test

* Update fabric broken test by #5485 PR

* Thin SSS mode now requires double-sidedness too.

* Updated documentation.

* Update test and ref image

* Cosmetic.

* Re-updated ref image for test 5007.

Co-authored-by: Pavlos Mavridis <pavlos.mavridis@unity3d.com>
Co-authored-by: FrancescoC-unity <43168857+FrancescoC-unity@users.noreply.github.com>
Co-authored-by: sebastienlagarde <sebastien@unity3d.com>
Co-authored-by: John Parsaie <johnpa@unity3d.com>
Co-authored-by: anisunity <42026998+anisunity@users.noreply.github.com>
Co-authored-by: Antoine Lelievre <antoinel@unity3d.com>
Co-authored-by: CifaCia <f.cifariellociardi@gmail.com>
Co-authored-by: Adrien de Tocqueville <adrien.tocqueville@unity3d.com>
Co-authored-by: slunity <37302815+slunity@users.noreply.github.com>
Co-authored-by: Remi Chapelain <remi.chapelain@unity3d.com>
Co-authored-by: Adrian1066 <44636759+Adrian1066@users.noreply.github.com>
Co-authored-by: Kleber Garcia <kleber.garcia@unity3d.com>
Co-authored-by: Julien Ignace <julien@unity3d.com>
Co-authored-by: alex-vazquez <76204843+alex-vazquez@users.noreply.github.com>
Co-authored-by: Rémi Chapelain <57442369+remi-chapelain@users.noreply.github.com>
Co-authored-by: Remi Slysz <40034005+RSlysz@users.noreply.github.com>
Co-authored-by: Jarkko Lempiäinen <79095390+JarkkoUnity@users.noreply.github.com>
Vic-Cooper added a commit that referenced this pull request Sep 28, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.