You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
o3de/Gems/WhiteBox/Code/Source
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>
4 years ago
..
Asset Merge branch 'development' into cmake/SPEC-7179 5 years ago
Components Merge branch 'development' into cmake/SPEC-7179 5 years ago
Core Merge branch 'development' into cmake/SPEC-7179 5 years ago
Platform Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
Rendering 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. 4 years ago
SubComponentModes Merge branch 'development' into cmake/SPEC-7179 5 years ago
Util Merge branch 'development' into cmake/SPEC-7179 5 years ago
Viewport Merge branch 'development' into cmake/SPEC-7179 5 years ago
EditorWhiteBoxComponent.cpp LYN-4774 Fix missing box icons inside the main Viewport (#2297) 4 years ago
EditorWhiteBoxComponent.h Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
EditorWhiteBoxComponentMode.cpp Merge branch 'development' into cmake/SPEC-7179 5 years ago
EditorWhiteBoxComponentMode.h Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
EditorWhiteBoxComponentModeBus.h Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
EditorWhiteBoxComponentModeTypes.cpp Merge branch 'development' into cmake/SPEC-7179 5 years ago
EditorWhiteBoxComponentModeTypes.h Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
EditorWhiteBoxDefaultShapeTypes.h Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
EditorWhiteBoxEdgeModifierBus.h Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
EditorWhiteBoxPolygonModifierBus.h Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
EditorWhiteBoxSystemComponent.cpp Merge branch 'development' into cmake/SPEC-7179 5 years ago
EditorWhiteBoxSystemComponent.h Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
WhiteBoxAllocator.cpp Merge branch 'development' into cmake/SPEC-7179 5 years ago
WhiteBoxAllocator.h Merge branch 'development' into cmake/SPEC-7179 5 years ago
WhiteBoxComponent.cpp Merge branch 'development' into cmake/SPEC-7179 5 years ago
WhiteBoxComponent.h Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
WhiteBoxEditorModule.cpp Merge branch 'development' into cmake/SPEC-7179 5 years ago
WhiteBoxEditorModule.h Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
WhiteBoxModule.cpp Merge branch 'development' into cmake/SPEC-7179 5 years ago
WhiteBoxModule.h Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
WhiteBoxModuleUnsupported.cpp Merge branch 'development' into cmake/SPEC-7179 5 years ago
WhiteBoxSystemComponent.cpp Merge branch 'development' into cmake/SPEC-7179 5 years ago
WhiteBoxSystemComponent.h Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
WhiteBoxToolApiReflection.cpp Merge branch 'development' into cmake/SPEC-7179 5 years ago
WhiteBoxToolApiReflection.h Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago