mirror of
https://github.com/lubosz/overte.git
synced 2025-04-24 02:53:43 +02:00
added debugging for model mesh boxes
This commit is contained in:
parent
19c8e526e1
commit
fe8ad9517f
2 changed files with 61 additions and 1 deletions
|
@ -842,10 +842,67 @@ bool Model::renderCore(float alpha, RenderMode mode, RenderArgs* args) {
|
|||
args->_translucentMeshPartsRendered = translucentMeshPartsRendered;
|
||||
args->_opaqueMeshPartsRendered = opaqueMeshPartsRendered;
|
||||
}
|
||||
|
||||
|
||||
#ifdef WANT_DEBUG_MESHBOXES
|
||||
renderDebugMeshBoxes();
|
||||
#endif
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void Model::renderDebugMeshBoxes() {
|
||||
int colorNdx = 0;
|
||||
foreach(AABox box, _calculatedMeshBoxes) {
|
||||
if (_debugMeshBoxesID == GeometryCache::UNKNOWN_ID) {
|
||||
_debugMeshBoxesID = DependencyManager::get<GeometryCache>()->allocateID();
|
||||
}
|
||||
QVector<glm::vec3> points;
|
||||
|
||||
glm::vec3 brn = box.getCorner();
|
||||
glm::vec3 bln = brn + glm::vec3(box.getDimensions().x, 0, 0);
|
||||
glm::vec3 brf = brn + glm::vec3(0, 0, box.getDimensions().z);
|
||||
glm::vec3 blf = brn + glm::vec3(box.getDimensions().x, 0, box.getDimensions().z);
|
||||
|
||||
glm::vec3 trn = brn + glm::vec3(0, box.getDimensions().y, 0);
|
||||
glm::vec3 tln = bln + glm::vec3(0, box.getDimensions().y, 0);
|
||||
glm::vec3 trf = brf + glm::vec3(0, box.getDimensions().y, 0);
|
||||
glm::vec3 tlf = blf + glm::vec3(0, box.getDimensions().y, 0);
|
||||
|
||||
points << brn << bln;
|
||||
points << brf << blf;
|
||||
points << brn << brf;
|
||||
points << bln << blf;
|
||||
|
||||
points << trn << tln;
|
||||
points << trf << tlf;
|
||||
points << trn << trf;
|
||||
points << tln << tlf;
|
||||
|
||||
points << brn << trn;
|
||||
points << brf << trf;
|
||||
points << bln << tln;
|
||||
points << blf << tlf;
|
||||
|
||||
glm::vec4 color[] = {
|
||||
{ 1.0f, 0.0f, 0.0f, 1.0f }, // red
|
||||
{ 0.0f, 1.0f, 0.0f, 1.0f }, // green
|
||||
{ 0.0f, 0.0f, 1.0f, 1.0f }, // blue
|
||||
{ 1.0f, 0.0f, 1.0f, 1.0f }, // purple
|
||||
{ 1.0f, 1.0f, 0.0f, 1.0f }, // yellow
|
||||
{ 0.0f, 1.0f, 1.0f, 1.0f }, // cyan
|
||||
{ 1.0f, 1.0f, 1.0f, 1.0f }, // white
|
||||
{ 0.0f, 0.5f, 0.0f, 1.0f },
|
||||
{ 0.0f, 0.0f, 0.5f, 1.0f },
|
||||
{ 0.5f, 0.0f, 0.5f, 1.0f },
|
||||
{ 0.5f, 0.5f, 0.0f, 1.0f },
|
||||
{ 0.0f, 0.5f, 0.5f, 1.0f } };
|
||||
|
||||
DependencyManager::get<GeometryCache>()->updateVertices(_debugMeshBoxesID, points, color[colorNdx]);
|
||||
DependencyManager::get<GeometryCache>()->renderVertices(gpu::LINES, _debugMeshBoxesID);
|
||||
colorNdx++;
|
||||
}
|
||||
}
|
||||
|
||||
Extents Model::getBindExtents() const {
|
||||
if (!isActive()) {
|
||||
return Extents();
|
||||
|
|
|
@ -444,6 +444,9 @@ private:
|
|||
QVector<int> _meshesOpaqueLightmapTangentsSpecular;
|
||||
QVector<int> _meshesOpaqueLightmapSpecular;
|
||||
|
||||
// debug rendering support
|
||||
void renderDebugMeshBoxes();
|
||||
int _debugMeshBoxesID = GeometryCache::UNKNOWN_ID;
|
||||
|
||||
// Scene rendering support
|
||||
static QVector<Model*> _modelsInScene;
|
||||
|
|
Loading…
Reference in a new issue