userPilgrimcancel
branchrust_reboot/main/prop_optimisationscancel

44 Commits over 31 Days - 0.06cph!

13 Days Ago
merge from main
14 Days Ago
merge from main
14 Days Ago
Bee grenade world model pass jar bees combined 17 -> 1 renderer in the shared WM Jar Bees prefab with LOD Group slots re-pointed on world model, held entity and tin can alarm updated body LOD0 6586 -> 4618 tris and LOD1 3412 -> 1705 viewmodel backface and blur glass removed from the world model, 29 -> 11 transforms with no real visual difference at that size
14 Days Ago
De-rigged the M92 world model - 3 skinned renderers over a 4 bone rig replaced with static meshes from a new w_m92_worldmodel.fbx, LOD0 3532 -> 1766 tris, LOD distances and highlight unchanged
14 Days Ago
Two world model prefabs, both had no LOD component and drew at any distance: Added MeshCull to laser detector and door controller worldmodels, both had no LOD and drew at any distance (60m / 100m)
15 Days Ago
Deploy guides for the 21 heaviest guideMesh deployables switched from LOD0 to LOD1 in the Deployable component, guide tris 209,286 -> 89,540. Furnaces, computer station, lab chair, barrels, kayak, piano, medieval box, jukebox, scarecrow, purifier, repair bench, water catcher, fish trap, table lamp, hazmat plushy, standing mirror.
15 Days Ago
Optimised Small_Engine and SteeringWheel_Tier2 deploy guides. Small engine guide now uses LOD2, tris 23699 -> 5288 Steering wheel guide combined into one mesh from the LOD1 base and wheel, renderers 2 -> 1, guide draws 2 -> 1, tris 11162 -> 4929
15 Days Ago
spotlight tripod guide combined into one mesh and one renderer. Renderers 4 -> 1, guide draws 4 -> 2, built from the LOD1 parts so 7.6k tris -> 3.8k looks exactly the same
15 Days Ago
tier 3 workbench guide combined into one mesh and one renderer. Renderers 3 -> 1, guide draws 3 -> 1, built from the LOD1 parts and tidied in blender so 7.1k tris -> 2.9k, on the shared guide_opaque material
15 Days Ago
wind turbine guide combined into one mesh and one renderer. Renderers 4 -> 1, guide draws 20 -> 8, rebuilt from the LOD1 parts in blender so 20.9k tris -> 8.2k
15 Days Ago
further optimisation to the boat building station guide mesh guide draws 9 -> 2
15 Days Ago
boat building station guide combined into one mesh and one renderer. Renderers 2 -> 1, station dropped to LOD1 and platform to LOD2 so 45.7k tris -> 14k
15 Days Ago
chandelier guide combined into one mesh and one renderer. Renderers 14 -> 1, guide draws 23 -> 4, rebuilt from the LOD1 parts in blender so 26.7k tris -> 11.4k removed a duplicate cable that had both LOD0 and LOD1 active in the guide
15 Days Ago
sail guide combined into one mesh and one renderer. Renderers 25 -> 1, guide draws 26 -> 3, sail body optimised from LOD0 in blender so 22.8k tris -> 10.4k arrows rebuilt as a single mesh replacing the 24 unity cubes the back of the sail fabric now shows in the guide where before only the front rendered https://files.facepunch.com/pilgrim/2026/September/02_14-38-MeatyBoilweevil.mp4
15 Days Ago
cannon guide combined into one mesh and one renderer. Renderers 11 -> 1, guide draws 11-> 2, built from the LOD1 parts so 24k tris -> 15k cannon_base LOD chain fix also fixed deployable telephone to properly reference LOD2 instead of doubling up on LOD1 from 15m -> 50m culling distance.
16 Days Ago
workbench upgrade visuals now share the workbench LOD distances 1/50/150 cull 250, this also matches the workbench upgrade empty states added the missing cull states on recyclebin, salvage and efficiency and fixed engineer culling at 25m now a lot more consistent and unified
16 Days Ago
added the missing cull state to 5 props that drew their last LOD forever - pork and wolf oven meat, small battery, satellite control console, kayak paddle
16 Days Ago
fixed raw and spoiled pork ran LOD0, 1, 2, 3, then LOD0 again at 35 m, so past 35 m they draw eight times more than at 15 m never culling. fixed Human meat and wolf meat (oven and raw) had a similar issue but repeated their cheapest mesh instead of culling.
16 Days Ago
merge from main
17 Days Ago
merge from main
17 Days Ago
LOD pass on computer station + mixing table decor - computerstation.FBX re-exported with proper LOD meshes; computerstation.static LODGroup -> RendererLOD, deployed + apartmentcomplex variants updated for the new model - MixingTable.Decor: glassware/water existed twice - embedded invisible in the table LOD meshes and again as 9 separate LOD0-only renderers on top; re-exported as one clean 3-LOD mesh with the glass material live, 12 renderers -> 1, LODGroup -> MeshLOD
17 Days Ago
LODGroup/RendererLOD -> MeshLOD conversion pass on vending machines, covered ch47/bradley props and tin can alarm: 129 -> 75 renderers, 23 -> 6 LODGroups, brings them into the LOD grid + occlusion culling - vendingmachine family x5: RendererLODs collapsed to MeshLODs (55 -> 33 renderers) now can occlusion cull - covered bradley/ch47 x6: LODGroups converted, wraps stay RendererLOD where materials demand it (66 -> 39 renderers); ch47_covered, ch47_covered_wrap + bradley_covered_wrap FBXs re-exported so LOD material order matches - tincan.alarm: split into frame + cans MeshLODs so the rattle anim survives (8 -> 2 renderers); worldmodel onto MeshLOD too
18 Days Ago
fixed blowpipe world model material order so it can be converted to meshLOD
19 Days Ago
Medieval AK gem material tweak: fixed refraction scale 75cm -> 2cm, corundum IOR, proper transmittance - reads as gemstone instead of grey glass https://files.facepunch.com/pilgrim/2026/August/30_10-00-InsubstantialManta.mp4
19 Days Ago
Medieval AK worldmodel: baked 6 materials / 3 texture sets down to one 1024 atlas material 6 draws -> 1 per LOD; re-UV'd mesh, rebuilt LOD chain, gems baked opaque arguably looks better than before for the gems especially as i can't justify 6 materials just for a world model of this scale. https://files.facepunch.com/pilgrim/2026/August/30_09-27-CoralBighornedsheep.mp4
19 Days Ago
flamethrower world model optimisation combined the two parts into one mesh per LOD in engine, converted to a MeshLOD renderers 6 -> 1, highlight draws 2 -> 1, culls at 35m, triangles unchanged
19 Days Ago
assault rifle world model optimisation - combined the 4 part FBXs into one model and converted the LOD group to a MeshLOD - renderers 12 -> 1, highlight draws 4 -> 1, triangles unchanged, culls at 35m - combined the ak47u's 4 part FBXs and the medieval's rifle+mag into single models - converted the ak47u, medieval and jungle world models from LOD groups to MeshLODs - removed the medieval's 23.6k tri LOD0 - its chain is now 13k/5.3k/2.1k - renderers: ak47u 12 -> 1, medieval 8 -> 1, jungle 3 -> 1; highlight draws all down to 1
19 Days Ago
boat building station optimisation its 7 buoys were embedded pre-merge copies of the ocean wreck buoy optimisation i did on changeset 162514 - replaced their 280 seaweed/mussel renderers with the buoy merge's existing combined meshes combined the remaining seaweed clumps in the station and platform prefabs (6 -> 1 and 5 -> 1) with wind origins baked into UV2 none of the seaweed was ever batching at runtime renderers 340 -> 65, prefab 1.4mb -> 296kb, seaweed is now 9 draw calls instead of 263!
19 Days Ago
satellite crash remains optimisation combined the 32 loose debris pieces into a single mesh with a MeshLOD - shadows now turn off past 25m for these, and it culls at 100m (previously it drew at every distance) converted the dish from a LODGroup to a RendererLOD with the same switch distances, and zeroed the LOD child offsets so it collapses to a single renderer at runtime both the dish and debris now register as occludees, so terrain and buildings can occlusion cull them - the LODGroup never could renderers 44 -> 13, debris draw calls 32 -> 1
19 Days Ago
merge from main
20 Days Ago
slightly improved the quality of the vending machine texture & improved the cable faceting. Re-implemented the internal shadow box to fake the interior depth but this time merged it to the vending machine geometry, reducing a draw, and also allows me to change the culling mode on the vending machine material from 'off' to 'Back'. This means that the Vending machine no longer renders every triangle twice. This would have also affected the gibs too that inherit the same material.
20 Days Ago
some additonal settings to carry over
20 Days Ago
chinook locked crate optimisation crates + cage combined into one mesh with a single MeshLOD (1/5/15/25, cull 150) chainlink merged into one mesh renderers 16 > 9 LOD components 11 > 4 objects 48 > 40 draw calls 10 > 4 up close, 3 past 20m fence tris 1,000 > 10 tris at 25m 4,064 > 1,032
20 Days Ago
ocean wreck buoys - combined the seaweed and mussels on all three renderers 128 > 23 across the three LOD components 115 > 8 gameobjects 153 > 48 prefabs 482kb > 124kb
20 Days Ago
folding wicker beds B C D E - combined into one mesh each frame, fabric and pillow all share Folding_Wicker_Bed_A, so each bed combines into one mesh per LOD band with a single MeshLOD - every bed is one object now renderers 10 > 4 across the four LOD components 10 > 4 gameobjects 10 > 4 prefabs 44kb > 26kb tris at 18m 23,336 > 6,200 last lod under the vert cap on all four so they batch
21 Days Ago
gun display racks - merged weapons and hooks on all three. each rack was 10-12 renderers with a separate MeshLOD chain each. weapons combined into one mesh per LOD band, hooks into one, one MeshLOD each LOD components 32 -> 10 gameobjects 44 -> 19 draw calls 35 -> 20 colliders 32 -> 3 last LOD tris 15,282 -> 6,486
21 Days Ago
cherry picking from wooden box storage optimsation
21 Days Ago
cherry pick from bed optimisations
21 Days Ago
cherry pick from large wooden box
21 Days Ago
cherry pick from mixtable prt2
21 Days Ago
chery picking from mixing table optimsations
21 Days Ago
cherry picking from small stash improvements
21 Days Ago
cherry picking from gutter opts
21 Days Ago
cherry picking from binbag_pile and card table optimisations