6,494 Commits over 3,347 Days - 0.08cph!
Improve animated sceneobject bounds, include render bone sphere radius, fallback on mesh bounds
ModelDoc option to disable keyframe interpolation to allow for constant keyframe animations
Reset anim graph instance on model change
Transform local bounds by scene object transform in CMeshSystem::ChangeModel, fixes incorrect bounds on mesh renderer model change
Add Model.Physics.Surfaces to get all physics surfaces used in a model
Created bone objects on skinned model renderer update on model reload and model change
ShaderGraph: Fix ScreenPosition.XY incorrect component count
Sprite shader flips with uv sign
Add SpriteRenderer FlipHorizontal and FlipVertical
ModelPhysics recreates physics on active model change, fixes some props not initializing physics when created in code
Fix terrain trace hit normal
Support per triangle physics surfaces on mesh shapes https://files.facepunch.com/layla/1b1411b1/sbox-dev_WzjagCCSeA.mp4
ImageFormat.Default uses RGBA8888
Izabu: Don't try to destroy null proxy
Make PhysicsBody Enable and Disable actually work, remove shapes from broadphase and insert them back on enable
Don't trace disabled bodies
Null checks in RefreshContacts
Refresh physics contacts on tag change https://files.facepunch.com/layla/1b1311b1/sbox-dev_PEDseyvLqF.mp4
Fixed joint keeps the bodies fixed where they are at the moment of joint creation instead of snapping
Joint gizmo just draws a line from self to target game object
Fix prismatic disabling limit when it shouldn't
Create slider with 2 pivots and an axis, this makes the most sense
Base joint passes two physics points for joint creation
Do a pass on all joints to make sure their local frames make sense
Izabu: Move triangle shifting further up the callstack so the fix gets applied to sphere and capsules too
Fix async warning in PreviewMesh
Make joint more robust in finding physics bodies, improve the gizmos a bit
Better anchor points for spring joint
Fbx serializer is too spammy
Ignore unknown color formats in CMesh::CalculateInputLayoutFromAttributes
Don't create model for preview mesh if there's no valid meshes
Don't preview smd for now
Asset preview for fbx, obj, smd https://files.facepunch.com/layla/1b1211b1/sbox-dev_uPe3bKuNAh.png
Proper fix for hull vs mesh at large coordinates (thanks dirk)
IzTriangleHull calculates center with doubles, I have no idea why this fixes triangle collision but it does
Check all conditionals in SerializedProperty.ShouldShow, should make multiple ShowIf's work again
This bounds checking in izCreateBVH is wrong
Same bounds fix for DirtyControlMapRegion
Hide terrain component, don't create this manually
Make block primitive hollow option work
Clamp instead of throw in DirtyHeightmapRegion so we can paint on terrain boundary
Collide against heightfield grid instead of trying to triangulate it exactly, slightly less accurate but faster
Draw open edges with half thickness
Render open edges with smaller thickness until I render hash marks for them
Add PolygonMesh.IsEdgeOpen
GetEdgeVertices has two out vertices, instead of returning array
Create grid debug shape for heightfield, faster but could be faster
Don't build steam audio static mesh for heightfields, too slow currently (do we care?)
Update terrain collider when terrain is dirty
MeshEditor: More robust u and v axis face calculation, only set texture axis if the face can calculate a valid normal
Delete block tool scene object if creation gets cancelled
Support heightfield in CPhysicsShape::GetTriangulation
Move resize box to world space position before snapping it https://files.facepunch.com/layla/1b0711b1/sbox-dev_fVEF49E04T.mp4
Protect against invalid transform in CPhysicsBody::AddMeshShape, fixes crash some games are having
Refactor ray and shape cast (#78)
Shape casts are more naturally expressed as an origin transform with
translation. Ray casts now use this convention as well.
cast (start,end) -> (origin,translation)
Add support for multiple cast hits with a callback. Added test for this.
Improved test bed with:
- first person camera on right-click
- tree view for tests
- all tests in cpp files for faster iteration
- tests are now categorized
- save/load of settings
shape cast penetration (#79)
Simple penetration computation for sphere and capsule casts that
initially overlap.
Must be within radius. Deep overlap not supported.
For sphere or capsule versus mesh, returns the deepest triangle.
Added buffering and flushing for text rendering.
Report penetration for all cases (#80)
Report final penetration in all cases, this lets a character mover sweep
and resolve.
This is needed because shapes with a radius may have a small overlap at
the end of the shape cast.
fixes:
- sleeping assert
- sleeping tolerance use length units
- fix shape filtering in broad-phase
Cast bug fix (#81)
missing case in recent refactor
Fix some more cast callback conditions (#82)
more testing, more bugs
fixed sample
IK Solver (#83)
Izabu:
- Initial commit of full-body IK solver and test
Body Definitions (#84)
overlap tests
remove bvh alignment
eliminate duplicate swing/twist functions
eliminate redundant limit macros
simplify unaligned SIMD load
beginning of C API
Fix Unreal build (#85)
Closest point on body (#86)
Also fixed sleep
Re-arranged GJK proxy to remove hole in struct
Tested closest point in Explosion sample
Events (#87)
Event arrays are available at the end of the time step instead of using
callbacks.
Added a faster array for simple data types.
Shape definitions for more efficient shape creation.
Event fixes (#88)
Added hit events and a world level threshold. Captures the manifold
point with the largest approach velocity.
Added stack array (but not used yet).
Added test for hit events.
Added initial relative normal velocity the the manifold. We can use this
later for speculative restitution.
No longer copying manifold data to begin events.
All events are configured on shapes and all are off by default.
Axis lock
Joint active
Joint breaking
Joint break callback
IZ_LINEAR_SLOP
ShouldCollide callback
Ignore izShouldCollide(Body, Body) if one of the shapes is a sensor
Sphere query broadphase
Heightfield shape
Mesh contact checks IzConcaveShape
Dont calculate mass for heightfield