Splines: Add working state from a couple of months ago (pre FP)
Basically a port of my C++ spline library wrapped with a component + editor tool.
Still requires some API and Editor UX cleanup.
https://files.facepunch.com/lolleko/1b0911b1/sbox-dev_0KaDTZAF7l.mp4
Nav Basic: Reduce rotation on test slope to account for floating point inaccuracies
Fix obsoletes
Add roughness test scene, Compares if IBL GGX Filter matches reference
Update Roughness_test
Use WorldTransform/LocalTransform
First pass on spline model deformation
https://files.facepunch.com/lolleko/1b1611b1/sbox-dev_pXP1R0vFzj.mp4
https://files.facepunch.com/lolleko/1b1611b1/sbox-dev_1SBGUutgNa.png
Remove stackalloc (it's not whitelisted)
Fix duplicating a spline point with shift not copying roll & scale
Use sceneobjects for spline model instances instead of Graphics.Draw
Deform spline model bounds to ensure accurate frustum culling
https://files.facepunch.com/lolleko/1b1611b1/sbox-dev_FuFEWnL2FA.png
https://files.facepunch.com/lolleko/1b1611b1/sbox-dev_xrWVBJicsC.png
PoC spline collisions
Currently just super hacky static mesh/model collision
https://files.facepunch.com/lolleko/1b1711b1/sbox-dev_03QtKgtfYW.mp4
Update trails scene
Hull based spline collisions
Allows proper physics simulation of the spline models.
Works okay for boxes, still need to figure out why izabu quick hull struggles with more complex shapes.
https://files.facepunch.com/lolleko/1b1811b1/sbox-dev_YFlVR7whUv.mp4
Filter duplicate vertices after spline deformation and before qhull
Update terrain scene, adjust things, envmapprobe had inverse scale (wtf), use ibl, should be a good starting point to have a terrain with nice lighting setup
https://files.facepunch.com/sampavlovic/1b1911b1/NLZEcHl7Uh.jpg
Spline collider now supports all collision shapes
Added custom subdivision logic for each shape.
How much subdivision/collision geometry is created can be controlled by the user via property.
Performance still sucks, but optimization should be easy going forward.
Individual bone/shape transforms are currently not working.
https://files.facepunch.com/lolleko/2024/December/19_18-49-AnotherDrongo.png
https://files.facepunch.com/lolleko/2024/December/19_18-48-SecretNuthatch.mp4
Add Shader Classes Test
Spline Collision Support BoneTransforms and Rotation
Spline collider now provides accurate collision for any shape and any rotation.
Deformed/Twisted citizens with collisions:
https://files.facepunch.com/lolleko/2024/December/23_12-34-DishonestQuagga.png
https://files.facepunch.com/lolleko/2024/December/23_12-34-HorribleNightheron.png
Cleanup Spline Editor
Proper undo support for gizmo initiated changes
Frustum cull Gizmos as they are fairly expensive to create.
Optimize Gizmo drawing.
Defocus input when switching spline point
Bounding box calcualtion for spline components
Fix typos
Improve spline editor undo
fix PlayerSquish collision
Revert "fix PlayerSquish collision"
This reverts commit 18ba5597c624789e8e8b999e7b64bd33ae33e4ae.
More spline undo improvements
Fix spline gizmo culling
Bump hitbox of spline line
Align tangent mode names with exiting curve class
Fix roll and scale changes not invoking spline changed
code -> Code
Rename some vars in spline math
Scene reproducing Facepunch/sbox#1756
Cleanup spline components and test scene
Fix spline loop (de)serialization
Remove GetNormal function from spline component for now
There are so many different ways to calculate normals for splines (Frenet-Serret-Frame, Fixed Up Vector, RMF/Parallel Transport...)
Not sure yet, which one we want to offer.
Binary search for accessing splines at a distance
Fix some NREs in spline model renderer
Play around with tangent frame calculation using Parallel Transport / RMF
https://files.facepunch.com/lolleko/2025/January/07_20-51-CriminalBlackfish.mp4
Move spline deformation away from vertex shader to allow deformation of arbitrary models
Deform spline models on the CPU like a cavemen.
Use RMF to avoid twisting artifacts.
Will move this to a compute shader eventually.
https://files.facepunch.com/lolleko/2025/January/08_10-35-AgileHectorsdolphin.png
More customization for tangent frames/up vectors
This is useful for stuff like loops.
1. Default Up Vector (0,0,1) -> twisting artifacts:
https://files.facepunch.com/lolleko/2025/January/09_17-52-OrangeredCowrie.png
2. Automatic up vectors using rotation minimizing frames (RMF)
https://files.facepunch.com/lolleko/2025/January/09_17-53-DesertedClam.png
3. Manual up vectors/frames:
https://files.facepunch.com/lolleko/2025/January/09_17-52-MisguidedWryneck.png
Some Model Deformation optimization
Still only on the CPU but it's surprisingly fast
https://files.facepunch.com/lolleko/2025/January/09_21-39-VacantIridescentshark.mp4
Add spacing parameter
https://files.facepunch.com/lolleko/2025/January/09_23-00-AngelicVipersquid.mp4 🚂
Update Spline Collider to match new SplineModel Deformation
https://files.facepunch.com/lolleko/2025/January/09_23-59-LinearAlligator.png
Delete legacy/unused deformation code
Enable Global Scale for spline models
https://files.facepunch.com/lolleko/2025/January/10_11-16-TintedAfricanparadiseflycatcher.png
Base SplineModelRenderer of ModelRenderer
Allows Tint, MaterialOverrides and other options to be used on spline models
Cleanup spline component & tool naming
Update Test Scene
https://files.facepunch.com/lolleko/2025/January/10_18-17-TornAllosaurus.mp4
Fix water shader scene name
Add ParticlePhysics test
Scene testing dynamic action graph properties
Remove GTAO include code from scenestaging
DynamicReflections component stub
Update Viewmodel scene with ssao also showcasing proper prepass
New decal
Direct port of IES Profile Texture from hackweek into TextureGenerator, use Source instead of a file for now
https://files.facepunch.com/sampavlovic/1b2611b1/OCXtsLYQSC.png
Update decals test scene
Scene reproducing Facepunch/sbox-issues#7443
Iterate Dynamic Reflections Component, add shader
Iterate Dynamic Reflections Component, almost feature complete
Merge branch 'main' into navlink-scene