475 Commits over 518 Days - 0.04cph!
post subsurface pass beginnings
bring over WaterCamera changes into RRP
hoarded a bunch of changes:
- refactored vclouds and vfog for multi camera support
- vclouds and vfog ported to RRP with built-in wrappers
- match sky dome pos to camera in RRP, including in scene view
- scale sky dome to camera far plane in RRP
- use CommandBufferManager.OnPreCommandBuffer hook to call OnBeginRendering() in built-in wrappers, fixes update happening after commands buffers were already filled
- share TextureDescs between render graph and built-in wrapper render texture creation. Ensures consistent formats, etc
- fix skybox rendering twice in scene view
- fix water render graph issues on lower quality levels
- fix destruction of water dynamics RTHandle
add CommandBufferManager.OnPreCommandBuffer hook
add tint from vcolor mode to FXVille Blood World Lighting
supply lightdir/color for water again, adjust texture formats
fix double-rendering atmosphere
sync Rust.RenderPipeline changes:
- fix missing shader parameter for legacy shadow caster shaders
- render forward opaque objects (only SRPDefaultUnlit and RustLit light modes, allows atmospheric elements to render)
- make camera context directly accessible by the camera component
- add RustRenderPipeline pipeline shader tag
maybe fix error spam in build about WaterSurfaceTex vs PostOpaqueDepth dimensions (separate from editor issue I think)
stopgap water sky reflection until we have the water refl probe in RRP
fix occasional single-pixel ocean line in canyons
add "Affect Occlusion" toggle to detail blend layer, makes blend layer interact with base layer occlusion (lerps it white with the blend weight)
fix error spam in edit mode on island scenes
add screenshot mode for water SSR, works around cut off reflections in high res screenshots
add underwater fog blending for tropical shores in deep sea
fix merging of island heights with TerrainMeta.HeightMap.deepSeaHeights
fix ocean stuttering in demo playback (forces water.scaled_time behavior when playing demo)
fix cloud weirdness when overriding weather state when playing back a demo
vclouds:
- cap full res image to 4k in either dimension (prevents GPU murder when taking high res screenshot, aspect ratio is maintained when scaling down)
- don't reproject when taking a screenshot, render the full cloud image from scratch
- respect time.timescale
add deep sea version for environment volume properties ocean overrides
underwater fog lerping respects reflection.forceupdate
RRP water rendering progress
sync with Rust.RenderPipeline:
- enable global shader param + keyword when RRP is in use
sync with latest Rust.RenderPipeline changes:
- camera components can return false in OnBeginRendering() to skip rendering the feature for the camera
- reset GraphicsSettings.lightsUseLinearIntensity to false on RRP disposal
(Fixes BiRP lighting becoming dark when switching, it was also possible for
the true value to get saved in GraphicsSettings.asset which confusingly
permanently broke BiRP lighting.)
disable the begin/endContextRendering hooks on CommandBufferManager
update existing passes for pipeline changes
sync Rust.RenderPipeline changes
port PostOpaqueDepth to RRP, prerequisite for water
merge from deepsea_island_shorewetness_fix
fix shore wetness on deep sea islands
merge from terrain_potato_remove_everywhere (fixes incorrect terrain blending on cliffs and other props on deep sea islands at shader level 1)
remove terrain potato mode on all shaders that had it on shader level 1 (fixes incorrect blending on cliffs on deep sea islands, etc)
merge from deepsea_portal_weather_fixes
fix vclouds not transitioning in portal with forced weather
fix portal storm clouds not using proper lighting intensity (were too bright)
add graphics.atmospherefogdensityscale
merge from deepsea_portal_weather_fixes
merge from deepsea_portal_weather_fixes
deep sea/portal weather transitions work with vclouds, fix portal entrance weather transition not actually transitioning from current mainland weather
merge from terrain_potato_disable
disable potato terrain rendering (shader level 1), level 2 new minimum terrain quality
initial potentially better implementation of screen-space/contact shadows, doesn't work yet