Commit Graph

167 Commits

Author SHA1 Message Date
Jeremy Ong 5f914e8e1a Add README to describe upcoming material type changes
Signed-off-by: Jeremy Ong <jcong@amazon.com>
2022-02-08 14:55:50 -07:00
Jeremy Ong faa65bca1b Refactor shader definitions to be more consistent with other shaders
Signed-off-by: Jeremy Ong <jcong@amazon.com>
2022-02-08 14:55:48 -07:00
Jeremy Ong 86d8ececfb Resolve incorrect SHADOWS definitions
Signed-off-by: Jeremy Ong <jcong@amazon.com>
2022-02-08 14:55:46 -07:00
Jeremy Ong 9ed9bcbb2f Fix incorrect include header casing
Signed-off-by: Jeremy Ong <jcong@amazon.com>
2022-02-08 14:55:44 -07:00
Jeremy Ong 4bcc83e7ac Address PR feedback, ensure all ASV tests pass
Signed-off-by: Jeremy Ong <jcong@amazon.com>
2022-02-08 14:55:42 -07:00
Jeremy Ong 7aace39c2f Consolidate alpha retrieval and clip
Signed-off-by: Jeremy Ong <jcong@amazon.com>
2022-02-08 14:55:41 -07:00
Jeremy Ong 61f915366a Shader refactor (no functional changes)
The purpose of this shader refactor is to split various material type
shaders into disparate pieces:

1. The original material type shaders now include an external file with
   the actual shader entry points and structure of the algorithm (e.g.
   depth pass, shadow pass, forward pass) but continue to specify the
   SRGs used
2. Common functionality used across multiple shaders was consolidated
   into routines implemented in the MaterialFunctions folder
   (Materials/Types/MaterialFunctions)
3. The implementation shaders rely on common routines to be
   included/imported prior to inclusion, and by design, make no
   references to any Draw, Object, or Material SRG.

This refactor only includes the Standard and Enhanced material types,
and is, for the most part, a non-functional change. However, the Surface
definition needed to be augmented to include information needed by
lighting later. Modifying the Surface structure enables the lighting
loops to avoid any references to the Material SRG. This completes the
decoupling needed to support future Material canvas work, as well as a
future Material pipeline abstraction (where by the implementation
shaders can be injected by the user, customized per platform, and in
general, are simply decoupled from the materials themselves).

