userDaniel Pcancel

2,871 Commits over 730 Days - 0.16cph!

Today
Update(debug): allow to filter occlusion culling debug to just 1 specific instance via culling.debugid - added editor only way to copy id (need a way to do this in standalone) Tests: used it to isolate apartment corridor wall (still pants to use though, need something better)
Today
Update(editor): occlusion hiz overlay - "auto-expose" depth overlay Original implementation made it very difficult to discern anything in enclosed spaces Tests: used it in apartments
Today
Update(editor): use same color for lod level of occludee when rendering ss bounds - also added memoization of lod level Tests: none, trivial change
Today
Update(editor): use different colors for visualizing occluidee screen-space bounds Red for dynamics, cyan for statics, purple for grid Tests: visualized swing - saw all 3 colors
Today
Bugfix(editor): fix dynamic occludees rendering sphere in LS, instead of WS - use cached location to help detect slow updates to dynamic occludees Tests: visualized bounds of swing seats - they're no longer at origin
Today
Merge: from main
Today
Remerge of before due to submit race
Today
Merge: from renderbatch_meshlod_improv - Update: reimplementation of previous bugfix to be cheaper Tests: pasted a boat, flew out and back - props were there
Today
Optim: simplify prev bugfix, don't early initialize LOD managers Tests: pasted a boat, flew out and back - props were there
Today
Bugfix: from renderbatch_meshlod_improv - Bugfix for disappearing props on boats Tests: paste a boat, flew out of range and back - all props present
Today
Bugfix: fix initialization race of LODComponent on whether it's dynamic or not - Now both ToggleDynamic and OnEnable can initialize managers+occlusion When loading from network snapshot, it was toggling dynamic state before it initialized managers, leaving it in a half-dynamic, half-static state Tests: spawned a copy paste boat, all entities were present. Flew out of net range and back - all's there
Today
Merge: from main
Yesterday
Merge: from furniture_occlusion_fix - Reimplement previous bugfix to retain furniture culling Tests: rendeted and tried to run in and out, abused noclip, triggered bug once
Yesterday
Bugfix: restore furniture occlusion culling, check both occlusion state and appt flag Tests: rented 601, ran in and out, noclipped a bunch - was able to trigger it only once(abusing noclip) instead of constantly, should be better
Yesterday
Merge: from main
Yesterday
Merge: from main
Yesterday
Merge: from renderbatch_meshlod_improv - Bugfix for basement doors not rendering Tests: booted into apartments island, checked all floors for doors not rendering. Checked room 101 - stuff was rendering
Yesterday
Bugfix: mark appartment doors a/b/c as dynamic - apartments S2P Since they move, they should've been dynamic, but it also causes them to be refreshed and have up to date occlusion state (but no idea why we need this - will chase up later) Tests: booted into apartments island, checked all floors for doors not rendering. Checekd room 101 - stuff was rendering
Yesterday
Update: add visible count to occlusion debug output Tests: used it on craggy while tweaking extra lod steps
Yesterday
Merge: from main
Yesterday
Merge: from renderbatch_meshlod_improv - Bugfix: opening doors should no longer cause them/others to disappear Tests: pasted many doors paste and opened door, flew back and to - all was in place
Yesterday
Bugfix: fix MeshLOD never unregistering from occlusion after animating - when batching gets toggled, notify batching handlers - MeshLOD will toggle culling on notif Tests: paste of many doors, opened couple doors and flew far/close - no more missing meshes
Yesterday
Bugfix(editor): add ResetStaticFields to OcclusionCulling - codegen Tests: spawned copypaste, restarted game in editor - print out doesn't mention lingering renderers
Yesterday
Merge: from main
2 Days Ago
2 Days Ago
Update: add ability to step through higher levels of mip chain to reconfirm visibility - controlled via culling.extralodsteps, default to 0 (same as before) Out HiZ downsampling filter erodes depth at edges of objects, so if objects picks a low mip, there's a good chance it won't see any occluding depth Tests: ran around apartments monument in editor with 0, 2 and 7. at 2 saved only 0.25% percent of drawcalls, but 7 can save up to 10% (will profile standalone later)
3 Days Ago
Update: draw picked hiz lod for occludees in occlusion debug Tests: used debug visualization in editor
3 Days Ago
Bugfix: add using on actionResult to avoid leaking Tests: none, trivial change
3 Days Ago
Merge: from jobs3_as_default - Update: UsePlayerJobs is set to 3 by default Tests: booted craggy and verified server var
3 Days Ago
Update: default UsePlayerUpdateJobs to 3 - codegen Tests: booted craggy, console returned 3
4 Days Ago
Merge: from renderbatch_meshlod_improv - Optim: allow culling to work on MeshLods if they have invalid RenderBatch setups - Optim: Avoid creating batches-of-1-mesh, as that inhibits Unity batching Tests: ran around apartment complex, didn't see rendering artifacts. compared standalone builds, shows 20% fps improvement on my setup
4 Days Ago
Merge: from main
4 Days Ago
Clean: add a comment Tests: none, trivial change
4 Days Ago
Optim: permit MeshLods to use occlusion culling if it has an invalid RendererBatch Taken from 156029. Saves 30% of drawcalls in all 5 test cases, 20% of avg fps improvement in editor(will test standalone later) Tests: profiled 5 test cases, flew around keeping an eye out on weird rendering
4 Days Ago
Optim: don't create procedural batch meshes if they only contain one input mesh This inhibits unity's batching via instancing. In 2 out of 5 scenarios saves 16% of draw calls/~1ms avg in editor Tests: monument island with appts and disabled world prefabs, tleeported to 5 locations and inspected profiler stats
8 Days Ago
Clean(editor): get rid of if bypass for drawing LightOccludee gizmos
8 Days Ago
Optim: LightOccludee - use a smaller occlusion sphere for spotlights with angle < 120deg - updated editor gizmo vizualization to run without starting (still needs sticky gizmos) Tests: booted on appt, went to roof and looked up, penthouse appt lights were culled. Ran around - everything looked okay, no popin
9 Days Ago
Update(editor): change window title label for MotionVectorsChecker Tests: none, trivial change
9 Days Ago
New(editor): MotionVectorsChecker - categorizes all renderers by motion vector mode Can be found at "Tools/Find/List Motion Vector generators" Tests: looked at appt monument - almost everything has per-object mode
9 Days Ago
New(editor): CulledMeshesChecker - finds all meshes without some sort of culling setup Can be found in "Tools/Find/Meshes without Occlusion setups". Tests: ran the tool on appt monument, found ~360 issues
9 Days Ago
New(editor): CulledLightsChecker, reports lights that don't have a culling setup Inspired by ShadowProxyChecker. Can be found in Tools/Find/Lights without Occlusion setups. Tests: Used it to inspect the appt scene
9 Days Ago
Merge: from unity_frame_dump - New(editor): frame debugger dump utility(https://github.com/sputnicyoji/unity-frame-dump) to help analyze what is rendered Tests: used it to dump out a couple passes
9 Days Ago
Update(editor): move the exporter to Window/Analysis We've got too much in Tools Tests: editor compiles
9 Days Ago
New(editor): import and change https://github.com/sputnicyoji/unity-frame-dump - Changed full export to run on the provided user range - added stop full export that still emits the resulting json instead of aborting - Added license Tests: exported a frame from standalone client
10 Days Ago
Buildfix: expose NetworkPosTickCallback setter Tests: none, trivial change
10 Days Ago
Merge: from cargoship_bot_replication_fix - Buildfix: expose setter for NetworkPosTickCallback Tests: editor compiles
10 Days Ago
Merge: from cargoship_bot_replication_fix - Bugfix: fix bots/sleepers disappearing from cargoship Tests: spawned cargoship event, spawned bot, followed them for a couple mins - no houdini
10 Days Ago
Bugfix: ensure netgroup of sleepers/bots is updated when parented to a moving global entity Tests: spawned cargo ship, spawned a bot and moved through net grid for a minute - bot didn't disappear
11 Days Ago
Merge: from dropspectators_nre_fix - Bugfix: fix for NRE that happens when multiple spectators watch a player being banned Tests: 2 players spectated 3rd, banned them - no NRE
11 Days Ago
Bugfix: use reverse traversal avoid NRE caused by iterator invalidation when dropping spectators Tests: 2p spectated 3rd, banned them - no more NRE