diff --git a/assets/Data/creatures/human.json b/assets/Data/creatures/human.json index 633730d7..2d91c98b 100644 --- a/assets/Data/creatures/human.json +++ b/assets/Data/creatures/human.json @@ -367,15 +367,15 @@ }, "collidable" : { "type" : "CYLINDER", - "dimension1" : 0.1, - "dimension2" : 0.8, - "dimension3" : 0.1, + "dimension1" : 0.2, + "dimension2" : 1.6, + "dimension3" : 0.2, "rotX": 0, "rotY": 0, "rotZ": 0, "rotW": 1, "offsetX" : 0, - "offsetY" : 0.4, + "offsetY" : 0.8, "offsetZ" : 0, "angularlyStatic" : true }, diff --git a/assets/Models/basic/geometry/unitcylinder.glb b/assets/Models/basic/geometry/unitcylinder.glb new file mode 100644 index 00000000..01779375 Binary files /dev/null and b/assets/Models/basic/geometry/unitcylinder.glb differ diff --git a/docs/src/progress/renderertodo.md b/docs/src/progress/renderertodo.md index dcfcb5e1..26f417ce 100644 --- a/docs/src/progress/renderertodo.md +++ b/docs/src/progress/renderertodo.md @@ -687,6 +687,8 @@ Viewport loading Fix viewport realm server data cell not being flagged as ready Fix NPEs on property lookups on entities Unit tests for above +Fix physics debug rendering pipeline +Update human collidable data # TODO diff --git a/src/main/java/electrosphere/engine/Globals.java b/src/main/java/electrosphere/engine/Globals.java index b3ca2791..7d0922ea 100644 --- a/src/main/java/electrosphere/engine/Globals.java +++ b/src/main/java/electrosphere/engine/Globals.java @@ -597,6 +597,7 @@ public class Globals { assetManager.addModelPathToQueue("Models/basic/geometry/unitsphere_grey.fbx"); assetManager.addModelPathToQueue("Models/basic/geometry/SmallCube.fbx"); assetManager.addModelPathToQueue("Models/basic/geometry/unitcylinder.fbx"); + assetManager.addModelPathToQueue("Models/basic/geometry/unitcylinder.glb"); assetManager.addModelPathToQueue("Models/basic/geometry/unitcapsule.glb"); assetManager.addModelPathToQueue("Models/basic/geometry/unitplane.fbx"); assetManager.addModelPathToQueue("Models/basic/geometry/unitcube.fbx"); diff --git a/src/main/java/electrosphere/renderer/pipelines/debug/DebugContentPipeline.java b/src/main/java/electrosphere/renderer/pipelines/debug/DebugContentPipeline.java index 5953fec8..37947f84 100644 --- a/src/main/java/electrosphere/renderer/pipelines/debug/DebugContentPipeline.java +++ b/src/main/java/electrosphere/renderer/pipelines/debug/DebugContentPipeline.java @@ -89,7 +89,6 @@ public class DebugContentPipeline implements RenderPipeline { Vector3f cameraModifiedPosition = new Vector3f((float)position.x,(float)position.y,(float)position.z).sub(CameraEntityUtils.getCameraCenter(Globals.playerCamera)); modelTransformMatrix.identity(); modelTransformMatrix.translate(cameraModifiedPosition); - // modelTransformMatrix.translate(-0.25f, 0.0f, 0.5f); //center sphere modelTransformMatrix.scale(sphereView.getRadius() * 2); hitboxModel.setModelMatrix(modelTransformMatrix); hitboxModel.draw(renderPipelineState,openGLState); @@ -123,49 +122,6 @@ public class DebugContentPipeline implements RenderPipeline { } } } - // for(Entity currentHitbox : Globals.clientHitboxManager.getAllHitboxes()){ - // if((boolean)currentHitbox.getData(EntityDataStrings.DATA_STRING_DRAW)){ - // Model hitboxModel; - // HitboxData data = HitboxUtils.getHitboxData(currentHitbox); - // if(data.isActive()){ - // if(data.getType().equals(EntityDataStrings.COLLISION_ENTITY_DATA_TYPE_HURT)){ - // if((hitboxModel = Globals.assetManager.fetchModel("Models/basic/geometry/unitsphere.fbx")) != null){ - // Vector3d position = EntityUtils.getPosition(currentHitbox); - // //calculate camera-modified vector3f - // Vector3f cameraModifiedPosition = new Vector3f((float)position.x,(float)position.y,(float)position.z).sub(CameraEntityUtils.getCameraCenter(Globals.playerCamera)); - // modelTransformMatrix.identity(); - // modelTransformMatrix.translate(cameraModifiedPosition); - // // modelTransformMatrix.translate(-0.25f, 0.0f, 0.5f); //center sphere - // modelTransformMatrix.scale(data.getRadius() * 2); - // hitboxModel.setModelMatrix(modelTransformMatrix); - // hitboxModel.draw(renderPipelineState,openGLState); - // } - // } else if(data.getType().equals(EntityDataStrings.COLLISION_ENTITY_DATA_TYPE_HIT)){ - // if((hitboxModel = Globals.assetManager.fetchModel("Models/basic/geometry/unitsphere_1.fbx")) != null){ - // Vector3d position = EntityUtils.getPosition(currentHitbox); - // //calculate camera-modified vector3f - // Vector3f cameraModifiedPosition = new Vector3f((float)position.x,(float)position.y,(float)position.z).sub(CameraEntityUtils.getCameraCenter(Globals.playerCamera)); - // modelTransformMatrix.identity(); - // modelTransformMatrix.translate(cameraModifiedPosition); - // // modelTransformMatrix.translate(-0.25f, 0.0f, 0.5f); //center sphere - // modelTransformMatrix.scale(data.getRadius() * 2); - // hitboxModel.setModelMatrix(modelTransformMatrix); - // hitboxModel.draw(renderPipelineState,openGLState); - // } - // } - // } else { - // if((hitboxModel = Globals.assetManager.fetchModel("Models/basic/geometry/unitsphere_grey.fbx")) != null){ - // Vector3d position = EntityUtils.getPosition(currentHitbox); - // modelTransformMatrix.identity(); - // modelTransformMatrix.translate(new Vector3f((float)position.x,(float)position.y,(float)position.z).sub(CameraEntityUtils.getCameraCenter(Globals.playerCamera))); - // // modelTransformMatrix.translate(-0.25f, 0.0f, 0.5f); //center sphere - // modelTransformMatrix.scale(data.getRadius() * 2); - // hitboxModel.setModelMatrix(modelTransformMatrix); - // hitboxModel.draw(renderPipelineState,openGLState); - // } - // } - // } - // } } if(Globals.userSettings.getGraphicsDebugDrawCollisionSpheresServer()){ Model hitboxModel; @@ -188,7 +144,6 @@ public class DebugContentPipeline implements RenderPipeline { Vector3f cameraModifiedPosition = new Vector3f((float)position.x,(float)position.y,(float)position.z).sub(CameraEntityUtils.getCameraCenter(Globals.playerCamera)); modelTransformMatrix.identity(); modelTransformMatrix.translate(cameraModifiedPosition); - // modelTransformMatrix.translate(-0.25f, 0.0f, 0.5f); //center sphere modelTransformMatrix.scale(sphereView.getRadius() * 2); hitboxModel.setModelMatrix(modelTransformMatrix); hitboxModel.draw(renderPipelineState,openGLState); @@ -223,9 +178,6 @@ public class DebugContentPipeline implements RenderPipeline { } } } - - //update pipeline state to use mats again - renderPipelineState.setUseMaterial(true); if(Globals.userSettings.graphicsDebugDrawPhysicsObjects()){ Model physicsGraphicsModel; @@ -235,21 +187,30 @@ public class DebugContentPipeline implements RenderPipeline { CollidableTemplate template = (CollidableTemplate)physicsEntity.getData(EntityDataStrings.PHYSICS_MODEL_TEMPLATE); switch(template.getType()){ case "CYLINDER": - if((physicsGraphicsModel = Globals.assetManager.fetchModel("Models/unitcylinder.fbx")) != null){ + if((physicsGraphicsModel = Globals.assetManager.fetchModel("Models/basic/geometry/unitcylinder.glb")) != null){ + //set color based on collision status, type, etc + Texture texture = Globals.assetManager.fetchTexture("Textures/transparent_blue.png"); + if(texture != null){ + texture.bind(openGLState); + } Vector3d position = EntityUtils.getPosition(physicsEntity); //calculate camera-modified vector3f Vector3f cameraModifiedPosition = new Vector3f((float)position.x,(float)position.y,(float)position.z).add(template.getOffsetX(),template.getOffsetY(),template.getOffsetZ()).sub(CameraEntityUtils.getCameraCenter(Globals.playerCamera)); modelTransformMatrix.identity(); modelTransformMatrix.translate(cameraModifiedPosition); modelTransformMatrix.rotate(EntityUtils.getRotation(physicsEntity)); - // modelTransformMatrix.translate(template.getOffsetX(),template.getOffsetY(),template.getOffsetZ()); //center sphere modelTransformMatrix.scale(template.getDimension1(),template.getDimension2() * 0.5,template.getDimension3()); physicsGraphicsModel.setModelMatrix(modelTransformMatrix); physicsGraphicsModel.draw(renderPipelineState,openGLState); } break; case "CUBE": - if((physicsGraphicsModel = Globals.assetManager.fetchModel("Models/unitcube.fbx")) != null){ + if((physicsGraphicsModel = Globals.assetManager.fetchModel("Models/basic/geometry/unitcube.fbx")) != null){ + //set color based on collision status, type, etc + Texture texture = Globals.assetManager.fetchTexture("Textures/transparent_blue.png"); + if(texture != null){ + texture.bind(openGLState); + } Vector3d position = EntityUtils.getPosition(physicsEntity); // Vector3f scale = EntityUtils.getScale(physicsEntity); Quaterniond rotation = EntityUtils.getRotation(physicsEntity); @@ -258,7 +219,6 @@ public class DebugContentPipeline implements RenderPipeline { modelTransformMatrix.identity(); modelTransformMatrix.translate(cameraModifiedPosition); modelTransformMatrix.rotate(rotation); - // modelTransformMatrix.translate(template.getOffsetX(),template.getOffsetY(),template.getOffsetZ()); //center sphere modelTransformMatrix.scale(template.getDimension1(),template.getDimension2(),template.getDimension3()); physicsGraphicsModel.setModelMatrix(modelTransformMatrix); physicsGraphicsModel.draw(renderPipelineState,openGLState); @@ -271,7 +231,12 @@ public class DebugContentPipeline implements RenderPipeline { Entity physicsEntity = collidable.getParent(); if((boolean)physicsEntity.getData(EntityDataStrings.DATA_STRING_DRAW)){ if(physicsEntity.containsKey(EntityDataStrings.COLLISION_ENTITY_TYPE_PLANE)){ - if((physicsGraphicsModel = Globals.assetManager.fetchModel("Models/unitplane.fbx")) != null){ + if((physicsGraphicsModel = Globals.assetManager.fetchModel("Models/basic/geometry/unitplane.fbx")) != null){ + //set color based on collision status, type, etc + Texture texture = Globals.assetManager.fetchTexture("Textures/transparent_blue.png"); + if(texture != null){ + texture.bind(openGLState); + } Vector3d position = EntityUtils.getPosition(physicsEntity); Vector3f scale = EntityUtils.getScale(physicsEntity); Quaterniond rotation = EntityUtils.getRotation(physicsEntity); @@ -280,13 +245,17 @@ public class DebugContentPipeline implements RenderPipeline { modelTransformMatrix.identity(); modelTransformMatrix.translate(cameraModifiedPosition); modelTransformMatrix.rotate(rotation); - // modelTransformMatrix.translate(template.getOffsetX(),template.getOffsetY(),template.getOffsetZ()); //center sphere modelTransformMatrix.scale(new Vector3d(scale)); physicsGraphicsModel.setModelMatrix(modelTransformMatrix); physicsGraphicsModel.draw(renderPipelineState,openGLState); } } else if(physicsEntity.containsKey(EntityDataStrings.COLLISION_ENTITY_TYPE_CUBE)){ - if((physicsGraphicsModel = Globals.assetManager.fetchModel("Models/unitcube.fbx")) != null){ + if((physicsGraphicsModel = Globals.assetManager.fetchModel("Models/basic/geometry/unitcube.fbx")) != null){ + //set color based on collision status, type, etc + Texture texture = Globals.assetManager.fetchTexture("Textures/transparent_blue.png"); + if(texture != null){ + texture.bind(openGLState); + } Vector3d position = EntityUtils.getPosition(physicsEntity); Vector3f scale = EntityUtils.getScale(physicsEntity); Quaterniond rotation = EntityUtils.getRotation(physicsEntity); @@ -295,7 +264,6 @@ public class DebugContentPipeline implements RenderPipeline { modelTransformMatrix.identity(); modelTransformMatrix.translate(cameraModifiedPosition); modelTransformMatrix.rotate(rotation); - // modelTransformMatrix.translate(template.getOffsetX(),template.getOffsetY(),template.getOffsetZ()); //center sphere modelTransformMatrix.scale(new Vector3d(scale)); physicsGraphicsModel.setModelMatrix(modelTransformMatrix); physicsGraphicsModel.draw(renderPipelineState,openGLState); @@ -304,6 +272,9 @@ public class DebugContentPipeline implements RenderPipeline { } } } + + //update pipeline state to use mats again + renderPipelineState.setUseMaterial(true); if(Globals.userSettings.graphicsDebugDrawNavmesh()){ Model shapeGraphicsModel;