Defer physics overhaul 4 for larger timeblock
All checks were successful
studiorailgun/Renderer/pipeline/head This commit looks good

This commit is contained in:
austin 2024-03-21 20:31:12 -04:00
parent 4fd56da7df
commit aa1e7fa117
2 changed files with 24 additions and 12 deletions

View File

@ -182,16 +182,6 @@ Fix Character creation preview not working
# TODO # TODO
Fix bad data with human mesh textures not mapping
Clean up main method/class
Include Remotery library
Physics-controlled objects system
Shader library system
- Abiltiy to include the shader library in individual files (ie implement #include)
Level loading/saving + Basic Editor Level loading/saving + Basic Editor
- Spin up voxel level (think arena mode) - Spin up voxel level (think arena mode)
@ -199,6 +189,11 @@ Level loading/saving + Basic Editor
- Basic editor functionality - Basic editor functionality
- Menu of types of entities to spawn - Menu of types of entities to spawn
- Button to spawn them at cursor - Button to spawn them at cursor
Physics-controlled objects system
Shader library system
- Abiltiy to include the shader library in individual files (ie implement #include)
Transvoxel Algorithm Transvoxel Algorithm
@ -233,6 +228,13 @@ Light Manager
- Eventually support spot lights? - Eventually support spot lights?
- Point shadows ??? - Point shadows ???
Clean up main method/class
- Include Remotery library
gltf Support
- Fix bad data with human mesh textures not mapping
- Texture loading from gltf file
Cellular Automata Fluid Dynamics System Cellular Automata Fluid Dynamics System
- Advect force - Advect force

View File

@ -60,7 +60,7 @@ import electrosphere.logger.LoggerInterface;
*/ */
public class CollisionEngine { public class CollisionEngine {
public static final float ENGINE_STEP_SIZE = 1000.0f / 120.0f; public static final float ENGINE_STEP_SIZE = 0.01f;
//world data that the collision engine leverages for position correction and the like //world data that the collision engine leverages for position correction and the like
CollisionWorldData collisionWorldData; CollisionWorldData collisionWorldData;
@ -68,7 +68,7 @@ public class CollisionEngine {
//Ode-specific stuff //Ode-specific stuff
private DWorld world; private DWorld world;
private DSpace space; private DSpace space;
private Semaphore spaceLock = new Semaphore(1); private static Semaphore spaceLock = new Semaphore(1);
private DJointGroup contactgroup; private DJointGroup contactgroup;
private static final int MAX_CONTACTS = 1; // maximum number of contact points per body private static final int MAX_CONTACTS = 1; // maximum number of contact points per body
@ -713,5 +713,15 @@ public class CollisionEngine {
spaceLock.release(); spaceLock.release();
return rVal; return rVal;
} }
/**
* Sets a body to be kinematic (infinite mass, not affected by gravity)
* @param body The body to set
*/
protected void setKinematic(DBody body){
spaceLock.acquireUninterruptibly();
body.setKinematic();
spaceLock.release();
}
} }