Commit Graph

45 Commits

Author SHA1 Message Date
hershey5045 30da67fe7d Editor HDR Color Grading Component implemented under the PostFx stack (#4159)
* Add HDR color grading pass and shaders.

* Remove color grading pass from light adaptation parent pass due to failing ASV tests. This will be added back later on.

* Editor HDR Color Grading Component implemented under the PostFx stack (#219)

* Add softmin/max for unbounded color grading properties.

* Revert channel mixer properties to vector3. Refactor mix to weight. Fix color grading pass to convert any color variable into vec4.

Signed-off-by: rbarrand <rbarrand@amazon.com>

Co-authored-by: Robin <rbarrand@amazon.com>
2021-09-21 16:19:30 -05:00
Guthrie Adams 376a6040d8 Addressing PR feedback
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
2021-09-20 15:24:03 -05:00
Guthrie Adams 0c9dbb8658 Adding new commands to the material component for managing, removing, repairing material slots
• Adding commands to material component to clear or repair material slots
• Moved all clear and repair functions from the editor component to the material component controller, bound to its buses so they can be accessed from script
• Added new functions to clear model and LOD material groups
• Added function to remove material assignments with bad asset references
• Added function to reassign materials with bad asset references to the default asset
• Added function to remove material assignments that don’t match slots available on the active model. This case arises when switching between different models, changing the materials on a given model, or copying and pasting the material component to a different entity with a different model. The user might end up with hidden material slots that load assets but have no effect.
• Converted remaining code that iterated over editor material slots to instead use the material component request bus
• Removed functions from the editor material component that enumerated editor material slots

Signed-off-by: Guthrie Adams <guthadam@amazon.com>
2021-09-19 18:42:24 -05:00
Guthrie Adams 825e523483 Merge branch 'development' into Atom/guthadam/multiple_dockable_pinned_material_component_property_editor
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
2021-09-15 18:45:22 -05:00
santorac 48e0a9d5ff Merge remote-tracking branch 'upstream/development' into Atom/santorac/WarnOnMaterialPsoChanges 2021-09-15 11:35:39 -07:00
Guthrie Adams 754a1a0975 Merge branch 'development' into Atom/guthadam/multiple_dockable_pinned_material_component_property_editors 2021-09-14 19:15:27 -05:00
Guthrie Adams f7d4b8e70f Changing material component property inspector to dockable view pane
• Inspector is locked to a specific entity and material assignment ID
• All modifications are made via the material component request bus
• Removed complicated configuration management in editor material component
• Multiple material property inspectors can be opened
• Multiple materials across different entities can be edited simultaneously
• No longer blocks the viewport or other interactions
• Added functions to material component request bus for retrieving material slot labels, default materials, getting and setting property and UV overrides
• Added more asset related types to material property value conversion from any
• Added support for static heading widget on top of atom tools inspector, currently used for menus and messages

WIP: Still investigating intermittent crash because of corrupt asset property
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
2021-09-14 19:11:11 -05:00
mrieggeramzn 603e33d7f7 Removing the boundary search method. (#4024)
* Removing the boundary search method. Bicubic is now the default and only PCF filtering method

* Removing padding (based upon feedback)

* Removing PCF method from py auto testing

Signed-off-by: mrieggeramzn <mriegger@amazon.com>
2021-09-14 18:10:06 -05:00
santorac 51f101748d These changes make material system report warnings when gameplay scripts attempt to change PSO-impacting material properties at runtime. So far the material system has always allowed any properties to be changed at runtime, including those that affect Pipeline State Objects (PSOs), as this is supported on several platforms. But some platforms require that Pipeline State Objects be pre-compiled and shipped with the game. At some point we will need to add new restrictions that limit what material properties can be changed at runtime. In the meantime, these warnings should alert users to avoid this, as the functionality likely won't be supported in the future.
- Made the Material and LuaMaterialFunctor classes configurable to report errors or warnings when material properties modify Pipeline State Objects. This is controlled by a new "MaterialPropertyPsoHandling" enum.
- Made the EditorMaterialComponent override PSO handling as Enabled, to prevent warnings when the user is editing material instance property overrides. This requried a new MaterialComponentNotificationBus bus message "OnMaterialInstanceCreated".
- Removed unnecessary GetMaterialPropertyDependencies member from material functor context classes, as this is already available as part of the functor itself.
- Made Material::SetPropertyValue return early when the property value hadn't actually changed. Besides being more efficientn, this prevents unnecessary spamming of the new warning.

Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
2021-09-13 17:05:11 -07:00
mrieggeramzn e15634a867 Adding receiver plane bias to directional shadows (#3305)
* Adding receiver plane bias to directional shadows

* fixing whitespace issue

* Slight spelling change
2021-08-30 14:16:54 -07:00
Guthrie Adams 6a15a2d91b Merge pull request #3350 from aws-lumberyard-dev/Atom/mriegger/fixupeditorshadowoptions
Fixing the softening boundary width editor options
2021-08-24 15:25:54 -05:00
mrieggeramzn b3f1a46559 Fixing the softening boundary width editor options
Signed-off-by: mrieggeramzn <mriegger@amazon.com>
2021-08-20 13:43:59 -07:00
Kyle Birnbaum 2b1f4c2fc0 Merge branch 'development' into ExposeLodControls 2021-08-20 12:45:00 -07:00
Kyle B b53a085700 Merge branch 'development' into ExposeLodControls 2021-08-20 12:14:59 -07:00
Guthrie Adams aa642bd566 Merge pull request #3156 from aws-lumberyard-dev/Atom/guthadam/material_component_api_script_canvas_support
AtomTools: better script canvas support for material component
2021-08-19 16:23:43 -05:00
Ken Pruiksma 90845313fb Overhaul of LookModification (#3282)
* Fixed log2 shaper equations. Added bspline sampling for lut. Added options for custom log2 or linear lut with custom exposure ranges.

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

* Added support for PQ shaper. Added shader option & cvar for lut sampling quality. Fixed issues in the blend lut shader that were causing considerable quality loss. No longer always changing to the log2 1000 nit shaper when blending luts - if the source luts all use the same shaper, keep using that shaper in the blended lut.

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

* Fixed an integer -> float

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

* Minor PR reveiw updates

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
2021-08-18 16:59:34 -05:00
Guthrie Adams c67a9f3d12 Updated material component request bus to better support script canvas
Change all name parameters to use standard string so that they could be headed in in script canvas nodes and RPE

Added explicitly type functions for getting and saving property overrides

Signed-off-by: Guthrie Adams <guthadam@amazon.com>
2021-08-16 17:13:43 -05:00
Kyle B 51271fa15b Created group for Lod component data
Signed-off-by: Kyle B <kylebirnbaum@gmail.com>
2021-08-06 16:57:00 -07:00
Kyle B 5b88d96eec Exposed fields to the mesh component giving greater Lod control from the editor
Signed-off-by: Kyle B <kylebirnbaum@gmail.com>
2021-08-02 13:36:10 -07:00
santorac b407e501e3 Merge branch 'development' into Atom/santorac/OptionalSceneApiMaterialConversion 2021-07-30 14:54:14 -07:00
Chris Santora 14d2e38b90 Refactored how model material slots work in preparation to support more flexible material conversion options for the scene asset pipeline. The material slot IDs are based on the MaterialUid that come from SceneAPI. Since these IDs are also used as the AssetId sub-ID for the converted material assets, the system was just checking the material asset sub-ID to determine the material slot ID. But in order to support certain FBX material conversion options, we needed to break this tie, so the slot ID is separate from the AssetId of the material in that slot. This will allow some other material to be used in the slot, instead of being forced to use one that was generated from the FBX.
Here we inttroduce a new struct ModelMaterialSlot which formalizes the concept of material slot, with an ID, display name, and default material assignment. The ID still comes from the MaterialUid like before. The display name is built-in, rather than being parsed out from the asset file name. And the default material assignment can be any material asset, it doesn't have to come from the FBX (or other scene file).

This commit is just the preliminary set of changes. Cursory testing shows that it works pretty well but more testing is needed (and likely some fixes) before merging.

Here is what's left to do...
Add serialization version converters to preserve prior prefab data.
See if we can get rid of GetLabelByAssetId function only rely on the display name inside ModelMaterialSlot.
I'm not sure if the condition for enabling the "Edit Material Instance..." context menu item is correct.
Test actors
Lots more testing in general

Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
2021-07-30 11:40:51 -07:00
Guthrie Adams ffbeb903c1 Material Component: Add functions to lookup material ids by name
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
2021-07-29 18:09:40 -05:00
Ken Pruiksma 33c408f654 Expose shadow bias to component & feature processors. (#2406)
* Expose shadow bias to component & feature processors. Shadow bias now works more consistently with various near / far shadow planes and caster positions. Bias now also affects esm shadows which helps eliminate acne in certain situations.

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

* Adding jira comment to light configuration serialization version. Improved comment on final adjustment to bias before its sent to the shader.

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

* Hooking up bias to behavior context.

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
2021-07-27 11:31:05 -07:00
Steve Pham 38261d0800 Shorten copyright headers by splitting into 2 lines (#2213)
* Updated all copyright headers to split the longer original copyright line into 2 shorter lines

Signed-off-by: Steve Pham <spham@amazon.com>
2021-07-16 15:25:48 -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
Steve Pham 70042fcdcd O3DE Copyright Updates for Linux Foundation (#1504) 2021-06-23 10:55:22 -07:00
hershey5045 c127a044d4 Enable fog in physical sky component to blend with deferred fog (#1320) 2021-06-18 13:39:11 -07:00
mriegger 959ec14df6 Exposing esm exponent 2021-06-13 23:07:10 -07:00
mnaumov 856204a5ea merge from main 2021-06-03 16:01:27 -07:00
mnaumov c3df73bed8 PR feedback and fixing TrackView 2021-06-02 18:48:50 -07:00
mnaumov 3fcc1b64fc [ATOM-15692] Ebus for registering custom feature processors for thumbnail generation 2021-06-01 20:24:23 -07:00
mnaumov 38819c630a PR feedback 2021-06-01 15:34:01 -07:00
mnaumov ab45ea7efa [ATOM-15631] First pass on exposing Display Mapper properties to Behavior Context 2021-05-28 17:15:20 -07:00
mnaumov 19664dccd2 Merge main 2021-05-19 16:10:44 -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
mriegger 124ca1618a Making shadow res of 1024 and bicubic pcf the default 2021-05-12 20:51:56 -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
alexpete 10faddb113 Integrating github/staging through commit ef88e6e 2021-04-16 12:05:11 -07:00
alexpete 8469c9ca0a Integrating github/staging through commit 5f214be 2021-04-13 17:18:57 -07:00
alexpete 1044dc3da1 Integrating github/staging through commit ab87ed9 2021-04-09 11:27:37 -07:00
alexpete c2cbd430fe Integrating up through commit 90f050496 2021-04-07 14:03:29 -07:00
alexpete 75dc720198 Integrating latest 47acbe8 2021-03-25 13:57:57 -07:00
alexpete a10351f38d Initial commit 2021-03-08 14:30:57 -08:00