Commit Graph

117 Commits

Author SHA1 Message Date
mrieggeramzn 8c6900eb06 Atom/mriegger/normaloffsetbias (#4841)
* Adding directional light shadow bias

Signed-off-by: mrieggeramzn <mriegger@amazon.com>

* Adding normal offset bias to the directional shadow maps

Signed-off-by: mrieggeramzn <mriegger@amazon.com>

* not time yet for this

Signed-off-by: mrieggeramzn <mriegger@amazon.com>

* small comment fix

Signed-off-by: mrieggeramzn <mriegger@amazon.com>

* fixing tabs

Signed-off-by: mrieggeramzn <mriegger@amazon.com>
2021-10-22 11:48:04 -05:00
galibzon 63140dc247 Atom/galibzon/atom 4608/inline to root constant (#4897)
* Changed references to "InlineConstant" to "RootConstant".

Updated AZSLC to version 1.7.34  for mac,  linux & windows

Signed-off-by: garrieta <garrieta@amazon.com>
2021-10-22 05:52:50 -05:00
santorac b32a6a1369 Reverted accidental change to StandardPBR.material type's color property name.
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
2021-10-21 12:52:28 -07:00
santorac f83b6594c9 Updated MaterialTypeSourceData to force users to move the "version" indicator to the new location at the top level of the json document.
(It's a simple enough change to make manually, and making .materialtype is an uncommon workflow, so not worth doing this automatically).

Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
2021-10-21 11:05:47 -07:00
Tommy Walton 2dd00e2983 Move wrinkle mask data out of default object srg (#4578)
* Refactored depth, shadow, and motion vector shaders to support custom object srgs. Added a new skin object srg and moved wrinklemask data out of the default object srg. Added a new minimal morph target asset for testing wrinkle masks to AutomatedTesting.

Signed-off-by: Tommy Walton <waltont@amazon.com>

* Fix copyright header

Signed-off-by: Tommy Walton <waltont@amazon.com>
2021-10-14 08:58:50 -07:00
mrieggeramzn c38c9739da Adding vertexNormal to the Surface structure and using it for shadows (#4617)
* Adding vertex shadow and using it for all shadows
* Fixing small issue with it not being initialized
* Adis recommendations for hair

Signed-off-by: mrieggeramzn <mriegger@amazon.com>
2021-10-12 13:32:47 -07:00
santorac 3753ee6f1c Merge remote-tracking branch 'upstream/development' into Atom/santorac/RemixableMaterialTypes 2021-09-28 22:12:18 -07:00
amzn-tommy ed61f47b7f Cleaner initialization of heightMinMax plus a comment in StandardMultilayerPBR_Common.azsli to indicate that the .lua needs to be updated if the .azsli enum changes.
Signed-off-by: amzn-tommy <waltont@amazon.com>
2021-09-21 10:10:54 -07:00
amzn-tommy d15d7c3a85 Modify CalcOverallHeightRange to not return nil
Signed-off-by: amzn-tommy <waltont@amazon.com>
2021-09-20 16:24:28 -07:00
santorac 71c7fc0217 Updated unit tests to work with the new convention for property name vs property ID.
This revealed that the approach of reflecting both the old "id" and the new "name" would not work, because whenn saving it would write out both fields. So I decied to just give up on backward compatibility. This will be much cleaner than trying to continue supporting "id" as a field name, it is uncommon for users to make their own material types at this point, and if they have made some it is very easy to search and replace "id" with "name" update their files.

All .materialtype files have been updated. RPI unit tests now pass. ASV still passes.

Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
2021-09-17 23:12:24 -07:00
santorac c2abd2d74f Updated the naming convention for material property "names" vs "IDs".
A "property name" is the name of the just the property without regard to the group that it's in. A "group name" is the name of the group. And a "property ID" is the full unique name of a property in the form "groupName.propertyName". This is important preparation for upcoming changes where property sets can contain other property sets, and property IDs can be arbitrarily long like "layer1.baseColor.factor" for example.

The naming changes include variables, some code comments, and the .materialtype file format. I was able to make these changes in a backward compatible way so a property or group "id" field has been replaced with a "name" field, but "id" is still supported for compatibility. StandardPBR, EnhancedPBR, StandardMultilayerPBR, and Skin have all been updated. Note that MinimalPBR has not been updated, proving that backward compatibility works. (We can update this one too at some point though).

Testing:
Opened up materials in the material editor.
Ran AtomSampleViewer in dx12 and vulkan with no new failures.

Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
2021-09-17 22:19:31 -07:00
galibzon 4cac875589 [ATOM-15058] Remove Automatic Entry Point Detection (#3150)
.shader files must declare at least  one entry function.

Signed-off-by: garrieta <garrieta@amazon.com>
2021-08-17 08:21:39 -05:00
Steve Pham 38261d0800 Shorten copyright headers by splitting into 2 lines (#2213)
* Updated all copyright headers to split the longer original copyright line into 2 shorter lines

Signed-off-by: Steve Pham <spham@amazon.com>
2021-07-16 15:25:48 -07:00
Ken Pruiksma 1f77afae6e Fixing alpha affects specular showing up when the alpha mode is opaque or cut-out. It should only be available when mode is blended or tinted transparent. (#1830)
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
2021-07-02 15:49:43 -05:00
antonmic 832a1c36a4 Merge pull request #1756 from aws-lumberyard-dev/2016/antonmic/subsurfaceVulkan
[ATOM-15876] fixed subsurface scattering on vulkan
2021-07-02 13:06:13 -07:00
antonmic 19638c4697 [ATOM-15876] fixed subsurface scattering on vulkan
Signed-off-by: antonmic <56370189+antonmic@users.noreply.github.com>
2021-07-02 11:54:23 -07:00
Ken Pruiksma 6a0b8ae6b6 [ATOM-15854] Adjusting alpha on grazing angles so it doesn't affect the diffuse response. (#1708)
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
2021-07-01 21:50:01 -05:00
Steve Pham b4a2edec6a Final update copyright headers to reference license files at the repo root (#1693)
* Final update copyright headers to reference license files at the repo root

Signed-off-by: spham <spham@amazon.com>

* Fix copyright validator unit tests to support the stale O3DE header scenario

Signed-off-by: spham <spham@amazon.com>
2021-06-30 19:51:55 -07:00
Ken Pruiksma 1ee4f7b447 Adjusting alpha on grazing angles so it doesn't affect the diffuse response. (#1599) 2021-06-29 12:45:10 -05:00
Ken Pruiksma ac13551dc0 Cherry picking a034500a10 [a034500] (#1580)
Adding a factor for alpha affecting specular in the standard and enhanced pbr materials (#1474)

* Adding a factor for how much alpha should affect specular to standard and enhanced pbr. Currently blended and tinted transparency always assume that the geometry represents the surface, and the surface may just be transparent like glass. In this model, specular is unnaffected by alpha - perfectly clear glass still reflects light and obeys the Fresnel factor. However alpha may also represent the absence of a surface entirely for mateirals where cut-out alpha is a bad fit because of subpixel detail, like hair or cob webs. This change addresses that by allowing the alpha to also affect specular reflection if desired.

* Adding material for ASV test.
2021-06-24 20:14:28 -05:00
mrieggeramzn b4641b0b5d Merge pull request #1558 from aws-lumberyard-dev/banding
Adjust Pdo shadow map bias
2021-06-24 13:14:56 -07:00
mriegger 648a7d85cc Adjust Pdo shadow map bias 2021-06-24 10:26:45 -07:00
Steve Pham 70042fcdcd O3DE Copyright Updates for Linux Foundation (#1504) 2021-06-23 10:55:22 -07:00
Ken Pruiksma 570696ad76 [ATOM-14344][ATOM-13908] Merging skinned and static mesh motion shaders using an optional vertex stream (#1491)
[ATOM-14344][ATOM-13908] Merging skinned and static mesh motion shaders using an optional vertext stream. This removes the log spam "Mesh does not have all the required input streams. Missing 'POSITIONT0'." and allows Material::GetShaderCollection() to be const only as it was intended. The MeshFeatureProcessor also no longer needs to decide which motion vector shader to use, and therefore no longer has m_skinnedMeshWithMotion in the descriptor to acquire a mesh.
2021-06-22 21:25:43 -05:00
mnaumov ac7ec103c8 Fixing PDO offset tooltip 2021-06-21 15:20:22 -07:00
Ken Pruiksma 0a11931422 Removing reference to non-existent parallax.invert property. (#1409) 2021-06-17 16:10:37 -05:00
Ken Pruiksma cf9e088133 ATOM-15708 ATOM-15709. Disabling the low end shader for blended and tinted transparencies. The standard shader is already drawing in the transparent pass for those blend modes. Also improving the way StandardPBR_HandleOpacityMode is getting the correct shader by using a tag instead of index. (#1355) 2021-06-16 14:17:21 -05:00
Ken Pruiksma bf76963696 [ATOM-15683] StandardPBR shader now makes sure to mark w for no subsurface scattering. Currently all StandardPBR materials are being subject to a 2x2 box blur because the DiffuseSpecalarMerge pass thinks they have samples with subsurface scattering turned on, and this is degrading the quality of diffuse. (#1249) 2021-06-10 16:12:02 -05:00
Doug McDiarmid ef05412063 Merge branch 'main' into Atom/dmcdiar/ATOM-15517 2021-06-03 13:31:18 -07:00
Qing Tao c009e7d50b ATOM-4782 [Material] Transparent pass is using StandardPBR_Forwardpass shader with incorrect SRG (#1103)
Removed TransparentPassSrg until we have pbr shaders TransparentPassSrg
2021-06-03 10:42:20 -07:00
Doug McDiarmid 35d7ee5e53 Merge branch 'main' into Atom/dmcdiar/ATOM-15517 2021-06-02 00:10:55 -07:00
Doug McDiarmid 59ab6edaef Added occlusion culling plane visualization 2021-05-31 01:38:13 -07:00
Chris Santora 147f0084a8 Removed subsurface scattering and transmission features from StandardPBR.materialtype.
ATOM-4120 Stabilize Standard PBR Regarding Subsurface and Translucency
2021-05-28 15:47:25 -07:00
Chris Santora 2112da5f85 Reordered material property groups according to design review.
- Base Color
- Metallic
- Roughness
- Specular Reflectance F0
- Normal
- Occlusion
- Emissive
- Subsurface
- Clear Coat
- Displacement
- Opacity
- UVs
- Irradiance
- General Settings

ATOM-14002 [Material Editor] Revisit user facing organization and layout of material types
2021-05-28 14:34:07 -07:00
Chris Santora de4e6957e8 Made a bunch of display name and description updates to core material types.
- Renamed "Details" group to "Overview".
- Renamed "UV Names" group to "UV Sets".
- Renamed "General" group to "General Settings".
- Renamed "Parallax" group to "Displacement".
- Renamed "Texture Map" properties to just "Texture". In cases where a specific type of texture is mentioned like "roughness texture map" I called this "roughness map" (which is more common according to google).
- Renamed "Heightmap" to "Height map" (which is more common according to google).

ATOM-14002 [Material Editor] Revisit user facing organization and layout of material types
2021-05-28 13:38:56 -07:00
Chris Santora 05654ea152 ATOM-15653 Remove Unnecessary Parallax Map Invert Flag
Removed the parallax invert flags and instead all the materials assume displacement is always specified as heightmaps.
Updated property naming, tooltips, and shader variable names to reflect this.
Updated ParallaxMapping.azsli to treat depthOffset as an offset in depth value rather than an offset in height value, so it matches the fact that ParallaxMapping.azsli always operates in depth values rather than height values.
2021-05-27 11:09:10 -07:00
Chris Santora b206e7ffe5 ATOM-15295 Remove Unnecessary Enable Material Properties
The only remaining unnecessary enable flag I found was for the parallax property group. It is removed, and now we just use the texture map and useTexture flag to gate whether the feature is enabled.
2021-05-27 09:58:58 -07:00
Chris Santora 014f715fd8 ATOM-14037 StandardPBR TintedTransparent Opacity
Copied tinted transparency opacity mode from EnhancedPBR to StandardPBR.
Fixed a bug in EnhancedPBR where Blended opacity didn't work right because the second DrawListOverride functor was stomping on the results of the first DrawListOverride. I removed these functors and made StandardPBR_HandleOpacityMode.lua set the draw list override instead.
2021-05-26 21:27:31 -07:00
Chris Santora 7e023c3676 ATOM-15133 "Clean Up EnhancedPBR"
Updated material type files for StandardPBR, EnhancedPBR, and Skin to align with each other as much as possible.
There were minor cases like some property settings were different, properties in different order, comments, and formatting.
There were major cases as well, like EnhancedPBR using clunky built in functors where lua functors would be better, property visibility state wasn't right, properties were missing, etc.

I also added a new HasShaderWithTag function for lua functors. This is used in StandardPBR_ShaderEnable.lua to allow this script to be used for both StandardPBR and EnhancedPBR (EnhancedPBR doesn't have the low end pipeline shaders).
2021-05-26 20:23:31 -07:00
Chris Santora 6f47f28051 Merge remote-tracking branch 'upstream/main' into Atom/santorac/MaterialTypeCleanup 2021-05-26 11:43:29 -07:00
Chris Santora a66345e7cb ATOM-13828 UV Transform Center Default Middle
Updated all UV transform property sets for Atom's core material types to have 0.5 as the transform center.
2021-05-26 11:42:25 -07:00
jiaweig 50085d0487 Merge pull request #823 from aws-lumberyard-dev/Atom/jiaweig/ATOM-15125_UV_Tangent
ATOM-15125 Support Reorder of Tangent Streams
2021-05-26 11:25:13 -07:00
Chris Santora 87ff564bad ATOM-14838 Make Parallax Look Decent By Default
Updated material types to have default parallax settings of POM, Low quality, 0.05 scale. That way the parallax effect will show up as soon as a user adds a heightmap.
Updated StandardMultilayerPBR_Displacement.lua to control the o_parallax_feature_enabled, so we can have the material's parallax.enable=true by default. Again this is to allow parallax behavior to show up as soon as the user adds a heightmap or adjusts the displacement offset. Note that even though we have a functor to drive the feature based on displacement settings, we still need the parallax.enable flag that that the user can set to false when they want to use displacement blending but not parallax.
Updated test materials to maintain their prior implied settings.
2021-05-25 13:15:10 -07:00
mriegger 7d0fc03674 Fixing spelling in lua files 2021-05-24 17:13:14 -07:00
Chris Santora e7617e36db Merge branch 'Atom/santorac/DepthBasedLayerBlending' into Atom/santorac/MaterialTypeCleanup 2021-05-24 16:44:23 -07:00
jiaweig 13893e77f3 merge main 2021-05-21 13:08:10 -07:00
jiaweig 9bad174f1c Remove unrelated files 2021-05-20 19:19:10 -07:00
jiaweig c3794ca96c Addressed review comments. 2021-05-20 19:11:31 -07:00
Chris Santora f6b9f0e0fb Reversed the debug view for displacement to show height instead of depth.
Also add a LerpInverse utility, though I ended up not using it with these changes, it should be handle elsewhere.
2021-05-20 17:02:26 -07:00
moudgils 8e24408959 Merge pull request #819 from aws-lumberyard-dev/DxcExperiment
Update Dxc to the latest + all the fixes related to it
2021-05-20 14:02:33 -07:00