#ttp 348615 - EDITOR: MAC: High resolution screenshot outputs to BMP which mac cant open
#branch UE4
#proj Editor.UnrealEd, Runtime.Engine, Runtime.Core
[CL 2322274 by Richard TalbotWatkin in Main branch]
- 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]
* Both paths still exist in code during this transition. The GetDynamicMeshElements path is currently disabled, enable with 'r.UseGetDynamicMeshElements 1'.
* DrawDynamicElements was called once per pass, all sorts of pass-specific cruft had leaked in along with short-term modifications of shared structures (vertex factories and material proxies). DrawDynamicElements was not const, so a bunch of 'update' type work had leaked in. Various PreRenderView implementations relied on the view being in the view family.
* GetDynamicMeshElements is called once in InitViews, and the resulting meshes are used in various passes. GetDynamicMeshElements is const and must not modify the proxy, update work should be pushed to the proxy from the game thread. GetDynamicMeshElements can be called on views that are not in the view family, which allows a proper view for shadow depth passes.
* View mode override functionality moved out of the individual proxies into a centralized place, ApplyViewModeOverrides
* GPU particles not working yet, FRecastRenderingSceneProxy not implemented
[CL 2253795 by Daniel Wright in Main branch]
#ttp 318670 - UE4: RENDERING: FORTNITE: Write HighResScreenshots to OpenEXR (ideally PSD as well)
#proj Engine
#branch UE4
#summary Added OpenEXR library, added OpenEXR format to ImageWrapper Module, Changed highres screenshot code to save with image wrapper.
#Add OpenEXR support (for writing) to ImageWrapper module. (enabled for windows builds only)
#Add added option to highres screenshot code to choose to output as hdr / openexr
#Add 2 new visualisation modes, scene depth world units and custom depth world units.
#add cvar 'r.BufferVisualizationDumpFramesAsHDR' to enable hdr export from console.
#change FRCPassPostProcessMaterial can specify an override output texture format if required.
#add SaveImage function to FHighResScreenshotConfig
[CL 2252882 by Allan Bentham in Main branch]
Several other fixes for high res screenshot issues.
Default behaviour of screenshots with viewport-locked cameras is to only capture the actual viewrect, not including the black bars. Removed button for setting capture region to view rect.
[CL 2235681 by Graeme Thornton 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]
* added r.DumpRenderTargetPoolEvents to visualize RenderTargetPool usage over a frame, added mouse hover support
[CL 2051313 by Martin Mittring in Main branch]