20,828 Commits over 1,522 Days - 0.57cph!
Fix shadergraph node drag drop, drag data needs to be full class name now
Fix trying to access null asset metadata, because of 0bc9a60
Fix asset publish widget not properly checking if source file doesn't exist, fixes inspector not working for cloud assets
Loop select https://files.facepunch.com/layla/1b0111b1/sbox-dev_EaJSH5kbqn.mp4
Fix typos and get bindless cookeies on shader, m_lightCookie is just a standard HRenderTexture now
Remove all references to lightcookiemanager, add Texture2D GetLightCookieTexture() to lightbinner
Fix wireframe toolbar button not setting checked state
Remove all references to lightcookiemanager, add Texture2D GetLightCookieTexture() to lightbinner
Remove ilightcookieutils, cookieslice, etc
Terrain: use bindless textures
Terrain: use roughness from normal alpha
Expression graphs can have signals
Means they can use variables, and control flow like conditions and loops
Remove now unused m_bNeedsRender
Update shaders
Sort envmaps by priority
Fix music player spectrum returning 512 samples when only 256 is being used
Remove remainder of CPU-driven code for cubemaps, rename indooroutdoorlevel to just renderpriority
code cleanup, improve comments
Stop sounds on sound asset reload
Disable frustum shadow map culling using volume cullers, the view we render for the shadow is already doing frustum culling so I'm not fully sure if this is doing anything, on CS2 it seems to only be used for barn light shadows anyway ( And with an explicit illumination bounds OOB )? Fixes shadow flickering on props
VR: Don't submit or wait for poses if the headset is in standby (prevents editor stalling when headset goes idle)
Shapshot -> Snapshot in loading screen ( Fixes Facepunch/sbox-issues#5439 ) 😂
Some clearer documentation
Interpolation v2 (#1516)
* Test
* Clean up - use TransformInterpolate class
* Can't modify transform if we're a network object root and a proxy - we must stay true to network transform target
* Hook up Interpolation enable/disable from Inspector. When Owner calls ClearInterpolation, set a bit on the update msg to have other clients do so as well. Hook up Network.Interpolation and Enable/DisableInterpolation() on the accessor.
* Fix to allow interp property to be set by GameObjectHeader
* Serialize the interpolation bool with GameObject
* Combination of fixed update interpolator and networked interpolation buffer. Working nicely
* Some cleanup
* Some extra docs + let's call it Query to match the other class
* Use Time.Now
* Restore backward compat LerpTo
* Cull after, ensure move direct to last tx if query out of time but entries remaining
* Fix formatting
* Tiny tidyup
* Add InterpolationSystem (GameObjectSystem) - update GameTransform to Add/Remove GameObjects from this system as appropriate
* Actually enable it
* Add new Interpolation stage - the updates need to happen at the right point. Clear interpolation if interpolation isn't enabled and we receive a transform update
RPC Filter (#1549)
* Update documentation
* Add recipient filter struct, type, and Rpc.FilterOnly and Rpc.AllExcept methods
* Update documentation
* Change filtertype options
* Move to Connection.Filter. Can pass optional filter to Broadcast. Use this for Rpcs with current filter.
* More docs
* Same logic for static Rpcs
* Add single Connection overloads
* this can be made private
* Fix ambigious docs
* Inverse logic (doh!)
* Use hasvalue etc
* Some fixes
* Remove duplicate docs
* Better docs
* RPC in log for consistency
* Add overloads for filtering RPC recipients based on a predicate
* FilterOnly -> FilterInclude. AllExcept -> FilterExclude. Only one RPC filter can be active at any time
* Add Rpc.Resume. This handles disabling and restoring filter if the Rpc.Caller is us before and after resuming. Use this everywhere.
* Restore the old filter here even if e.Resume() throws
* Early out / cut nesting
* Tidy up
Add library_install command (for editor)
Mount asset filesystem from libraries
Uploading libraries allows fbx files
Add Game.Ident (fixes sbox-issues/issues/5435)
Force push compiled surfaces & decals
Fixes Facepunch/sbox-issues#5429
Add [TestClass] to LibraryTests in library template
Fixes Facepunch/sbox-issues#5418
Add some gizmo handles for VR components
Make Component.Reset() reset its PropertyAttribute marked properties
Return old studio lighting scene
Fix typo, not meant to pass high precision offset to fog, just direct position
https://i.imgur.com/EGNuSTA.png
Remove references to texture cube arrays
Remove all CPU path for envmaps, bindings, fingerprinting, etc, should've removed 3 years ago but now we're ready for it
Shadow Cache + Time Sliced Shadows (#1535)
Print actual lightdesc for shadow map on debug markers, cleanup
Readd shadow volume culling, CDrawShadowMapsForLightParams has all frusta inside itself, no need for multiple
Readd shadow volume culling, CDrawShadowMapsForLightParams has all frusta inside itself, no need for multiple
Remove all atlas downsampling bullshit, not even being used
Backport shadowcache from CS2
Backport more shadowcache code from cs2, start adapting lightbinner for new layout
Remove ConsiderLight and LightEntry, they're bullshit now and overcomplicated, used to figure out which lights had priority but not needed anymore, data flow is leaner now
Time sliced shadows + shadow caching
Remove shadow template views, doesn't make sense to have this code duplicated and makes it harder to work with it, I don't think we use those HLVR constants the code mentions, and if we do it should just be on the standard pipeline
Vulkan: Fix ClearImpl not respecting layer viewports smaller than the screen, and instead just clearing everything with a fast renderpass, this caused issues when we want to just clear a small rect
lb_time_sliced_shadows, fix directional lights not showing up, clear each rect when wanting to draw rather than having a complicated shadow atlas clear system
Make CSM to be re-rendered for each view since they are view-dependent, but we can keep the same tiles we reserved
Static vs. Dynamic object rendering for FindOrCreateShadowMapsForLight
Fuck off with subrect clearing on shadowcache, we do it much simpler on draw now which is guaranteed to be clean, our goal is to go bindless too so it doesnt even apply
Pass per view lighting constants to shadow, transition barriers to fog
Fix file move on vpc for shadowmap_texturebarrier_renderer.h
Make atmospherics on shadingmodel take position with offset directly, recompile terrain with it, fixes volumetric fog on terrain
Revert "Temporarily use batch publisher for "Upload" button in AssetPublishWidget, since it's doing nothing currently"
This reverts commit 0985ef78fcb2e16747cb76f1e1c95a48d8567405.
Fix publish page missing on certain package types
Fix HasCodePath, HasAssetPath not working for single asset projects
VR: Fix angular velocity & velocity coordinate conversion
Restore the old filter here even if e.Resume() throws
Add Rpc.Resume. This handles disabling and restoring filter if the Rpc.Caller is us before and after resuming. Use this everywhere.
FilterOnly -> FilterInclude. AllExcept -> FilterExclude. Only one RPC filter can be active at any time
Fix EventSystem null exception
LibrarySystem read/save version property, support switching versions
Add new Interpolation stage - the updates need to happen at the right point. Clear interpolation if interpolation isn't enabled and we receive a transform update