Signed-off-by: Jeremy Ong <jcong@amazon.com>
2022-02-08 14:55:39 -07:00
Santi Paprika 6e21d63943 Merge remote-tracking branch 'upstream/development' into thin-transmission
Signed-off-by: Santi Paprika <santi.gonzalez.cs@gmail.com>
2022-02-04 12:36:31 +01:00
Santi Paprika 024933d4a1 Improve descriptions and comments (https://github.com/o3de/o3de/pull/6428#discussion_r799207891, https://github.com/o3de/o3de/pull/6428#discussion_r799213620)
Signed-off-by: Santi Paprika <santi.gonzalez.cs@gmail.com>
2022-02-04 12:15:45 +01:00
Tommy Walton 837d4fde3e Create a debug material type for displaying per-vertex data (#7220)
* Create a debug material type for displaying per-vertex data

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

* PR feedback. Added color display mode, multiple uv-set support, split tangent/bitangent options into two separate enums, and added a functor for showing only the applicable properties in the UI depending on which vertex stream and uv set are selected.

Signed-off-by: Tommy Walton <waltont@amazon.com>
2022-02-03 11:00:52 -08:00
Santi Paprika 9c60bd008c Enable human skin profile via preprocessor define (https://github.com/o3de/o3de/pull/6428#discussion_r797699927)
Signed-off-by: Santi Paprika <santi.gonzalez.cs@gmail.com>
2022-02-02 18:47:11 +01:00
Santi Paprika 1c47d719c8 Merge remote-tracking branch 'upstream/development' into thin-transmission 2022-02-02 16:15:00 +01:00
antonmic 7534193234 merging dev for good luck after failed AR
Signed-off-by: antonmic <56370189+antonmic@users.noreply.github.com>
2022-02-01 22:50:38 -08:00
santorac 8042a6e97a Merge branch 'development' into Atom/santorac/RemixableMaterialTypes3_UpdatedStandardPbr
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
2022-02-01 16:39:20 -08:00
antonmic 5b9bc3b479 address PR feedback
Signed-off-by: antonmic <56370189+antonmic@users.noreply.github.com>
2022-02-01 16:08:10 -08:00
antonmic 9f0b6d65f4 merging latest dev
Signed-off-by: antonmic <56370189+antonmic@users.noreply.github.com>
2022-01-29 22:29:02 -08:00
santorac e173840bab Moved the StandardPbr property groups around to be in their original order.
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
2022-01-28 09:40:33 -08:00
santorac c3363fc22e Updating StandardPbr.materialtype to follow the new file format. In this commit all I did was combine the "groups" metadata together with the property lists. The groups will now show up in the wrong order in the Material Editor, because that was based on the "groups" list that no longer exists. I wanted to keep the giant list of properties in the same order for an easier diff review. In the next commit, I'll move the property groups around to be in the same order as before.
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
2022-01-28 09:36:09 -08:00
mrieggeramzn 50982b8283 Exposing / Unifying the rasterstate depth bias values for all the shadowmap shaders (#7150)
Signed-off-by: mrieggeramzn <mriegger@amazon.com>
2022-01-26 16:04:12 -08:00
santorac f87d0f8386 Updated all .material files to have materialTypeVersion instead of propertyLayoutVersion. This was renamed in code at some point but we forgot to rename in the files. Before this was silently ignored but since I removed MaterialSourceDataSerializer, this started being reported as a warning.
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
2022-01-18 19:02:36 -08:00
moudgils 284ae60139 Add missing 'precise' keyword for Vertex shaders (#6902)
Signed-off-by: moudgils <47460854+moudgils@users.noreply.github.com>
2022-01-14 10:34:57 -08:00
santorac a690c76ad4 Fixed depth clipping artifacts for parallax PDO. (#6837)
The "precise" keyword was recently added to several shader inputs, but one was missed. This led to inconsistency between the depth and forward passes which resulted in artifacts when parallax pixel depth offset was in use. See https://github.com/o3de/o3de/pull/6536

Testing: I used AtomSampleViewer to make a local baseline of all screenshots in _fulltestsuite_.bv.lua. The only change was to the parallax test cases, which were a clear improvement.

Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
2022-01-12 08:54:22 -08:00
Santi Paprika d0bb222ce6 Refactor thin transmission factor variable packing and visibility + use thickness to modulate transmission distance
Signed-off-by: Santi Paprika <santi.gonzalez.cs@gmail.com>
2022-01-10 18:19:39 +01:00
Santi Paprika ed7c6198e1 Merge remote-tracking branch 'upstream/development' into thin-transmission 2022-01-05 10:50:42 +01:00
Santi Paprika 0bae6d062f Remove pows and sqrts from attenuation computation + readjust attenuation parameter bounds (https://github.com/o3de/o3de/pull/6428#discussion_r776071926, https://github.com/o3de/o3de/pull/6428#discussion_r776066792)
Signed-off-by: Santi Paprika <santi.gonzalez.cs@gmail.com>
2022-01-04 14:58:49 +01:00
Santi Paprika 46abff3093 Rename 'angleOffset' to 'transmissionNdLBias' (https://github.com/o3de/o3de/pull/6428#discussion_r774253626)
Signed-off-by: Santi Paprika <santi.gonzalez.cs@gmail.com>
2021-12-23 20:29:42 +01:00
Santi Paprika 2d45ecb616 Fix nits (https://github.com/o3de/o3de/pull/6428#discussion_r774251316 , https://github.com/o3de/o3de/pull/6428#discussion_r774252019)
Signed-off-by: Santi Paprika <santi.gonzalez.cs@gmail.com>
2021-12-23 11:33:36 +01:00
rgba16f 67689d48cc Add precise keyword to the depth and forward pass shaders. (#6536)
* Add precise keyword to the depth and forward pass shaders. Make sure metal shader pipeline passes the invariant along

Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com>

* Update with VickyAtAZ's feedback, split the preserve invariance into a separate string

Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com>

* Fix attribute comment alignment in the shaders

Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com>
2021-12-22 11:29:48 -06:00
tjmgd 7cce6dde41 Hide the invalid parameters in the EnhancedPBR in the Material Editor (#6298)
* Hide the invalid parameters in the EnhancedPBR in the Material Editor

Signed-off-by: T.J. McGrath-Daly <tj.mcgrath.daly@huawei.com>

* Fixed headers

Signed-off-by: T.J. McGrath-Daly <tj.mcgrath.daly@huawei.com>
2021-12-20 14:09:00 -06:00
antonmic a839a8f761 added defines in the shaders to turn off clear coat, transmission and area light types. Allows for thiner surface data and more control over features when authoring bespoke material shaders
Signed-off-by: antonmic <56370189+antonmic@users.noreply.github.com>
2021-12-16 01:13:12 -08:00
antonmic a436ea7f9b BasePbr working
Signed-off-by: antonmic <56370189+antonmic@users.noreply.github.com>
2021-12-15 22:30:37 -08:00
Santi Paprika 90bf2520be Add and expose distance attenuation to compensate low-res shadow maps
Signed-off-by: Santi Paprika <santi.gonzalez.cs@gmail.com>
2021-12-15 17:40:10 +01:00
Santi Paprika 78aa73e3fd Remove thickness + refactor scale parameter influence
Signed-off-by: Santi Paprika <santi.gonzalez.cs@gmail.com>
2021-12-15 17:40:07 +01:00
Santi Paprika 6172bb0034 Add EnhancedPBR support for thin object transmission
Signed-off-by: Santi Paprika <santi.gonzalez.cs@gmail.com>
2021-12-15 17:39:52 +01:00
Santi Paprika 97c36a71a2 Move directional shadow coordinates computation to PS + Fix clamp values
Signed-off-by: Santi Paprika <santi.gonzalez.cs@gmail.com>
2021-12-15 17:39:41 +01:00
Santi Paprika 348c3cc0f6 Expose angle offset below (N.L)
Signed-off-by: Santi Paprika <santi.gonzalez.cs@gmail.com>
2021-12-15 17:39:34 +01:00
Santi Paprika 1417488a2b Increase scale range + expose shrink factor
Signed-off-by: Santi Paprika <santi.gonzalez.cs@gmail.com>
2021-12-15 17:39:25 +01:00
Santi Paprika 9825d6aba3 Thin transmission mode fix for directional lights
Signed-off-by: Santi Paprika <santi.gonzalez.cs@gmail.com>
2021-12-15 17:39:21 +01:00
antonmic fbd7b67e11 added some explicit use of float3
Signed-off-by: antonmic <56370189+antonmic@users.noreply.github.com>
2021-12-14 15:57:23 -08:00
antonmic 4522968c0b merging latest dev
Signed-off-by: antonmic <56370189+antonmic@users.noreply.github.com>
2021-12-13 12:55:38 -08:00
antonmic 8fa99c47db Work in progress, current shader compilation error
Signed-off-by: antonmic <56370189+antonmic@users.noreply.github.com>
2021-12-13 12:51:34 -08:00
antonmic 8511f61fd3 duplicating standardPBR files for BasePBR
Signed-off-by: antonmic <56370189+antonmic@users.noreply.github.com>
2021-12-13 12:08:00 -08:00
benblack75 9698047340 Modified Color Swatch Fix (#6137)
* Modified Color Swatch Fix

Signed-off-by: Benjamin Black <benblac@amazon.com>

* Updating Macbeth Colors to work with new material formatting

Signed-off-by: Benjamin Black <benblac@amazon.com>

* Tweaks to red color values

Signed-off-by: Benjamin Black <benblac@amazon.com>

* Tweaked red swatch color values provided by Ken

Signed-off-by: Benjamin Black <benblac@amazon.com>
2021-12-06 16:18:32 -08:00
SWMasterson 0116f0a520 Adding Macbeth level to AutomatedTesting and converting to Prefab (#6060)
* Adding macbeth level to AutomatedTesting

Signed-off-by: Sean Masterson <semaster@amazon.com>

* removing unnecessary files

Signed-off-by: Sean Masterson <semaster@amazon.com>
2021-12-02 08:26:56 -08:00
galibzon 621194e593 StandardMultilayerPBR_ForwardPass.azsl. the type of input.m_normal is (#5385)
float

Github issue: https://github.com/o3de/o3de/issues/2522

Change to float3. The current ASV tests are not affected but
using the RPI/Mesh example with Mesh: objects/suzanne.azmodel
and the material:
StandardMultilayerPbrTestCases/005_UseDisplacement.material

Showed a clear improvement.

Signed-off-by: galibzon <66021303+galibzon@users.noreply.github.com>
2021-11-06 07:25:42 -05:00
Adi Bar-Lev bd6153f471 Material - enbale/disable metallic scale according to texture selection
Remark: resolves GitHub issue https://github.com/o3de/o3de/issues/2647 - ATOM-15614

Signed-off-by: Adi Bar-Lev <82479970+Adi-Amazon@users.noreply.github.com>
2021-10-28 13:24:49 -04:00
santorac 8fd3461863 Removed reference to opacity.doubleSided property that no longer exists.
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
2021-10-26 15:38:09 -07:00
santorac 59da09c68b Now that we have material version auto update support, I remove the old opacity.doubleSided property and added a rename versionUpdate step to rename it to general.doubleSided.
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
2021-10-25 13:35:00 -07:00
santorac c05b900b55 Merge branch 'development' into Atom/santorac/MoveDoubleSided 2021-10-25 09:45:39 -07:00
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