16,830 Commits over 1,277 Days - 0.55cph!
Encode normals in 2D view space for denoising, simpler and works much better, increase max sample count for reprojection
Fix SSR traces not being able to backtrace, do linear search when doing backtracecs
https://i.imgur.com/UzNKHRL.png
Squashed commit of the following:
commit da96f1c95fb7c20271e9ce8428aeecbb780f7845
Author: Sam Pavlovic <sam@sampavlovic.com>
Date: Sun Jul 23 21:45:44 2023 +0100
Fix SSR traces not being able to backtrace, do linear search when doing backtracecs
https://i.imgur.com/UzNKHRL.png
commit 7c323611215a44a3e1b97284a624c0df656ba4c5
Author: Sam Pavlovic <sam@sampavlovic.com>
Date: Fri Jul 21 22:54:37 2023 +0100
[Pick] Proper support for blitting MSAA textures, also fixes blitted framebuffer textures on Vulkan
commit b96e5efc447484f7a040ead9213df1a263d88d55
Author: Sam Pavlovic <sam@sampavlovic.com>
Date: Wed Jul 19 18:50:33 2023 +0100
Fix SSR issues, just do PS > VS converstion to be faster, composite it directly to water
commit 6002107634ea0c747c17cb4160e4f9b649e3b700
Author: Sam Pavlovic <sam@sampavlovic.com>
Date: Thu Jul 13 19:05:03 2023 +0100
Fix water ripple collision
commit 2f5247f5443eeffb54d3620d09ae476e2c9b6442
Author: Sam Pavlovic <sam@sampavlovic.com>
Date: Mon Jul 10 20:18:01 2023 +0100
Iterate, make WaterRipple a custom sceneobject so we can fetch depth from it and only render when visible
commit 354b77dbcadd40e893bbb0f2f9e2d09a88f18db6
Author: Sam Pavlovic <sam@sampavlovic.com>
Date: Thu Jul 6 17:50:00 2023 +0100
Water fog and refraction
commit 3cd9da902a4f12d8f53ab9d8f3b43ad0b5bb0c9a
Author: Sam Pavlovic <sam@sampavlovic.com>
Date: Tue Jul 4 14:39:04 2023 +0100
Backport simple water from SSR branch
Cleanup, shared_standard_ps_code doesnt need these anymore since we define on material, sharpen compositing confidence
`background` shorthand color transition
CSS `animation` shorthand, same syntax as web (https://drafts.csswg.org/css-animations/#animation) - any order
Fix Mouse.Delta not working causing dragging in UI not to work too
▍▊▅▄ ▄▍▉█▆█.▌▋▉▋▅▇▇▆▇▌▆█▉▋▌▇▇▍▇▉▆▍▆<▉> ▋██ ▉▊▍▉▋▋▍▌▄▅█▆▊.▆▉▋▋<█> █▅▇▆▊▊▉ ▄▊ ▆▌█▍▍▋▍.▌▉▇▇█▋▉▌▋▅▌▋▊▇<▋> ▆▉▅ ▆▇▄▆▄▇▍▊▅▋▄ ▊▅ ▉▉▋█▍█▇▍▋ ▉▉█▉▌
▌▇▇█▉▌▌▊▇▌ ▉▉▍█▌▉▌▌▅▍ ▆▆▍▌▋▌▆▆█ ▌▉▌, ▉▉▅▆ ▋▆█▋▇▍ ▅▌▍██▍▄▅▊▊▆▉▉.▉██▋ ▋▊▉▅ ▉▇▊ ▄▇▆▊▌▉ ██▉▇ ▄▅ ▍▇█▆▆'▆ ▅▌▊▍▄▉▌ ▇▉▋ ▅▌▋▊█▆▇▄ ▊█▇▅ ▆▌▍▆
Fix unnecessary mesh instance data assert
Add empty decal for water surface, surfaces will always fallback to default
▄▋▆ █▇▄▍▌▅▆▇ █▌ ▌▆▋▅▊▌▆▍▇▋▌▅█▊.█▊▌▍▉█
Typo fix in asset.party package publish successful
ComputeShader.Dispatch: Remark about thread group size being automatic
CRenderThreadDx11::OnReadBuffer: staging buffer needs to be the same size as the buffer to read, otherwise partial or offset reads silently fail
Fix mouse snapping back when in relative mode
Can opt out of drag scrolling with `Panel.CanDragScroll = false;`, enabled by default (sboxgame/issues/issues/3491)
`@readonly` and `@editable` asset browser filters (sboxgame/issues/issues/3205)
Basic parsing support for CSS `background` shorthand
Move position/length shorthand parsing into Parse.TryReadPositionAndSize (used for both mask & background shorthands)
UI: don't clamp UVs in shader when BgRepeat mode is Clamp, fixes angled gradients
Background angles conform to css spec - add offset to match +x as being 0 degrees instead of +y
Moved road sign decal to asset party
Add Auth token service
Test new api url
Move more assets to asset.party + remove old content
https://asset.party/facepunch/sboxassets
Fix Widget.GetChildren shitting the bed if more than 512 children
SceneModel.SetMaterialGroup -> SceneObject.SetMaterialGroup - dunno how I'd fucked this
ShaderGraph: Triplanar texture mapping nodes (#1198)
Added Texture Triplanar and Normal Map Triplanar nodes
ShaderGraph: Triplanar texture mapping nodes
ShaderGraph: Triplanar node tweaks
ShaderGraph: Fix default settings for NormalMapTriplanar node
ILHotload runs hotloaded event
Squash commit of what was on SSR branch
Update compiled shaders
Redo SSR API to not be hardcoded to an ubershader, add a function to just consume material API parameters and output the reflection
Convert water to the new system, adjust reflections.hlsl
Drift SSR result [-1,1] pixel based on the normals to sharpen it to the result
Do perfect reprojection on ssr, able to have much higher quality without losing temporal stability
Get ripples on new water shader
High Quality Reflections becomes Dynamic Reflections, commit rest of stuff for Louie to test
Final changes, SSR on complex, some cleanup and fixes, fuck off with the old high_quality_reflections shader
Add r_dynamic_reflections_draw_everything for debug visualization, ignores object gathering filters when setting up dynamic reflections pass and draws reflections of all objects capable of it
Fix toggleability of SSR in shaders
Better way to do r_dynamic_reflections_draw_everything
Don't sample ripples on shader if not using water entity
Simplify cpu side of ssr, fix things for latest revision
Fix escape getting called twice
Add Game.Disconnect() - to leave the current game session and return to the game menu
Revert AttachSteamAuthTicket
Authorization option for WebSocket, remove SetRequestHeader (duplicate functionality)
Backport simple water from SSR branch
Water fog and refraction
Iterate, make WaterRipple a custom sceneobject so we can fetch depth from it and only render when visible
Fix water ripple collision
Fix SSR issues, just do PS > VS converstion to be faster, composite it directly to water
[Pick] Proper support for blitting MSAA textures, also fixes blitted framebuffer textures on Vulkan
Fix SSR traces not being able to backtrace, do linear search when doing backtracecs
https://i.imgur.com/UzNKHRL.png
Revert DisposeAsync, it actually isn't needed. Only dispatch Disconnect if we're connected. Add EnableCompression to set deflate options if their socket server supports.
ShaderGraph: Fix default settings for NormalMapTriplanar node
ShaderGraph: Triplanar texture mapping nodes
ShaderGraph: Triplanar node tweaks
Tweak stats flushing logic
Added BaseGameManager.OnEscapePressed()
Add Cloud.ParticleSystem, Cloud.SoundEvent, Cloud.Shader
Put developer preview in a few places so people don't think it's a finished game
Dump embedded wav phonemes to sound meta if we don't have a meta, meta takes priority over embedded
FPArms: include the hand_*_to_weapon_IKrule bones in the "X arm only" weightlists
foliage shader: transmissive features (transmissive in general seems fucked though, one for sam though)
If -project was already added but inactive, make it active
Stop opening cloud menu for -project launched games
ComputeShader use Material.FromShader, support using resource paths e.g new ComputeShader( "shaders/cs_compress.shader" );
Don't call Environment.Exit on ProcessExit, but make sure we still flush managed SentrySdk just before TerminateProcess
Setup model viseme data and phoneme mapping from model keyvalues
Drive faceposer with model viseme data while we have this tool
Update mouth state
Apply visemes to baseanimating with game weights
Flex overrides takes priority over game weights
Add phoneme mapping to model metadata so it doesn't have to be hardcoded in engine
Add hotload support for svgs
Restrict people doing dumb stuff like flushing the stats after ever increment
Increase time between stat refreshes
Add ComputeBuffer<T> class for creating, reading and writing GPU buffers for usage with ComputeShader
Structured buffers, byte address buffers and append structured buffers are all supported.
https://wiki.facepunch.com/sbox/Compute_Shaders
Add synchronous IRenderDevice::ReadBuffer and asynchronous IRenderContext::ReadBuffer
Add ComputeBuffer class for creating, reading and writing GPU buffers for usage with ComputeShader
Can be passed to RenderAttributes.Set( string, ComputeBuffer )
Read data from GPU with ComputeBuffer.GetData<T>( Span<T>, int, int )
Add ComputeBuffer.SetData( Span<T> ) and ComputeBuffer.CopyStructureCount( ComputeBuffer, ComputeBuffer, int )
Can set/copy data outside a graphics block
Flush this shit when using ComputeBuffer in a sync way, I'll do it a different way for an async/callback API
API makes more sense to be ComputeBuffer<T>
Drop access type to keep things simple, add List<T> SetData variants, add elementOffset arguments, additional error checking
AppendConsume buffers still need the structured buffer flag too
ComputeBuffer<T>.CopyStructureCount<U>( ... ) YUCKY generics
Don't make ByteAddress buffers with unordered access
Docs, GetData alternative with no count, checks for disposed buffers
WebSocket implements IAsyncDisposable. When disposing websocket because of TaskSource cancellation, do so async and complete the WS close handshake if we can. If we receive a ConnectionClosedPrematurely message, only actually disconnect + dispose if the connection is no longer open. Call TaskSource.OnSessionEnded in GameMenuDll when resetting environment.
Can access friends list from IGameMenu (Game.Menu.Friends)
Make stats flush less spammy
Api for getting player stats