From 3d907e06d52170f5a569c69bd7a95c86d573ef62 Mon Sep 17 00:00:00 2001 From: Kearwood Gilbert Date: Mon, 9 Dec 2013 22:29:13 -0800 Subject: [PATCH] Reverb and Ambient zone visualizations are now exposed through the debug interface. Colliders are now imported with a prefix of collider#_ instead of collider_#_ --HG-- extra : source : 3fe036b138659b88a903859578ec9099e5ec353c --- KREngine/kraken/KRAmbientZone.cpp | 2 +- KREngine/kraken/KRCamera.cpp | 5 +++++ KREngine/kraken/KRRenderSettings.h | 2 ++ KREngine/kraken/KRResource+fbx.cpp | 12 +++++++++--- KREngine/kraken/KRReverbZone.cpp | 2 +- 5 files changed, 18 insertions(+), 5 deletions(-) diff --git a/KREngine/kraken/KRAmbientZone.cpp b/KREngine/kraken/KRAmbientZone.cpp index fac94fb..d44d075 100644 --- a/KREngine/kraken/KRAmbientZone.cpp +++ b/KREngine/kraken/KRAmbientZone.cpp @@ -90,7 +90,7 @@ void KRAmbientZone::render(KRCamera *pCamera, std::vector &point KRNode::render(pCamera, point_lights, directional_lights, spot_lights, viewport, renderPass); - bool bVisualize = false; + bool bVisualize = pCamera->settings.debug_display == KRRenderSettings::KRENGINE_DEBUG_DISPLAY_SIREN_AMBIENT_ZONES; if(renderPass == KRNode::RENDER_PASS_FORWARD_TRANSPARENT && bVisualize) { KRMat4 sphereModelMatrix = getModelMatrix(); diff --git a/KREngine/kraken/KRCamera.cpp b/KREngine/kraken/KRCamera.cpp index fb205a6..03c0845 100644 --- a/KREngine/kraken/KRCamera.cpp +++ b/KREngine/kraken/KRCamera.cpp @@ -1091,6 +1091,11 @@ std::string KRCamera::getDebugText() break; case KRRenderSettings::KRENGINE_DEBUG_DISPLAY_BONES: stream << "Bone Visualization"; + case KRRenderSettings::KRENGINE_DEBUG_DISPLAY_SIREN_REVERB_ZONES: + stream << "Siren - Reverb Zones"; + break; + case KRRenderSettings::KRENGINE_DEBUG_DISPLAY_SIREN_AMBIENT_ZONES: + stream << "Siren - Ambient Zones"; break; } return stream.str(); diff --git a/KREngine/kraken/KRRenderSettings.h b/KREngine/kraken/KRRenderSettings.h index 1cfff0e..a00e73b 100644 --- a/KREngine/kraken/KRRenderSettings.h +++ b/KREngine/kraken/KRRenderSettings.h @@ -96,6 +96,8 @@ public: KRENGINE_DEBUG_DISPLAY_OCTREE, KRENGINE_DEBUG_DISPLAY_COLLIDERS, KRENGINE_DEBUG_DISPLAY_BONES, + KRENGINE_DEBUG_DISPLAY_SIREN_REVERB_ZONES, + KRENGINE_DEBUG_DISPLAY_SIREN_AMBIENT_ZONES, KRENGINE_DEBUG_DISPLAY_NUMBER } debug_display; diff --git a/KREngine/kraken/KRResource+fbx.cpp b/KREngine/kraken/KRResource+fbx.cpp index e2fb402..ae9821a 100644 --- a/KREngine/kraken/KRResource+fbx.cpp +++ b/KREngine/kraken/KRResource+fbx.cpp @@ -1521,13 +1521,13 @@ KRNode *LoadMesh(KRNode *parent_node, FbxScene* pFbxScene, FbxGeometryConverter return new KRCollider(parent_node->getScene(), GetFbxObjectName(pNode), pSourceMesh->GetNode()->GetName(), KRAKEN_COLLIDER_PHYSICS, 0.0f); } else if(strncmp(node_name, "audio_collider_", strlen("audio_collider_")) == 0) { return new KRCollider(parent_node->getScene(), GetFbxObjectName(pNode), pSourceMesh->GetNode()->GetName(), KRAKEN_COLLIDER_AUDIO, 1.0f); - } else if(strncmp(node_name, "collider_", 9) == 0) { // 9 == strlen("collider_") + } else if(strncmp(node_name, "collider", 8) == 0) { // 8 == strlen("collider") // Colliders can have a prefix of collider_##_, where ## indicates the layer mask // Colliders with a prefix of only collider_ will have a default layer mask of KRAKEN_COLLIDER_PHYSICS | KRAKEN_COLLIDER_AUDIO // Scan through the characters of the name until we no longer see digit characters (or see a '\0' indicating the end of the string) unsigned int layer = 0; - const char *szNodeName = node_name + 9; // 9 == strlen("collider_") + const char *szNodeName = node_name + 8; // 8 == strlen("collider") const char *source_char = szNodeName; while(*source_char >= '0' && *source_char <= '9') { layer = layer * 10 + (*source_char++ - '0'); @@ -1537,7 +1537,13 @@ KRNode *LoadMesh(KRNode *parent_node, FbxScene* pFbxScene, FbxGeometryConverter // No layer mask number was found, use the default layer = KRAKEN_COLLIDER_PHYSICS | KRAKEN_COLLIDER_AUDIO; } - return new KRCollider(parent_node->getScene(), GetFbxObjectName(pNode), pSourceMesh->GetNode()->GetName(), layer, 1.0f); + if(*source_char == '_') { + // Pattern has matched + return new KRCollider(parent_node->getScene(), GetFbxObjectName(pNode), pSourceMesh->GetNode()->GetName(), layer, 1.0f); + } else { + // This is just a normal node, which happened to be prefixed with "collider" but didn't have a number and underscore + return new KRModel(parent_node->getScene(), GetFbxObjectName(pNode), pSourceMesh->GetNode()->GetName(), light_map, 0.0f, true, false); + } } else { return new KRModel(parent_node->getScene(), GetFbxObjectName(pNode), pSourceMesh->GetNode()->GetName(), light_map, 0.0f, true, false); } diff --git a/KREngine/kraken/KRReverbZone.cpp b/KREngine/kraken/KRReverbZone.cpp index 95a4e95..5622717 100644 --- a/KREngine/kraken/KRReverbZone.cpp +++ b/KREngine/kraken/KRReverbZone.cpp @@ -89,7 +89,7 @@ void KRReverbZone::render(KRCamera *pCamera, std::vector &point_ KRNode::render(pCamera, point_lights, directional_lights, spot_lights, viewport, renderPass); - bool bVisualize = false; + bool bVisualize = pCamera->settings.debug_display == KRRenderSettings::KRENGINE_DEBUG_DISPLAY_SIREN_REVERB_ZONES; if(renderPass == KRNode::RENDER_PASS_FORWARD_TRANSPARENT && bVisualize) { KRMat4 sphereModelMatrix = getModelMatrix();