Commit Graph

66 Commits

Author SHA1 Message Date
Qing Tao 9ccb65aac4 ATOM-15859 AuxGeom rendering in editor is too expensive (#1582)
* ATOM-15859 AuxGeom rendering in editor is too expensive
- The OrphanBuffer calls is the main reason that AuxGeom FP render is slow.
- Switched to use DynamicBuffer for buffers used in DynamicPrimitiveProcessor
- Added some profiling marks.
- Removed DynamicPrimitiveProcessor per view which was added because of OrphanBuffer can only be called once per frame.
2021-06-25 11:45:07 -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
Tommy Walton be0fbaaddc LYN-2227 : Improve mesh initialization performance by not creating draw packet more than once (#1476)
* Move SetUseForwardPassIblSpecular to happen when acquiring a mesh, instead of immediately after so that we don't build the drawpacket twice for every mesh

* Update the MeshFeatureProcessor to use the booleans from the descriptor directly instead of having loose booleans in the MeshDataInstance

* m_excludeFromReflectionCubeMaps is not (and does not need to be) part of the descriptor, since setting is cheap and doesn't duplicate work that is done when acquiring the mesh
2021-06-22 12:59:27 -07:00
hershey5045 c127a044d4 Enable fog in physical sky component to blend with deferred fog (#1320) 2021-06-18 13:39:11 -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 f340189075 remove tabs 2021-06-13 23:12:47 -07:00
mriegger 959ec14df6 Exposing esm exponent 2021-06-13 23:07:10 -07:00
Doug McDiarmid 8459cbe5c2 Removed the DiffuseGlobalIllumination component from the editor Entity Component list, it was intended to be a Level Component only.
Checked for a valid quality level in DiffuseGlobalIlluminationFeatureProcessor::SetQualityLevel.
Initialized the quality level to Low in DiffuseGlobalIlluminationComponentConfig.
2021-06-12 01:18:24 -07:00
antonmic 702356007c Pass changes WIP: standardized usage of new pass initialization functions 2021-06-08 22:36:54 -07:00
antonmic 1e5a35ccfe Merge branch 'main' into Atom/antonmic/PassChanges 2021-06-04 17:49:20 -07:00
dmcdiarmid-ly d19d2aff9d Merge pull request #1110 from aws-lumberyard-dev/Atom/dmcdiar/ATOM-15517
[ATOM-15517] Software Occlusion Culling
2021-06-04 15:21:39 -07:00
dmcdiarmid-ly 579f4ca9d6 Merge pull request #1138 from aws-lumberyard-dev/Atom/dmcdiar/ATOM-15718
[ATOM-15718] DiffuseProbeGrid quality level
2021-06-04 15:14:47 -07:00
antonmic 0f90ccc0b4 initial changes compiling 2021-06-04 09:38:28 -07:00
Doug McDiarmid fefa46dd6a Added DiffuseGlobalIlluminationFeatureProcessor and moved the DiffuseProbeGrid files to the DiffuseGlobalIllumination directory 2021-06-04 02:39:25 -07:00
mnaumov 856204a5ea merge from main 2021-06-03 16:01:27 -07:00
Doug McDiarmid ef05412063 Merge branch 'main' into Atom/dmcdiar/ATOM-15517 2021-06-03 13:31:18 -07:00
Esteban Papp 5d7aae9bd8 SPEC-2513 Fixes to enable w4459 (#1107)
* fixing w4459

* Fixes for nounity

* putting OLD_APARAM_USER in a common place to avoid duplicated declarations
2021-06-03 11:12:54 -07:00
mnaumov 4f72e49ad4 Merge main 2021-06-02 13:40:33 -07:00
Doug McDiarmid 59ab6edaef Added occlusion culling plane visualization 2021-05-31 01:38:13 -07:00
mnaumov ab45ea7efa [ATOM-15631] First pass on exposing Display Mapper properties to Behavior Context 2021-05-28 17:15:20 -07:00
Doug McDiarmid 1b235e0b16 Merge branch 'main' into Atom/dmcdiar/ATOM-15517 2021-05-28 13:43:26 -07:00
Tom Hulton-Harrop 4205a69106 Allow ComponentAdapter (and related types) to work with EntityComponentIdPairs as well as EntityIds (#920)
* provide the ability for component adapters to support multiple components per entity

* add missing explicit keywords

* updates following review feedback - update how template logic works

* small updats (fix typo, remove redundant includes)

* add missing this->

* naming change, common -> controller

* add [[maybe_unused]]
2021-05-27 09:34:52 +01:00
Doug McDiarmid 74bdf2b069 Minor changes: Updated comments and removed an include file. 2021-05-26 20:25:48 -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
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
dmcdiar d6e25bbb33 Added DiffuseProbeGrid texture baking 2021-05-21 03:26:29 -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
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
mnaumov 06784a8026 cleanup 2021-05-18 22:50:13 -07:00
mnaumov 44601b7a38 Some refactoring 2021-05-18 22:45:43 -07:00
mnaumov db7afee383 Adding parameters to ACES tone mapping 2021-05-18 22:38:27 -07:00
Tommy Walton c10e37f2d6 Atom-15447 : Crash on null buffer with many morph targets
Fixed a crash by keeping a reference to the buffer instance after creating it and checking for null
2021-05-18 10:54:39 -07:00
guthadam 931a127b7b ATOM-15223 updating material assignment ID to be portable to other models
The bug was reported that copy and paste did not work with the material component.
Copy and paste to take the worked fine.
All of the material assignments/overrides get mapped using the LOD and asset ID of materials provided with the model.
The asset IDs of materials exported by atom builders, using the scene API, are the combination of the same UUID as the model asset ID and the unique sub ID that is now hashed from the material name provided by the DCC tool.
If we map material assignments using the entire asset ID that was generated in the model builder then the mapping will only work with that specific model.
This change updates the material assignment ID equality operators and hash function to only use the sub ID portion of the asset ID.
As long as the sub IDs are generated consistently the material assignment mappings will be portable to models with the same material names.

Also moved material assignment structures to atom common features static library so this was to be moved to cpp files
2021-05-12 13:47:47 -05:00
mrieggeramzn d7c72a249c Merge pull request #395 from aws-lumberyard-dev/Atom/mriegger/PLS
Atom/mriegger/pls
2021-05-10 17:13:39 -07:00
greerdv 578cd47a0a replacing virtual function with default parameter with overloaded function 2021-05-06 15:11:11 +01:00
greerdv 26ab8c8a25 merging from main 2021-05-05 19:07:04 +01:00
Michael Riegger c58089d35a Merge branch 'main' into Atom/mriegger/PLS 2021-05-04 15:57:20 -07:00
Michael Riegger a2d2a37220 Better commenting and readability fixes 2021-05-04 10:38:21 -07:00
dmcdiar 64f42ba1cb Removed the asset callback from the EditorReflectionProbeComponent, since the component may have been destroyed and recreated between the bake and the asset load.
Replaced with an OnTick handler that polls the ReflectionProbeFeatureProcessor to determine when the asset is ready.
2021-05-04 01:24:14 -07:00
greerdv d35adce246 adding support for non-uniform scale for decals 2021-04-29 11:46:08 +01:00
guthadam 6821ce41e5 ATOM-4849 Update default lighting preset values
This is an effort to produce a decent looking lighting preset and shadow with the default settings

https://jira.agscollab.com/browse/ATOM-4849
2021-04-28 21:33:34 -05:00
Michael Riegger ce2af6be15 Tabs to spaces 2021-04-28 11:53:27 -07:00
Michael Riegger 2eed8684b5 Adding full shadowmap support 2021-04-27 14:08:54 -07:00
Michael Riegger 569c831532 Working PLS 2021-04-26 14:53:31 -07:00
Michael Riegger f508c4a4b5 Initial pointlight shadow work 2021-04-24 00:28:43 -07:00
Chris Burel 28170ffe41 Add newlines to the end of all files 2021-04-23 09:43:40 -07:00
Benjamin Jillich 0fa00a117c [ATOM-14477] Add clone function to model and/or model asset (#135)
* Added clone methods for the buffer, model lod and model assets.
* Cloning works via the creators.
* Mesh handle/instance now knows about the model asset it originated from as well as the cloned model asset that we need for instancing until instancing works without the dependencies to the asset ids.
* MeshComponentRequestBus returns the original asset id and the model asset. If you need access to the clone, go by the model.
* Cloth component mesh now gettings its model asset from the model as it needs to work on the clone.
* Moved the requires cloning function from the mesh loader in the mesh feature processor to the mesh component controller.
* As we need the model asset to be loaded before we can check if it requires cloning or not, we couldn't pass in a bool from the controller but had to use a callback.
* Using asset hint instead of asset id for the model lod asset creator error.
* Storing a map of source buffer asset ids and the actual cloned buffer assets rather than just their ids.
* Using the buffer assets from the new map directly and removed the search process in the mesh loop where the asset views are created.
* Fixed the vegetation mocks.
* Using the actor's mesh asset when emitting the on model ready event for the mesh component notification bus.
* Mesh components notifications connection policy changed to adapt to cloned model asset.
* Handling empty meshes in model lod asset creator.
* Removed the requires cloning callback from the mesh feature processor and made it a parameter to the acquire mesh function
* Fixing mocks and unit tests
2021-04-23 18:33:00 +02:00