Commit Graph

28 Commits

Author SHA1 Message Date
Chris Santora f3099aa7d5 Merge remote-tracking branch 'origin/main' into Atom/santorac/NewLayeringWorkflow 2021-05-19 16:57:49 -07:00
gallowj b006eb57fe Updating a bunch of materials in TestData to correct changes to referenced texture paths 2021-05-18 17:36:21 -05:00
Chris Santora 275bb1bfec ATOM-14688 Disable Individual Layers
Added flags for enabling StandardMultilayerPBR layers 2 and 3. This makes it easy to create a two-layer material, or to flip layers off and on for debugging.
2021-05-11 17:25:53 -07:00
Chris Santora 89bb0edb30 ATOM-15518 Change Multilayer PBR To Use Lerp Base Blending
Changed to lerp-based blending, with an implicit base layer.
Renamed some variables to be more clear (blendWeight instead of blendMask, since the weights could come from vertex colors instead of a texture).
Updated DefaultBlendMask_layers.png to better suit the new layering model. It has a black background and overlapping R, G, and B areas.
Updated some of the test materials UV transforms to better fit the new DefaultBlendMask_layers image.
Added a new test object, which is a plane that has painted vertices.
Note that I updated test criteria in AtomSampleViewer to account for these changes as well.
2021-05-10 23:04:56 -07:00
Chris Santora 7443599e25 Merge branch 'main' into Atom/santorac/PomHeightOffset-ATOM-14495
Conflicts:
Gems/Atom/Feature/Common/Assets/Materials/Types/EnhancedPBR_DepthPass_WithPS.azsl
Gems/Atom/Feature/Common/Assets/Materials/Types/EnhancedPBR_ForwardPass.azsl
Gems/Atom/Feature/Common/Assets/Materials/Types/StandardMultilayerPBR_ForwardPass.azsl
Gems/Atom/Feature/Common/Assets/Materials/Types/StandardPBR_DepthPass_WithPS.azsl
Gems/Atom/Feature/Common/Assets/Materials/Types/StandardPBR_ForwardPass.azsl
2021-05-05 00:46:42 -07:00
Chris Santora 88b524d868 ATOM-14495 "POM Height Bias" (continued)
Added Height Offset support to StandardMultilayerPBR.materialtype.

In order to make this work, I updated the GetDepth callback function to support the option of returning absolute depth values rather than relative depth values. Although I could have done transformations inside the GetDepth function, having this as absolute cleans things up a lot. StandardMultilayerPBR_Parallax.lua functor code now populates the MaterialSRG with displacement min/max values, instead of having to normalize the depth factors for each layer. I think this is easier to understand and work with.

Added Height Offset to each layer of StandardMultilayerPBR.
Updated the naming and description for the parallax factor in each layer, to match the other material types.
I removed the global "factor" material property because it doesn't seem applicable anymore since we have per-layer height offset. We can always add some form of this later if customers ask for it.

Squashed commit of the following:

commit 8df460800ff7058f9fbb01f995efdd5ab53d3d2c
Author: Chris Santora <santorac@amazon.com>
Date:   Tue May 4 13:35:27 2021 -0700

    Found a workaround for the DXC compiler bug

commit 5d81617285eb42bb7b48eb060234d2cb89249e34
Author: Chris Santora <santorac@amazon.com>
Date:   Tue May 4 12:27:22 2021 -0700

    Local WIP changes to get a DepthResult struct set up for the GetDepth functions.
2021-05-04 16:00:06 -07:00
Chris Santora bba4867f71 For got to add 012_Parallax_POM_Cutout.material 2021-05-04 13:37:41 -07:00
Chris Santora d1801bbe47 ATOM-14495 POM Height Bias
Added parallax "Height Offset" properties to StandardPBR and EnhancedPBR.

