Commit Graph

55 Commits

Author SHA1 Message Date
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
jiaweig f64bd999e0 Move UvStreamTangentBitmask to new files. 2021-05-25 18:47:04 -07:00
antonmic 6388277cd1 Fixed ImGui Pass as well as how exposure pass enables itself 2021-05-21 21:20:08 -07:00
jiaweig 13893e77f3 merge main 2021-05-21 13:08:10 -07:00
jiaweig c3794ca96c Addressed review comments. 2021-05-20 19:11:31 -07:00
Chris Santora 8799d1ab54 Merge branch 'main' into Atom/santorac/NewLayeringWorkflow 2021-05-20 09:07:08 -07:00
galibzon 256df54575 [ATOM-15276] Shader Build Pipeline: Add Shader Supervariant System (#749)
* [ATOM-15276] Shader Build Pipeline: Add Shader Supervariant System.

Added ShaderAssetBuilder2 & ShaderVariantAssetBuilder2.

Added ShaderAsset2, ShaderVariantAsset2.

Eventually they will be the only builders. AzslBuilder &
SrgLayoutBuilder will be removed.
ShaderResourceGroupAsset will be removed. ShaderAssetBuilder &
ShaderVariantAssetBuilder will be replaced.

Signed-off-by: garrieta <garrieta@amazon.com>
2021-05-20 04:53:16 -05: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
jiaweig 775b7d048b Add support for tangent stream pairing with the first UV from the model. 2021-05-19 00:36:24 -07:00
antonmic a4e1b40e88 Merge branch 'main' into Atom/antonmic/lowEnd 2021-05-18 13:04:25 -07:00
Nicholas Van Sickle 46c0c35c26 Merge pull request #734 from aws-lumberyard-dev/nvsickle/DebugInfoDisplay
Restore debug rendering to the viewport
2021-05-14 15:20:05 -07:00
Vicky 1c575763c7 ATOM-4661 Improvement with pass templates registration from data (#735)
* ATOM-4661 Improvement with pass templates registration from data
- Update PassLibrary so it can load pass templates from more than one files and report duplicate pass templates.
- Added load templates events to pass system so the handlers from any gems can load their own pass templates.
- Added PassSystemInterface::OnReadyLoadTemplatesEvent::Handler in FeatureCommon gem's CommonSystemeComponet to load the PassTemplates.azasset in featureCommon gem.
- Misc: moved BindlessPrototypeSrg.asli from RPI to ASV project; fixed an assert issue when exit ASV
2021-05-14 13:45:26 -07:00
Chris Santora 70c8ef99ef Updates in response to code review, from gadams3.
Cleaned up code around MaterialFunctor's QueryMaterialPropertyMetadata and QueryMaterialPropertyGroupMetadata.
Removed unnecessary "groupHeader->setObjectName(...)"
Simplified code in MaterialInspector::OnDocumentPropertyGroupVisibilityChanged.
2021-05-13 09:39:01 -07:00
Chris Santora 37a1b77d50 Merge branch 'main' into Atom/santorac/NewLayeringWorkflow 2021-05-12 17:45:28 -07:00
Chris Santora 53188a12da Made StandardMultilayerPBR hide a layer's property groups when that layer is disabled.
ATOM-14688 Disable Individual Layers

- Added new SetMaterialPropertyGroupVisibility functions to the material functors.
- Updated the MaterialFunctor::EditorContext to include parameters for handling material property group metadata.
- Updated the material inspector(s) to apply the property group visiblity changes from the material functor, to hide or show the property groups.
- Moved some code from MaterialPropertyDescriptor.h/cpp to a new MaterialDynamicMetadata.h/cpp, since these aren't really related to the MaterialPropertyDescriptor code. It's more for material functors to use.
- Also fixed the casing for the "GetMaterialPropertyValue_Image" lua function, since I was already in this code (ATOM-14793 "Fix Inconsistent Casing For LuaMaterialFunctorRuntimeContext")

Tested in MaterialEditor and in in the main Editor's MaterialComponent property override inspector.
2021-05-12 17:06:57 -07:00
nvsickle 559798251d Merge remote-tracking branch 'upstream/main' into nvsickle/DebugInfoDisplay 2021-05-12 11:55:51 -07:00
nvsickle 3c5659668a Add AZ::RPI::ViewportContextRequests alias for the full interface 2021-05-11 12:19:56 -07:00
dmcdiarmid-ly a0cb4714c0 Merge pull request #659 from aws-lumberyard-dev/Atom/dmcdiar/ATOM-15511
[ATOM-15511] Change AtomSampleViewer BindlessPrototype sample to use an unbounded array
2021-05-11 11:58:31 -07:00
antonmic 8e4d0d73dc Good working state, but material always emmits low end draw item 2021-05-11 01:29:53 -07:00
Vicky 01b2798fe1 Integrate from 1.0 to main: LYN-3436 AutomatedTesting.GameLauncher crashes at launch if assets are not all processed (#612)
* Atom/qingtao/lyn 3436 (#558)

* LYN-3436 AutomatedTesting.GameLauncher crashes at launch if assets are not all processed

Change RPISystem so that the application would exit if the RPI system couldn't load critical assets.
Added code to avoid the GetLayout crash when layout for each platforms were not ready.
Added LoadCriticalAsset function to force compile and load critical assets.
Added default value to viewport size for ViewportContext.

* Change RPISystem asset initialization order so it returns earlier when those critical assets are not ready
2021-05-10 16:46:25 -07:00
nvsickle dca2294b36 Move GetCameraTransform into RPI::View. 2021-05-10 15:08:47 -07:00
dmcdiar 1e860e7c82 Change BindlessPrototype to use an unbounded array 2021-05-08 19:56:40 -07:00
jonbeer 8947abcbb7 PR fixes and recommendations 2021-05-06 16:35:01 -07:00
jonbeer 3751493862 Fixing ATOM RPI issue with new serialization changes 2021-05-06 14:44:19 -07:00
Vicky 1681e97a0c ATOM-15369 LYN-3352 Expose sorting paramers to DynamicDrawContext's draw functions (#451) (#463)
* ATOM-15369 Expose sorting paramers to DynamicDrawContext's draw functions
 LYN-3352 LyShine: First element in Hierarchy does not properly draw in UI Editor

Add function to DynamicDrawContext to support set sort key for followed draw calls.
Use different sort key for background draw and top layer draw in UI canvas.
2021-04-30 11:19:13 -07:00
AMZN-koppersr 5e4094b258 Revamped AzFramework::Scene (#332)
Updated AzFramework::Scene to allow it to serve as the one-stop location for localized singletons. Localized singletons in this case are instance that can only occur once in an environment but multiple times within an application. As an example, this allows settings up a single camera per viewport for instance.

Highlights of changes:

Replaced the original ebuses with interfaces and events for easy of use and performance.
Removed the Entity Context specific code and moved that to new locations within the Entity Context itself.
Allowed basic inheritance. If a subsystem isn't found in a scene the parent can optionally be searched.
Scenes can enter a zombie state and avoid immediately being deleted. This is needed for situations where subsystems can't be destroyed until async calls have been completed.
2021-04-29 08:50:48 -07:00
Vicky e4509dbe68 Merge pull request #322 from aws-lumberyard-dev/Atom/qingtao/ATOM-6088
ATOM-6088 Unified approach to send draws to a single viewport

    Created a template class TagRegistery which implements the previous DrawListTagRegistry. The template is used for both DrawListTagRegistry and DrawFilterTagRegistry
    Added DrawFilterTag to DrawItemKeyPair
    Added DrawFilterMask support in DrawPacket and DrawPacketBuilder
    Added CreateDynamicContext for render pipeline which allows draw to selected render pipeline.
    Updated RasterPass's BuildCommandListInternal function to filter draw items for its owner RenderPipeline.
2021-04-27 14:34:27 -07:00
qingtao 60db6b55d0 Address feedback of PR for ATOM-6088.
* Rename DrawItemKeyPair to DrawItemProperties.
* Switch back to use Ptr<DrawListTagRegistry> instead of DrawListTagRegistry
* Updated some comment.
2021-04-27 13:26:43 -07:00
qingtao 12f528d744 ATOM-6088 Unified approach to send draws to a single viewport
- Created a template class TagRegistery which implements the previous DrawListTagRegistry. The template is used for both DrawListTagRegistry and DrawFilterTagRegistry
- Added DrawFilterTag to DrawItemKeyPair
- Added DrawFilterMask support in DrawPacket and DrawPacketBuilder
- Added CreateDynamicContext for render pipeline which allows draw to selected render pipeline.
- Updated RasterPass's BuildCommandListInternal function to filter draw items for its owner RenderPipeline.
- Updated RHI unit tests.
2021-04-26 13:52:30 -07:00
Chris Burel 61fe298319 Merge pull request #197 from aws-lumberyard-dev/filesEndInNewlines
Add newlines to the end of all files
2021-04-23 12:11:40 -07:00
Nicholas Van Sickle 3eaa749191 Merge pull request #277 from aws-lumberyard-dev/nvsickle/MoreMainFixes
Cherry-pick several 1.0 viewport fixes to main
2021-04-23 09:50:07 -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
nvsickle f835372c0f Fix capitalization... 2021-04-23 00:27:39 -07:00
nvsickle e6cfe36a03 Fix typo 2021-04-23 00:27:34 -07:00
nvsickle 9e6244dc99 Fix game mode camera components not working in-Editor
Ensures RPI::View updates always make it back to the ViewportContext, even if you talk directly to the View
2021-04-23 00:26:53 -07:00
greerdv 62a3b7635b Merge branch 'main' into non-uniform-scale-mesh 2021-04-21 10:56:36 +01:00
nvsickle ba5e0170a2 Fix ImGui rendering in-Editor
-Ensure ViewportContext rendertick notifications always fire
-Use viewport size to determine ImGui resolution, ensure OnViewportSizeChanged is always up-to-date for the default viewport context
2021-04-20 15:27:36 -07:00
mbalfour 5aa4642c12 Added another implicit converter to MaterialPropertyValue so that generated images can be used with material properties more easily.
(cherry picked from commit 66d7e9672ca0d6ced068dd95d8b52f88b5492c1f)
2021-04-20 09:29:43 -05:00
greerdv e497b7ac33 Merge branch 'main' into non-uniform-scale-mesh 2021-04-19 11:05:10 +01:00
alexpete 10faddb113 Integrating github/staging through commit ef88e6e 2021-04-16 12:05:11 -07:00
Vicky 8743155b73 Merge pull request #76 from aws-lumberyard-dev/Atom/qingtao/ATOM-13791
ATOM-13791 Editor: ImGui profiling tools doesn't work correctly due to disabled RenderPipelines
LYN-2908 Pressing Home button crashes the Editor
2021-04-15 15:19:25 -07:00
greerdv 4c582a2b0a Merge branch 'main' into non-uniform-scale-mesh 2021-04-15 08:29:57 +01:00
greerdv d8169e08fb merging from main 2021-04-15 08:18:11 +01:00
qingtao fa7f61cf0d ATOM-13791 Editor: ImGui profiling tools doesn't work correctly due to disabled RenderPipelines
- Added pause/resume button to ImGui Profiler to pause/resume profiling
- Added showing pass execution timeline
- Change TimestampResult to include both begin tick and duration tick. Update some function names of TimestampResult.
- Update some functions names in Pass.
- Stop showing accumulated time for ParentPass.
- Fixed a crash issue with ImGuiManager which doesn't have default font.
2021-04-14 22:48:46 -07:00
greerdv 2fb2813b48 updating atom mesh component to support non-uniform scale component 2021-04-14 14:05:59 +01:00
moudgils 9aec30a608 Merge branch 'main' into Atom/moudgils/MacRuntimeFixes 2021-04-13 21:48:17 -07:00
moudgils 68d58f48ae Merge branch 'main' into Atom/moudgils/MacRuntimeFixes 2021-04-13 19:45:18 -07:00
alexpete 8469c9ca0a Integrating github/staging through commit 5f214be 2021-04-13 17:18:57 -07:00