You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Generally describe what this PR will do, and why it is needed
USDPreviewSurface has an opacityModehttps://openusd.org/release/spec_usdpreviewsurface.html which states that transparent acts more like a refractive surface eg. specular isn't affected and is described as "glass". The presence mode acts like it does normally with changing alpha on the principled_bsdf.
If opacityThreshold is being used, the cut-out behaviour also works for transparent mode. This is a little vague, I'm going by their description of the spec here but might need another pair of eyes...
Fixes ALab's lab beaker/flask equipment to be refractive instead of invisible.
Related issues
NA
Dependencies
NA
Breaking changes
Because transparent is considered default, assets which rely on the old behaviour will explicitly need to set opacityMode to presence.
boberfly
changed the title
Cycles : Adds opacityMode support for convertUSDShaders, allowing transmission.
Cycles : Add opacityMode support for convertUSDShaders and normal inputs
Mar 25, 2026
Murray pointed out that the normals stuff requires Cycles 4.5, which we don't use for Gaffer 1.6. Do you want to retarget this all to main (where we're using Cycles 5.0), or shall we merge the opacity to 1.6_maintenance in isolation and then let you retarget the normals only to main?
Murray pointed out that the normals stuff requires Cycles 4.5, which we don't use for Gaffer 1.6. Do you want to retarget this all to main (where we're using Cycles 5.0), or shall we merge the opacity to 1.6_maintenance in isolation and then let you retarget the normals only to main?
Oh right for some reason I was thinking it was Cycles 4.5 in Gaffer 1.6 - yep that sounds like a good plan, the opacity stuff was in a separate commit I can do the normals one just for main.
boberfly
changed the title
Cycles : Add opacityMode support for convertUSDShaders and normal inputs
Cycles : Add opacityMode support for convertUSDShaders
Mar 31, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Generally describe what this PR will do, and why it is needed
USDPreviewSurfacehas anopacityModehttps://openusd.org/release/spec_usdpreviewsurface.html which states thattransparentacts more like a refractive surface eg. specular isn't affected and is described as "glass". Thepresencemode acts like it does normally with changingalphaon theprincipled_bsdf.opacityThresholdis being used, the cut-out behaviour also works fortransparentmode. This is a little vague, I'm going by their description of the spec here but might need another pair of eyes...Related issues
Dependencies
Breaking changes
transparentis considered default, assets which rely on the old behaviour will explicitly need to setopacityModetopresence.Checklist