- Refactored depth pass and shadow pass shaders to use the GetParallaxInput utility.
- Updated EnhancedPBR.materialtype to match the parallax controls and functors of StandardPBR.materialtype.
- Updated EnhancedPBR's shadow pass shader to apply a ShadowMapDepthBias because I noticed StandardPBR is doing this, so I made them match.
- Updated StandardPBR and EnhancedPBR to both use the depth offset property, as well as heightmap clipping debug view.
- Note that depth offset is not supported in StandardMultilayerPBR yet, it's hard-coded to 0 for now.
- Note that I plan to rename a lot of the "depth" terms to "heightmap" or "displacement" in an upcoming commit.
2021-04-30 00:39:48 -07:00
antonmic ddd26c3321 addressed review feedback and resolved issues from merge with main 2021-04-25 23:22:02 -07:00
antonmic fb369541cb Changing specularF0 variables back to specularF0Factor 2021-04-24 11:27:13 -07:00
antonmic 7ed49cb20b Merging main 2021-04-24 11:14:49 -07:00
Chris Burel 28170ffe41 Add newlines to the end of all files 2021-04-23 09:43:40 -07:00
dmcdiar 10a8780e6f Merge branch 'main' into Atom/dmcdiar/ATOM-14951
# Conflicts:
#	Gems/Atom/Feature/Common/Assets/Passes/OpaqueParent.pass
#	Gems/Atom/Feature/Common/Assets/Passes/ReflectionGlobalFullscreen.pass
#	Gems/Atom/Feature/Common/Assets/Passes/Reflections.pass
#	Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/ForwardPassOutput.azsli
#	Gems/Atom/Feature/Common/Assets/Shaders/Reflections/ReflectionGlobalFullscreen.azsl
2021-04-22 21:49:21 -07:00
dmcdiar a7b3372c15 Merge branch 'main' into Atom/dmcdiar/ATOM-14951 2021-04-20 22:38:13 -07:00
Chris Santora 33745fdad1 Merge branch 'main' into Atom/santorac/CavityMaps-ATOM-14040
Note there were significant conflicts in LightingModel.azsli and StandardPBR_ForwardPass.azsl. I only did basic resolves of these conflicts, mostly preserving the changes from main and distarding the changes in the local branch. The shaders are not compiling at this point, and of course the tests are not passing. I will fix up the code to make corrections in a separate commit, to make it easier to review those changes separate from this merge.
2021-04-20 16:59:27 -07:00
Chris Santora 94b11e5c8f Replaced StandardPBR_DiffuseOcclusionState and StandardPBR_SpecularOcclusionState functor scripts with just UseTexture functors. The behavior is the basically the same and a lot simpler. All we lose is the occlusion "enable" flag, which is cleaner anyway.
ATOM-14040 Add Support for Cavity Maps
2021-04-20 16:40:10 -07:00
Chris Santora 64e625a79f Added support for cavity maps by changing the "Ambient Occlusion" material property group go just "Occlusion", which now contains properties for both "Diffuse AO" and "Specular Cavity".
Added new input attachment to the fullscreen reflection pass to receive the "ambient" gbuffer.
Added diffuse and specular occlusion to the Skin material type; it was missing before.

ATOM-14040 Add Support for Cavity Maps

Testing:
AtomSampleViewer automation, with updates that will be submitted in that repo.
Manual testing in Material Editor.
Built all AtomTest assets and opened a few test levels, with updates that will be submitted in that repo.
Made local copies of the occlusion test materials and changed replaced the material types with EnhancedPBR and Skin, and got identical results (with clear coat disabled since it works different in EnhancedPBR and is absent in Skin).
2021-04-20 12:52:56 -07:00
dmcdiar f2a757f21e Merge branch 'main' into Atom/dmcdiar/ATOM-14951 2021-04-20 02:50:03 -07:00
antonmic 89edc04129 Fixed subsurface scattering, which now is executes in separate FowardWithSubsurfaceOutput pass 2021-04-19 22:07:27 -07:00
antonmic 7c099ed11c Updated AutoBrick and MinimalPBR 2021-04-19 21:00:13 -07:00
Chris Santora c0e7f475d7 Merge branch 'main' into TexturePresets-ATOM-14765 2021-04-19 20:35:50 -07:00
dmcdiar a4fe1bc8db Removed ClearCoatNormal RT from the pipeline and shaders.
Changed stencil bits to use 0x3 for the IBL Specular pass and 0x80 for the DiffuseGI pass.
2021-04-18 23:07:29 -07:00
guthadam 8fead27c45 ATOM-13950 Material Editor: Removing auto select option from lighting and model presets
Remove option from presets

Updated code to select current default options

Will data drive default options with editor settings or settings registry in upcoming tasks

https://jira.agscollab.com/browse/ATOM-13950
2021-04-18 12:12:32 -05:00
Chris Santora 0c10e769c5 ATOM-14040 Add Support for Cavity Maps
Before working on adding cavity map support, I am replacing the 010_SpecularOcclusion test case with maps that make it easier to distinguish what's going on. The brick map was just too noisy. This simpler tile map will make it easier to see if there are artifacts like banding that get introduced somewhere along the way.

There are corresponding changes in AtomSampleViewer for the baseline screenshot.
2021-04-17 00:13:14 -07:00
Chris Santora 82f6d249eb ATOM-14765 Add More Texture Preset Masks
Several image preset files had a full list of file masks for only one platform. I made sure that the same list was applied to every platform including the default preset.
Removed the "Swizzle" command from Displacement.preset. Swizzle "aaa1" is wrong since this preset expects a single channel image.
Added "_col" to Albedo.preset as an abbreviation for "_color".
Added "_rough" to Roughness.preset as it's a common abbreviation.
Added "_rgbmask" filter to LayerMask.preset to correspond to the "_mask" filter in Grayscale.preset.
Added a warning when an image can't be processed according to the assigned preset due to dimension issues. Otherwise it's difficult to figure out why it's using the ReferenceImage preset instead of what was expected.
Resized the "bark" textures to make them compatible with the image presets.
Removed the "bark1disp2.jgp" image and just applied the changes to the original bark1disp.jpg". It's just blurred a bit to remove excessive noise.
Renamed all the "bark" textures to include an underscore "_" after "bark1" to get the image pipeline to properly recognize the file masks.

Testing:
AtomSampleViewer automation.
All assets in AtomTest build.
Opened several levels in AtomTest.
2021-04-16 23:01:27 -07:00
alexpete c5b955d281 Integrating github/staging through commit b0dd7ed 2021-04-09 12:03:26 -07:00
alexpete c2cbd430fe Integrating up through commit 90f050496 2021-04-07 14:03:29 -07:00
alexpete 75dc720198 Integrating latest 47acbe8 2021-03-25 13:57:57 -07:00