7,555 Commits over 3,653 Days - 0.09cph!
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
Bounds checking in izCreateBVH to be safe
Use order attribute in component sheet to allow property order
Add scene mesh tools https://files.facepunch.com/layla/1b0611b1/sbox-dev_Ml4FygXEwC.mp4
Remove these editor checks, we want to still update the mesh while playing
Polygon mesh and mesh component
Add Mesh.TriangulatePolygon to triangulate a polygon without needing a massive library
Move primitive builders to Editor.MeshEditor
Fix scene asset drag drop not working while an asset is already selected
If drag drop trace doesn't hit anything, try hitting grid plane
Check for non uniform scale properly
Approximate hull for sphere collider when it has non uniform scale https://files.facepunch.com/layla/1b2511b1/sbox-dev_cEmmJpViho.mp4
Change nudge shortcut to Alt+ (blocks text input otherwise)
Build runtime models ray trace objects with mesh collision data, this makes more sense for now and doesn't fuck up triangle order when you want multiple materials
Add arrow key nudging to scene menu https://files.facepunch.com/layla/1b2411b1/sbox-dev_jsu3UScQxU.mp4
Add IMaterialSetter for material drops
UseRenderMeshes for material drops as they don't care about tags
Make these functions more readable
Add Rotation.ClosestAxis - Will give you the axis most aligned with the given normal
Add Gizmo.Nudge - Will give you a nudge vector along the most aligned left and up axis of the rotation
Fix PositionEditorTool not snapping properly in localspace
Editor tools can create subtools, move, rotation, scale become subtools
Change Gizmo.Contol.BoundingBox to new box resize gizmo because this function isn't being used anymore
Create runtime buffers for dynamically created meshes so they can create trace data, allows them to be scene traced
Early out of CreateToolsTriangleList when there's no runtime buffers but also assert because ideally this should happen
Init frustum as ortho when using ortho, fixes PointToScreenPixels. Obsolete OrthoWidth
Adjust size of EnumControlWidget popup to see if that fixes weird position sometimes
Also don't add icon button if there's no icon
Clear cache body parts on model so that bodygroups in inspector can update properly
Add material groups and body parts to their control widget value hashes so they refresh on model reload https://files.facepunch.com/layla/1b1511b1/sbox-dev_10llRRdkD3.mp4
Add PhysicsBody.AddCylinderShape and PhysicsBody.AddConeShape
Add hull collider component to combine multiple hull shapes with selector (box, cone, cylinder) https://files.facepunch.com/layla/1b1511b1/sbox-dev_KwarwIJ8dm.mp4
Fix Camera.RenderToTexture incorrect aspect when using ortho, just use ortho height, we don't use ortho width and it should be removed
Add SkinnedModelRenderer.AnimationGraph to override animgraph
Abs the radius in Gizmo.Draw.LineCylinder so it isn't all fucky
Allow multiple ShowIfAttributes, will show property if any of them are true
Add SerializedProperty.GetAttributes, will be needed if we want to get multiple attributes
Fix triggers activating when collision default is set to ignore
Add joint break strengths to modeldoc
Support Scene.trace.Body (todo: multi, sweep) https://files.facepunch.com/layla/1b1211b1/sbox-dev_G86CwDirl8.mp4
Setting SceneModel.AnimationGraph to null resets to model animgraph instead of crashing
Fix ColorControlWidget popup not constraining to screen