22,460 Commits over 1,614 Days - 0.58cph!
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
Clean up CLoopTypeClientServer::Update (I think this makes sense?)
Fix client tick input context not pushing
Clientside Anim Fix (#1188)
Register model meta as file dependency
Allow managed to add to modeldoc tools menu
Add viseme editor https://files.facepunch.com/layla/1b2511b1/sbox-dev_QrIn49oBOM.mp4
Compile viseme data into citizen model
Throw an exception when Package.Download gets cancelled, fixes #1184 and sboxgame/issues#3677
This UI shader tweak makes it so that full screen panels don't have a 1 pixel gap around the edges
Editor play controls
Fix stylesheet absolute paths not resolving on listen server
Add Service.Stats.FlushAsync - Send any pending stats to the backend and wait for ingestion
Can edit stylesheets when paused in listen server
Fix FlushAsync
Tentative fix for rich presence setting steam_player_group to invalid SteamIDs, grouping players incorrectly
Fix clothing container causing assert when calling SetBodyGroup on a entity with no model
FPArms: added new debug animations for twist constraints, moved debug anims into prefab
Rubikon: Sphere shape keeps a unscaled copy so rescale can never be incorrect, fixes sphere scale out of sync on client. Sphere and Capsule refresh debug shape on rescale.
Fixed game menu Input not working
Added ThreadSafe.CurrentThreadId (fixes sboxgame/issues/issues/3679)
Re-organise these UI files to be less confusing
Re-organise these UI files to be less confusing
Add Input.Context
Fix gamemenu losing mouse cursor
Merge fix
Moved more core assets to asset party
Delete unused method
Fix and simplify condition that could never be true
Update compiled shaders with AO changes
Attempt to treat mousewheel input more logically
Continue to update mouse position in relative mode even though it makes no sense
[Pick] Composite baked AO into diffuse lighting
Fix SSR traces not being able to backtrace, do linear search when doing backtracecs
https://i.imgur.com/UzNKHRL.png
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
[Pick] Composite baked AO into diffuse lighting