17,199 Commits over 1,308 Days - 0.55cph!
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
Add InterpolationSystem (GameObjectSystem) - update GameTransform to Add/Remove GameObjects from this system as appropriate
Add overloads for filtering RPC recipients based on a predicate
VR: keep track of input deltas manually
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
RPC in log for consistency
BufferedHashSet<T>: For safely iterating over a hashset that can be modified without needing a copy
Optimize GameObject.Network, we do not need to constantly find the network root, it should only be set on network spawns and parent changes
Sandbox.Game convars work in editor again
Codegen IUpdateSubscriber and others on Components that implement those methods
Scene update loop only iterates over enabled components that implement each of their methods; OnUpdate, OnFixedUpdate, OnPreRender
Add single Connection overloads
Same logic for static Rpcs
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
BufferedHashSet<T>: For safely iterating over a hashset that can be modified without needing a copy
Optimize GameObject.Network, we do not need to constantly find the network root, it should only be set on network spawns and parent changes
Sandbox.Game convars work in editor again
Codegen IUpdateSubscriber and others on Components that implement those methods
Scene update loop only iterates over enabled components that implement each of their methods; OnUpdate, OnFixedUpdate, OnPreRender
Always explicitly keep a reference to delegates passed to native (#1546)
Always explicitly keep a reference to delegates passed to native (#1546)
BufferedHashSet<T>
Use BufferedHashSet<Component> to safely iterate components without a copy
Name this ComponentSubscriberInterfaces, name interfaces IUpdateSubscriber etc.
Write the version id with downloaded package
Update library template
Update library template
Cleanup
Test out this iterator safe workset collection, this probably has some fancy standard name
Codegen adds Sandbox.Internal.IWantsOnUpdate etc. when those methods are found on Component derived classes
New update mode, iterating over components with IWants interfaces
Sandbox.Game convars work in editor again
Run legacy game loop on older assemblies
Make sure we run interpolation on the new loop, this is being rewritten atm so I don't wanna touch it
Optimize GameObject.Network, we do not need to constantly find the network root, it should only be set on network spawns and parent changes
Check Component.IsValid() just in case they've been immediately deleted
Add mutex on read/writing m_CulledLights, guarantees it won't be overwritten twice while doing a callback before finishing rendering next frame or would write while allocating lights
Fix baked fog on scenes, only enable volumetric fog if there are any fog volumes in scene
https://files.facepunch.com/sampavlovic/1b2511b1/image%20%289%29.png
Temporarily use batch publisher for "Upload" button in AssetPublishWidget, since it's doing nothing currently
Don't make asset metadata for cloud assets, since we're mounting downloaded cloud stuff first, asset browser tag code is generating fake metadata for all this cloud stuff and causing problems when we're wanting the real metadata
CitizenAnimationHelper: FootShuffle becomes more generic MoveRotationSpeed, update docs for what this parameter is doing now