Commit Graph

1006 Commits

Author SHA1 Message Date
Doug McDiarmid 045def6ce1 Merge branch 'main' into Atom/dmcdiar/ATOM-5034 2021-05-26 19:23:06 -07:00
Doug McDiarmid 17e9c17f31 Added Occlusion Culling Planes and RPI Culling support for Masked Occlusion Culling 2021-05-26 19:18:18 -07:00
Terry Michaels 9b1be43367 Renamed osx_gl to mac and es3 to android for cache folders (#949) 2021-05-26 19:17:17 -05: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
Chris Santora 88e1c84854 Merge pull request #863 from aws-lumberyard-dev/Atom/santorac/DepthBasedLayerBlending
ATOM-14676 Depth Based Layer Blending

- Added new blend source options that blends between layers based on which displaced height is higher. These options include Displacement, Displacement_With_BlendMaskTexture, and Displacement_With_BlendMaskVertexColors.
- Significantly refactored and updated the blend and displacement code in StandardMultilayerPBR_Common to support displacement-based blending.
- Added a new blend factor specifically for displacement-based blending that adjusts the transition between the layers independent of the displacement transition.
- Rearranged the per-layer parallax property groups because these are more general than just parallax. They can be used for displacement-based blending regardless of whether a parallax effect is being used.
  - Renamed "Parallax Mapping" to "Displacement" because these properties can be used for other things besides parallax, in particular the new displacement-based blend modes.
  - Removed the unnecessary per-layer "enable parallax" flags.
  - Made the "offset" property always available, so this can be used to adjust displacement for blending purposes even when there is no heightmap or parallax. (The "factor" property still only shows up with a heightmap because its only purpose is to scale the heightmap).
- Solidified a naming convention for how to talk about layer blending: 
  - "Blend mask" means the R and G channels that mask layers 2-3. These can come from multipls source, including a "blend mask texture" or "blend mask vertex colors".
  - "Blend weights" are the final RGB channels that are multiplied and added with layer properties to do the final blend.
  - "Blend source" is the combination of data that is used to produce the blend weights, which could be a combination of displacement maps, blend mask texture, vertex colors, or others in the future.
- Updated the list of available debug view modes, and moved them to the "blend" group because the only modes we have right now are related to layer blending. 
- Fixed a pre-existing bug where normals could be length 0.
- Added new cc0 textures from https://cc0textures.com/
- Added new materials for testing

New ASV test cases are here: https://github.com/aws-lumberyard/o3de-atom-sampleviewer/pull/67
2021-05-26 11:38:40 -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 4462b059a1 Merge branch 'main' into Atom/santorac/DepthBasedLayerBlending 2021-05-26 09:45:17 -07:00
greerdv 1c7d5e5615 Merge branch 'main' into transform-float-scale-continued 2021-05-26 10:27:18 +01:00
Doug McDiarmid 9f8948556f Merge branch 'main' into Atom/dmcdiar/ATOM-15555 2021-05-26 00:03:31 -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
lumberyard-employee-dm 76fe7f3666 Merge branch 'main' of https://github.com/aws-lumberyard/o3de into ly-as-sdk/LYN-2948-phistere 2021-05-25 23:48:55 -05:00
Chris Santora 224c8417b7 Merge branch 'main' into Atom/santorac/DepthBasedLayerBlending 2021-05-25 19:43:45 -07:00
greerdv bdf9ac31fb update to use uniform scale calls to Transform 2021-05-25 22:31:41 +01: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 14513af1fe Fix for lowend pipeline not having shadows (needed update call) 2021-05-25 08:48:18 -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
lumberyard-employee-dm 21285809bf Adding back gem.json files to the Atom and AtomLyIntegration folders
which are to be seen as sub gem roots as a workaround for detecting the
location of the "gem" root for the Atom/AtomLyIntegration GEM_MODULE targets

Removed the logic in the SettingsRegistry.cmake for reading a
"gem_module_roots" key from the gem.json file in order to determine the
root of the Atom and Atom LyIntegration sub gem modules
2021-05-24 13:02:23 -05:00
Doug McDiarmid c29c1825cb Added RayTracingPass and RayTracingPassData 2021-05-24 01:19:37 -07:00
antonmic 0b9e98c50e Fix for potential lighting pass crash with uninitialized pipeline 2021-05-22 00:27:06 -07:00
antonmic 6388277cd1 Fixed ImGui Pass as well as how exposure pass enables itself 2021-05-21 21:20:08 -07:00
dmcdiar fcdd79eff1 Fixed include file name for Linux build. 2021-05-21 20:22:52 -07:00
dmcdiar 45ab467274 Merge branch 'main' into Atom/dmcdiar/ATOM-5034
# Conflicts:
#	Gems/Atom/Feature/Common/Code/Source/DiffuseProbeGrid/DiffuseProbeGridRayTracingPass.cpp
2021-05-21 18:22:59 -07:00
jiaweig 13893e77f3 merge main 2021-05-21 13:08:10 -07:00
dmcdiar d6e25bbb33 Added DiffuseProbeGrid texture baking 2021-05-21 03:26:29 -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
Chris Santora ccfb8a7516 Merge branch 'main' into Atom/santorac/DepthBasedLayerBlending 2021-05-20 12:16:06 -07:00
Chris Santora 4086edc3f7 Moved the debug view mode setting to the "blend" group because the only modes we have right now are related to layer blending. 2021-05-20 12:14:33 -07:00
Chris Santora 599877a7e1 Updated atom_feature_common_asset_files.cmake to reflect recent lua functor file changes. 2021-05-20 12:13:52 -07:00
Chris Santora 6deae83906 Merge pull request #736 from aws-lumberyard-dev/Atom/santorac/NewLayeringWorkflow
Updated StandardMultilayerPBR To Use New Layering Model

ATOM-15518 "Change Multilayer PBR To Use Lerp Base Blending"
ATOM-14688 "Disable Individual Layers"
ATOM-14793 "Fix Inconsistent Casing For LuaMaterialFunctorRuntimeContext"
ATOM-4120 "Stabilize Standard PBR Regarding Subsurface and Translucency" (partial)

Changed to lerp-based blending, with an implicit base layer.
Refactored the shader code to collate all the code for each layer into a couple structs and utility functions. This makes the code easier to maintain, and in particular will make it easy for me to add Enable flags for the layers in a subsequent commit.
Added support for disabling individual layers, so you can easily make a 2-layer material instead of a 3-layer material.
Added support to the material system and MaterialEditor for hiding entire property groups. This is used to hide the disabled layers.
Added and updated test data to reflect the new blend model.
Removed subsurface scattering and translucency from StandardMultilayerPBR.
Note to reviewers: There are a lot of changes here, but they are broken down into separate commits. I recommend going through each commit individually rather than doing one comprehensive review.

ASV changes are here: aws-lumberyard/o3de-atom-sampleviewer#55
2021-05-20 12:06:11 -07:00
moudgils 5a149a4594 Merge branch 'main' into DxcExperiment 2021-05-20 11:56:35 -07:00
AMZN-stankowi c47c45724a LYN-3772 : For non-PBR materials, apply the diffuse color to the base color field on the Atom material, so a color value set in the DCC tool still comes through. (#733) 2021-05-20 11:28:34 -07:00
Chris Santora a14b035627 Merge branch 'Atom/santorac/NewLayeringWorkflow' into Atom/santorac/DepthBasedLayerBlending 2021-05-20 10:28:33 -07:00
Chris Santora 8799d1ab54 Merge branch 'main' into Atom/santorac/NewLayeringWorkflow 2021-05-20 09:07:08 -07:00
moudgils 94a8c8258b Bumped shader builders 2021-05-19 19:22:35 -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
moudgils e265990a0c Set DisableOptimizations to false. 2021-05-19 16:18:11 -07:00
mnaumov e510446185 PR feedback 2021-05-19 16:18:02 -07:00
mnaumov 19664dccd2 Merge main 2021-05-19 16:10:44 -07:00
mnaumov 58eea979cf AR build fix 2021-05-19 13:24:04 -07:00
mnaumov 9fc01ea24d AR fixes 2021-05-19 11:51:42 -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
jiaweig 775b7d048b Add support for tangent stream pairing with the first UV from the model. 2021-05-19 00:36:24 -07:00
mnaumov 06784a8026 cleanup 2021-05-18 22:50:13 -07:00
mnaumov 44601b7a38 Some refactoring 2021-05-18 22:45:43 -07:00