interaction engine debug visualization
All checks were successful
studiorailgun/Renderer/pipeline/head This commit looks good
All checks were successful
studiorailgun/Renderer/pipeline/head This commit looks good
This commit is contained in:
parent
edec17fc40
commit
7320d3e04f
@ -10,9 +10,9 @@
|
|||||||
"onInteract" : "harvest",
|
"onInteract" : "harvest",
|
||||||
"interactionShape" : {
|
"interactionShape" : {
|
||||||
"type" : "CUBE",
|
"type" : "CUBE",
|
||||||
"dimension1" : 0.3,
|
"dimension1" : 0.4,
|
||||||
"dimension2" : 0.3,
|
"dimension2" : 0.4,
|
||||||
"dimension3" : 0.3,
|
"dimension3" : 0.4,
|
||||||
"rotX": 0,
|
"rotX": 0,
|
||||||
"rotY": 0,
|
"rotY": 0,
|
||||||
"rotZ": 0,
|
"rotZ": 0,
|
||||||
|
|||||||
@ -1872,6 +1872,7 @@ Shuffle entity data package
|
|||||||
Rename structure -> virtualstructure
|
Rename structure -> virtualstructure
|
||||||
Update hometown storage on characters
|
Update hometown storage on characters
|
||||||
Filter test scenes out of level selection
|
Filter test scenes out of level selection
|
||||||
|
Visualize interaction engine collidables
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -53,6 +53,9 @@ public class ImGuiRenderer {
|
|||||||
if(ImGui.button("Draw Grid Alignment Data")){
|
if(ImGui.button("Draw Grid Alignment Data")){
|
||||||
Globals.gameConfigCurrent.getSettings().setGraphicsDebugDrawGridAlignment(!Globals.gameConfigCurrent.getSettings().getGraphicsDebugDrawGridAlignment());
|
Globals.gameConfigCurrent.getSettings().setGraphicsDebugDrawGridAlignment(!Globals.gameConfigCurrent.getSettings().getGraphicsDebugDrawGridAlignment());
|
||||||
}
|
}
|
||||||
|
if(ImGui.button("Draw Interaction Collidable Data")){
|
||||||
|
Globals.gameConfigCurrent.getSettings().setGraphicsDebugDrawInteractionCollidables(!Globals.gameConfigCurrent.getSettings().getGraphicsDebugDrawInteractionCollidables());
|
||||||
|
}
|
||||||
ImGui.unindent();
|
ImGui.unindent();
|
||||||
}
|
}
|
||||||
if(ImGui.collapsingHeader("OpenGL Details")){
|
if(ImGui.collapsingHeader("OpenGL Details")){
|
||||||
|
|||||||
@ -52,6 +52,7 @@ public class UserSettings {
|
|||||||
boolean graphicsDebugDrawMovementVectors;
|
boolean graphicsDebugDrawMovementVectors;
|
||||||
boolean graphicsDebugDrawNavmesh;
|
boolean graphicsDebugDrawNavmesh;
|
||||||
boolean graphicsDebugDrawGridAlignment;
|
boolean graphicsDebugDrawGridAlignment;
|
||||||
|
boolean graphicsDebugDrawInteractionCollidables;
|
||||||
//debug network
|
//debug network
|
||||||
boolean netRunNetMonitor;
|
boolean netRunNetMonitor;
|
||||||
|
|
||||||
@ -203,6 +204,21 @@ public class UserSettings {
|
|||||||
this.graphicsDebugDrawGridAlignment = graphicsDebugDrawGridAlignment;
|
this.graphicsDebugDrawGridAlignment = graphicsDebugDrawGridAlignment;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checs if should render the interaction engine collidables
|
||||||
|
* @return true to render them, false otherwise
|
||||||
|
*/
|
||||||
|
public boolean getGraphicsDebugDrawInteractionCollidables() {
|
||||||
|
return graphicsDebugDrawInteractionCollidables;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets whether should render the interaction engine collidables
|
||||||
|
* @param graphicsDebugDrawInteractionCollidables true to render, false otherwise
|
||||||
|
*/
|
||||||
|
public void setGraphicsDebugDrawInteractionCollidables(boolean graphicsDebugDrawInteractionCollidables) {
|
||||||
|
this.graphicsDebugDrawInteractionCollidables = graphicsDebugDrawInteractionCollidables;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -105,6 +105,18 @@ public class DebugContentPipeline implements RenderPipeline {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//render interaction engine collidables
|
||||||
|
if(Globals.gameConfigCurrent.getSettings().getGraphicsDebugDrawInteractionCollidables()){
|
||||||
|
CollisionEngine engine = Globals.clientState.clientSceneWrapper.getInteractionEngine();
|
||||||
|
for(Collidable collidable : engine.getCollidables()){
|
||||||
|
Entity physicsEntity = collidable.getParent();
|
||||||
|
if((boolean)physicsEntity.getData(EntityDataStrings.DATA_STRING_DRAW) && physicsEntity.getData(EntityDataStrings.INTERACTION_TEMPLATE) != null){
|
||||||
|
CollidableTemplate template = (CollidableTemplate)physicsEntity.getData(EntityDataStrings.INTERACTION_TEMPLATE);
|
||||||
|
DebugContentPipeline.renderCollidable(openGLState, renderPipelineState, modelTransformMatrix, physicsEntity, template);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//render current structure data
|
//render current structure data
|
||||||
if(
|
if(
|
||||||
Globals.clientState.clientLevelEditorData.getCurrentFab() != null &&
|
Globals.clientState.clientLevelEditorData.getCurrentFab() != null &&
|
||||||
@ -231,7 +243,7 @@ public class DebugContentPipeline implements RenderPipeline {
|
|||||||
*/
|
*/
|
||||||
static void renderCollidable(OpenGLState openGLState, RenderPipelineState renderPipelineState, Matrix4d modelTransformMatrix, Entity physicsEntity, CollidableTemplate template){
|
static void renderCollidable(OpenGLState openGLState, RenderPipelineState renderPipelineState, Matrix4d modelTransformMatrix, Entity physicsEntity, CollidableTemplate template){
|
||||||
Model physicsGraphicsModel;
|
Model physicsGraphicsModel;
|
||||||
if((boolean)physicsEntity.getData(EntityDataStrings.DATA_STRING_DRAW) && physicsEntity.getData(EntityDataStrings.PHYSICS_MODEL_TEMPLATE) != null){
|
if((boolean)physicsEntity.getData(EntityDataStrings.DATA_STRING_DRAW)){
|
||||||
switch(template.getType()){
|
switch(template.getType()){
|
||||||
case CollidableTemplate.COLLIDABLE_TYPE_CYLINDER: {
|
case CollidableTemplate.COLLIDABLE_TYPE_CYLINDER: {
|
||||||
if((physicsGraphicsModel = Globals.assetManager.fetchModel(AssetDataStrings.UNITCYLINDER)) != null){
|
if((physicsGraphicsModel = Globals.assetManager.fetchModel(AssetDataStrings.UNITCYLINDER)) != null){
|
||||||
@ -271,7 +283,7 @@ public class DebugContentPipeline implements RenderPipeline {
|
|||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
case CollidableTemplate.COLLIDABLE_TYPE_CAPSULE: {
|
case CollidableTemplate.COLLIDABLE_TYPE_CAPSULE: {
|
||||||
if((physicsGraphicsModel = Globals.assetManager.fetchModel(AssetDataStrings.UNITCAPSULE)) != null){
|
if((physicsGraphicsModel = Globals.assetManager.fetchModel(AssetDataStrings.UNITCYLINDER)) != null){
|
||||||
//set color based on collision status, type, etc
|
//set color based on collision status, type, etc
|
||||||
Texture texture = Globals.assetManager.fetchTexture(AssetDataStrings.TEXTURE_BLUE_TRANSPARENT);
|
Texture texture = Globals.assetManager.fetchTexture(AssetDataStrings.TEXTURE_BLUE_TRANSPARENT);
|
||||||
if(texture != null){
|
if(texture != null){
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user