- Removed default shader platform parameter from GetGlobalShaderMap()
- Added an inline overload of GetGlobalShaderMap() that takes a feature level instead, and translates to the correct shader platform
- Cached feature level on FSceneView for faster access
- Cached shader map on FViewInfo for faster access
- Cached featurelevel/shadermap on rendering composition graph execution context, for faster access
Fixed a couple of crashes when switching feature level dynamically
- Needed to allow certain shader permutations to be generated if feature level was ES2, but still on a PC platform. (i.e. hitproxy shaders, and basepass shaders used by editor primitives system)
#codereview Nick.Penwarden
[CL 2275937 by Graeme Thornton in Main branch]
Needs some clean up still. Standard deferred reflections not implemented yet. Tiled deferred reflections needs some optimization. ClearCoat and ClearCoatRoughness needs to be exposed to the material editor.
[CL 2118481 by Brian Karis in Main branch]
#ttp 331829 - Mobile Preview in Editor
#proj Engine
#branch UE4
#summary First pass of changes to remove GRHIFeatureLevel, allowing for multiple scenes with different feature levels to exist. First step towards dynamic mobile preview in the editor.
#change Added GMaxRHIFeature level which contains the highest supported feature level on this machine
#change Added a cvar "r.FeatureLevelPreview" which, when set to 1, enables a feature level selection in the quick settings menu. Not wired up to anything at the minute
#change Added a feature level variable to FScene, which is currently initialized to whatever GRHIFeatureLevel is. Accessed with GetFeatureLevel()
#change Added a helper accessor GetFeatureLevel() to FSceneView which gets the feature level from the relevant scene. Purely to reduce the amount of typing needed to get to a feature level
#change Many changes across the renderer to try and read the current feature level from the view or scene. Not everything is done yet, but this is almost all of the "easy" stuff. As there is still just a global feature level in the engine, nothing should change.
[CL 2066905 by Graeme Thornton in Main branch]
#branch UE4
#proj Engine, Renderer
#add Created a class FSimpleLightPerViewEntry and relocated the positional vector from FSimpleLightEntry.
#add Created FSimpleLightArray which contains a FSimpleLightEntry and FSimpleLightPerViewEntry TArray - this is just so to keep function parameter lists uncluttered when passing the data around.
#change ViewFamily is now passed to GatherSimpleLights and GatherParticleLightData allowing us to calculate the camera offset for each view. This also allows for future additions that are view-dependant.
#change Camera offset is calculated in GatherParticleLightData for each view. When camera offset isn't enabled FSimpleLightPerViewEntry is shared for all views in order to save memory
[CL 2062006 by Joe Tidmarsh in Main branch]