Commit Graph

200 Commits

Author SHA1 Message Date
yuriy0 ccd4cc65a5 Use SampleLevel instead of Sample to sample shadow maps. (#1370)
* Use SampleLevel instead of Sample to sample shadow maps.

This allows shadow code to be used from computer shaders which don't allow Sample. Shadow maps don't have LODs anyways

* Fix some very silly typos
2021-07-16 12:26:09 -05:00
Chris Galvan e924ed0b86 Merged stabilization/2106 to development; Resolved merge conflicts
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
2021-07-12 10:45:23 -05:00
mrieggeramzn b187407e65 fix for lightculling / pdo artifacts (#2033)
Signed-off-by: mrieggeramzn <mriegger@amazon.com>
2021-07-09 13:56:13 -07:00
Chris Galvan 3b1873b045 Merged stabilization/2106 -> development (resolved merge conflicts).
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
2021-07-08 13:56:47 -05:00
Ken Pruiksma 5e98eefcc2 Undoing change from review feedback as it led to an incorrect result in some cases.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
2021-07-07 17:13:43 -05:00
Ken Pruiksma 4c12e9c5ab Refactoring the LTC quad and polygon lights (#1881)
* Refactoring the LTC quad and polygon lights to clip the light to the normal hemisphere before applying the LTC matrix. This prevents specular light leaking from behind the surface. Diffuse and specular contribution are now calculated at the same time to avoid clipping the polygon twice. Added a cheaper diffuse integration function that's accurate enough for diffuse. Also added a commented out alternate specular integration for platforms with poor acos() accuracy.

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>

* PR review feedback - typo and some saturate() protection

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>

* Making branch more explicit from review feedback.

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
2021-07-07 16:37:49 -04:00
hultonha 2ea9bfb144 merge stabilization/2106 into development
Signed-off-by: hultonha <hultonha@amazon.co.uk>
2021-07-06 17:34:04 +01:00
Chris Galvan 40f9761f86 Fixed more copyright header issues caused by script replacement
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
2021-07-02 16:21:26 -05:00
Chris Galvan b9e06e70d9 Fixed copyright header issues per new validator
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
2021-07-02 15:34:04 -05:00
mrieggeramzn 1d95a4a2ba Merge pull request #1724 from aws-lumberyard-dev/Atom/mriegger/esm16F
Switch directional light to use the same reformulation as projected s…
2021-07-02 11:26:04 -07:00
Chris Galvan d7574777a8 Resolved merge conflicts
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
2021-07-02 12:42:44 -05:00
Anton Michels 9f904e08e7 Merge pull request #1753 from aws-lumberyard-dev/2016/antonmic/diffuse
[ATOM-15864] Added diffuseResponse to lambertian diffuse calculation
2021-07-02 02:44:00 -07:00
antonmic 097f99dcc6 [ATOM-15864] Added diffuseResponse to lambertian diffuse calculation 2021-07-01 21:14:04 -07:00
mriegger 346e294f60 Switch directional light to use the same reformulation as projected shadow and reduce to 16 bit float RT for perf 2021-07-01 09:02:02 -07: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
Gene Walters f905b71844 Adding missing o3de copyright headers
Signed-off-by: Gene Walters <genewalt@amazon.com>
2021-06-29 13:48:45 -07:00
Gene Walters 4e14c0069b Merge branch 'upstream/stabilization/2106' into genewalt/gitflow_210628 2021-06-28 19:09:20 -07: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
dmcdiarmid-ly 909ad9392e Merge pull request #1536 from aws-lumberyard-dev/Atom/dmcdiar/LYN-4660
[LYN-4660] Assigning test asset from AutomatedTest crashes in Atom
2021-06-23 19:34:24 -07:00
Doug McDiarmid 95582453d4 Added comments and updated optional stream buffer bitmasks 2021-06-23 18:46:04 -07:00
Ken Pruiksma f0c1420f49 Fixing backlighting for disk lights and some nearby comments. (#1526) 2021-06-23 17:43:19 -05:00
Doug McDiarmid 22ab33a3f4 Updated DiffuseProbeGrid raytracing precompiled shaders 2021-06-23 15:35:55 -07:00
Doug McDiarmid 55e5dfc059 Merge branch 'stabilization/2106' into Atom/dmcdiar/LYN-4660 2021-06-23 13:44:01 -07:00
Steve Pham 70042fcdcd O3DE Copyright Updates for Linux Foundation (#1504) 2021-06-23 10:55:22 -07:00
Doug McDiarmid 97f4d8e845 Fixed tangent and bitangent interpolation in RayTracingSceneUtils.azsli. 2021-06-23 01:40:39 -07:00
Doug McDiarmid c3c69fedd6 Changed the Tangent and BItangent streams to be optional when setting up ray tracing data for a mesh. 2021-06-23 01:17:16 -07:00
mriegger 6557a14e36 small fix for debug cascades not working with bicubic 2021-06-22 16:12:38 -07:00
nvsickle e55580af57 Merge remote-tracking branch 'upstream/stabilization/2106' into nvsickle/MergeStabilizationJun18 2021-06-18 13:25:53 -07:00
lumberyard-employee-dm 7dabe8b6e9 Updated Several Engine Gem's CMakeLists.txt to add themselves as required Gems (#1262)
* Fixed organization of the AssetProcessor SourceAssetBrowser

Assets within the Engine Root were grouped under a '/' entry.
That has been fixed to use the relative path within the engine root for
those assets
Assets outside of the Engine Root, but on the same drive were using
absolute paths before. Now there are child entries that navigate up the
directory hierarchy to those asset locations

* Added ly_enable_gems call to Atom gems targets that are required

The DefaultLevel.prefab contains several Atom components, that require
the Atom RHI, RPI, Common_Feature, ShaderBuilder and AtomLyIntegration CommonFeatures
gems to be enabled in order to successfully process in the
AssetProcessor.

* Added ly_enable_gems call to make the Camera gem required in Tools,
Builders and Clients.

This is needed as the DefaultLevel.prefab contains an Editor Camera
Component

* Adding the ly_enable_gem call to make the Maestro gem required

CrySystem currently requires Maestro to be enabled in order to
initialize

* Added ly_enable_gems call to the SceneProcessing gem to make it required

The SceneCore and SceneData libraries that are part of the core engine
Code folder requires the SceneProcessing gem to be enabled in order to
invoke the InitializeDynamicModule hooks in DllMain.cpp in order to
initialize those libraries.

* Fixed bad argument in comment for Prefab CMakeLists.txt

* Fixed Assert in Asset Builders due to the Atom RPI Builder

The Atom RPI Builder was enabling the Asset Catalog for the ScriptAsset a second time

The Atom Feature Common EditorSystemCommonComponent.cpp which also loads
in the AssetBuilder is enabling the Asset Catalog for the ScriptAsset

Added BehaviorContext reflection to the OutputDeviceTransformType enum
to fix the BehaviorContext errors about reflecting a method that returns
such an enum

* Added TypeId output to the JsonDeserializer report message about missing
ClassData

Previously the report callback would indicate that the target type was
missing Serialization class data, but didn't indicate the TypeId of the
target type

* Added support to the ly_enable_gems function to be able to support
0 gems being enabled.

Updated the Install step for CMake to propagate any ly_enable_gems
within a CMakeLists.txt for a target into the generated CMakeLists.txt
that is made for each installed IMPORTED target

* Adding newline to the end of the Camera Gem CMakeLists.txt

* Fixing target TYPE parameter for actual Gem Modules to use the GEM_MODULE tag instead of MODULE

* Reverting change to the DESTINATION directory for the installed CMakeLists.txt to use the relative path to the installed directory

* Adding the Atom_Bootstrap gem as a required gem

The Client and GameLaunchers required the Atom_Bootstrap gem in order to create the NativeWindow
Added Atom_Feature_Common client module as a runtime dependency of the AtomLyIntegration CommonsFeature client module

* Fixed register.py --all-projects-path and --all-gems-path arguments to
NOT register projects or gems that are within a template folder
Fixed reading of old pre-1.0 o3de_manifest.json files where the
"engines" key was a json array

* Changed how the relative target source directory is calculated when that source directroy resides outside of the engine root.
The final dirname component is used with a unique SHA256 has to form a <dirname>-<8 char SHA256> folder for installing files into

* Adding newline to the end of Atom_Bootstrap CMakeLists.txt

* Moving ly_enable_gems variants for Tools and Builders inside of PAL_TRAIT_BUILD_HOST_TOOLS block

* Adding a comment to AWSCore.ResourceMappingTool target to indicate that it is not a GEM_MODULE.
Furthermore it cannot be loaded with the Gem system because the library is in a different directory the executable
2021-06-17 13:58:20 -05:00
mriegger 709bca5849 Adding code that prevents nans occuring due to precision issues 2021-06-16 20:15:08 -07:00
mrieggeramzn a505ed8a51 Merge pull request #1302 from aws-lumberyard-dev/Atom/mriegger/esmexponent2106
Atom/mriegger/esmexponent2106
2021-06-16 10:47:26 -07:00
mriegger 959ec14df6 Exposing esm exponent 2021-06-13 23:07:10 -07:00
mriegger 95e21bf2af Fixing boundary search 2021-06-13 15:29:27 -07:00
galibzon cc615a8f32 [ATOM-15472] Shader Build Pipeline: Remove Deprecated Files And Funct… (#1079)
* [ATOM-15472] Shader Build Pipeline: Remove Deprecated Files And Functions That
Predate The Shader Supervariants

These are the essential impactful changes as a result of deprecating the
ShaderResourceGroupAsset.

* Addressed feedback by @moudgils. Better comments in header files.

* More updates related with deprecation of ShaderResourceGroupAsset

* Deleted the temporary version 2 classes.

* Updated version of the shader asset builders.

* Updated version of all the shader related classes impacted
by the Supervariant concept and deprecation of ShaderResourceGroupAsset

* Changes to *.pass and DGI, Reflections and RayTracing.

* changes to material related assets

* changes to core lights

* Changes to auxgeom/dynamic draw.

* changes to decals, lyshine, imguipass

* changes to RPI Pass classes

* Shader for SceneSrg, ViewSrg and ForwardPass Srgs.

* changes to mesh, skinned mesh, Morphtarget.

* Fixes to RayTracingPass.cpp & now allow empty srg in shaders.

* Updated Atom_RPI.Tests

* Simplified InstanceDatabase by removing AddHandler

------------------------------------------------------------------------------------
* Updated DiffuseGI precompiled shaders.
Added RayTracingSceneSrg and RayTracingMaterialSrg shader asset.
Updated ShaderAssetCreator::Clone to handle the supervariant when processing root variants.
Co-authored-by: Doug McDiarmid <dmcdiar@amazon.com>
------------------------------------------------------------------------------------

* Changed semantics for some PassSrg to SRG_PerPass_WithFallback.

AuxGeom/FixedShapeProcessor.cpp requires SRG_PerDraw on ObjectSrg.

Removed names of SceneSrg and ViewSrg from RPISystemDescriptor.cpp

* Moved ShaderLib/Atom/Features/DummyEntryFunctions.azsli
To  Gems/Atom/RPI/Assets/ShaderLib/Atom/RPI/DummyEntryFunctions.azsli

Removed redundant checking for finalization in
ShaderResourceGroupLayout.cpp

* Fixed race condition bug for Shader::FindOrCreate.
InstanceDatabase<>::CreateInstance() needs to be atomic
for instance creation and initialization.

Added optional InstanceHandler::CreateFunctionWithParams to accomodate
to the needs of Instances that need more than an asset reference
to be able to be created an initialzed.

Removed ShaderResourceGroup::FindOrCreate() only ::Create is available
now.

* Renamed scene_and_view_srgs.* as SceneAndViewSrgs.*

Changed GetAzslFileOfOrigin for GetUniqueId

* Fixed unit tests.

* Reverted the serialization name of m_uniqueId back to
"m_azslFileOfOrigin" so precompiled shaders don't fail
in layout comparison.

* Fixed AtomCore.Tests
Removed non-applicable test. InstanceDatabase.AddHandler() is not
available anymore.

* The Null rhi is re-enabled for shader compilation.

Signed-off-by: garrieta <garrieta@amazon.com>
2021-06-11 07:48:23 -05: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
Chris Santora 9e5c6f6851 Merge remote-tracking branch 'upstream/main' into Atom/santorac/RemoveSubsurfaceFromStandard-PBR-ATOM-4120 2021-05-28 16:56:22 -07:00
dmcdiarmid-ly b20f3bc72f Merge pull request #946 from aws-lumberyard-dev/Atom/dmcdiar/ATOM-15555
[ATOM-15555] Data-Driven RayTracingPass
2021-05-28 16:38:00 -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 da5a77925a Merge branch 'main' into Atom/santorac/MaterialLayoutCleanup-ATOM-14002 2021-05-28 11:02:46 -07:00
Chris Santora 34f0515e35 Merge branch 'main' into Atom/santorac/RemoveParallaxInvertFlag-ATOM-15653 2021-05-28 10:33:00 -07:00
Qing Tao c630ece43a Add m_linearDepthTexture as input for transparent pass.
This is required by popcornfx and it doesn't add extra cost to the render pipeline.
2021-05-28 09:42:11 -07:00
Doug McDiarmid fdc57cdaff Added TLAS dependency 2021-05-28 00:08:13 -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
Doug McDiarmid 40435fcb2e Added RayTracingMaterialSrg.
Added UV buffer to the RayTracingSceneSrg mesh buffers.
Added RayTracingSceneUtils and RayTracingMaterialUtils shader includes.
2021-05-25 23:52:19 -07:00
Chris Santora 8799d1ab54 Merge branch 'main' into Atom/santorac/NewLayeringWorkflow 2021-05-20 09:07:08 -07:00
Chris Santora bcf21e0930 Removed unused InitializeZero function from StandardSurface 2021-05-19 17:43:24 -07:00
Chris Santora f3099aa7d5 Merge remote-tracking branch 'origin/main' into Atom/santorac/NewLayeringWorkflow 2021-05-19 16:57:49 -07:00
Tommy Walton ded39be57e Merging WrinkleMask support from 1.0 to main (#680)
Added a loop to the skin shader that will sample from wrinkle masks, multiply them by a weight, combine them, and use them instead of vertex colors for wrinkle map blending

Added an array of masks, an array of weights, and a wrinkle mask count to the DefaultObjectSrg. -Will create a follow up task to handle this a better way.

Removed motion vector (for now) from skin.materialtype since we're not using them, and removed depthtransparent since skin doesn't support transparency

Added an interface to the MeshFeatureProcessor to get the object srg

Wrapped srg->Compile in if(srg->IsQueuedForCompile()) to prevent compiling twice --This doesn't stop a race condition if both happen at the same time, but that is at least far less likely. It will need a better solution later.

Added a function to the MorphTargetExporter that will check to see if a texture that matches the blend shape name exists in a particular folder, and adds a reference to that image to the MorphTargetMetaAsset --Only supports .tif, and doesn't automatically re-process the .fbx if the folder is updated. These can be improved in later iterations

Added a null check in MaterialTypeSourceData.cpp to fix a crash I ran into

Added a for loop in two places to look for the first submesh that has a morph target, instead of just using the first to check if a lod has morph targets or not. --I have a better fix for this, but it involves more areas of the code, so I'm saving that for another change.

Modified AtomActorInstance to look for any morph targets that have a wrinkle mask reference

Then each frame, for any morph targets with non-zero weights that also have wrinkle masks, it updates the mask array, weights, and count on the object srg.
2021-05-19 11:21:44 -07:00
antonmic a4e1b40e88 Merge branch 'main' into Atom/antonmic/lowEnd 2021-05-18 13:04:25 -07:00