* Re-do Bloom based how Jimenez, SIGGRAPH 2014 did, remove gamma shit, biquadratic shit, add bloom tint
* Compile shaders
* Format
* Adjust bloom tests, these are no longer relevant
* Mark obsolete properties for Gamma and Filter in Bloom effect
* Blend with rgb only
Hammer lights default to DirectLight=Baked (lighting burned into the lightmap) + CastShadows=Yes.
2388933716 started reading that pair as "baked AND give it a realtime shadow map", so every light in every lightmapped map got one.
Now baked mean baked again and no real-time shadow map will be allocated for hammer lights with default settings.
Fixes https://github.com/Facepunch/sbox-public/issues/11551
We already had this at 5 pre 8a9c4575 which claims to be a pure refactor so idk why the value was lowered to 2 in that refactor.
5 is more in-line with other engine, but still on the lower end. (Godot has ~7, Unity ~16, Bevy ~12-16, Unreal 6)
Fixes https://github.com/Facepunch/sbox-public/issues/11373
https://sbox.game/dev/doc/gameplay/inventory-weapons/
Added
InventoryComponent - a slot based inventory, hotbar or shared bucket slots, with a starting loadout
BaseInventoryItem - base class for inventory items, with hooks to veto switching, holstering and dropping
BaseWeapon - a GMod style base weapon - fire modes, magazines and reserve ammo, reloading, dry fire, ballistics, spread, crosshair and HUD
BaseWeaponModel - view/world model base with muzzle flash, brass ejection, tracers and animation hooks
Ammo types are resources (.ammo) - weapons share reserve pools by type, clamped to a max reserve
BaseWeapon.ShootBullets / ShootBullet - bullet tracing with damage, impulse and hitbox tags
Weapon hold types editor
Animgraph enum parameters can be set by option name - Renderer.Set( "holdtype", "pistol" )
NpcUsage on BaseWeapon - engagement range and burst behaviour so NPCs can use any weapon
ICameraModifier - cameras compose their view through an ordered modifier chain, read the result from CameraComponent.View
CameraEffectSystem - screen shake, directional punches and tilts, with world epicenter falloff - camera.AddShake / AddPunch / AddTilt
EnvShake component - shakes the view, rumbles controllers, kicks physics
TracerEffect - an animated tracer line, ITargetedEffect for effects that fly at a target
SceneAnchor - a world position that can follow an object or bone
SkinnedModelRenderer.GetClosestBone( worldPosition )
Vector3.WithAimCone can take a custom Random for reproducible spread
Improve/Fix
PlayerController searches parents for IPressable when pressing
PlayerController camera runs through the modifier chain - IEvents.PostCameraSetup is obsolete
SoundPlayer preview uses shortcuts - Space toggles playback, Ctrl+Space restarts
Fixed Radius( 0 ) traces missing everything
Fixed NRE in AssetPreviewWidget
Removed
Removed CameraComponent.ISceneCameraSetup (obsolete since October, nothing uses)
* Depth of field rewrite with tile classification, indirect dispatches, remove focal range (bullshit)
* Clear Vertical/Diagonal DoF blurs across passes so we dont have artifacts from previous one across tile boundaries
* Dont waste more memory than we need for tiles
* Command list texture clears were being deferred to it's own context, do it on the same context immediately
* Do DoF after viewmodel & AfterViewmodel hook actually runs after viewmodel
* Since we precalculate the DoF max range per tile we dont really need this weird logic for optimization
* Fix shitty 1px line for dof when it intersects geometry
https://files.facepunch.com/sampavlovic/1b1411b1/sbox-dev_3p4zfSfTDx.mp4
* update shaders
* Readd focus range but make it almost as far as FarZ by default
* format
* Adjust tests for new behaviour for DoF, reset buffer data on command list
* gtao atrous optimisation - cache texture taps into groupshare tile buffer. before: https://files.facepunch.com/antopilo/1b0111b1/ngfx-ui_HB5GFcF66Z.png after: https://files.facepunch.com/antopilo/1b0111b1/ngfx-ui_AeqfjvzQSr.png
* make working edge texture A8 instead of R16F
* sample texture closer together to limit staling
* remove third pass of denoising
* depth chain is now R16F instead of R32
* add safety
* move early out
* make number of atrous pass configurable
* Remove temporal denoise from AO, our spatial denoiser already kicks ass
* Early out was fucking grouopread on Spatial Denoise & remove unused Working Edges
* Denoise Normal is invariant of coordinate system
* Denoise passes in quality profiles
Co-authored-by: Sam Pavlovic <sam@sampavlovic.com>
* Move all unit tests to Engine/Tests
* Fix Margin.EdgeSubtract
* Fix Capsule.Contains
* EnvironmentVariables.Remove if it's null
* Fixed ray trace never returning startedsolid
* Fix HistoryList.Navigate on empty list
* Fix GameObject.WorldPosition accepting NaNs
* Fix flex: initial expanding to the wrong grow/shrink
* Translation.TryConvert shouldn't throw on invalid enum strings
* Skip sound file tests on machines with no audio device