[Bf-blender-cvs] [0cd4b39] openvdb: Cleanup: reorder operations in the loop over the vdb tree nodes.
Kévin Dietrich
noreply at git.blender.org
Tue Jun 23 11:31:01 CEST 2015
Commit: 0cd4b39f583f6ff0e1af64b8d7ce8979dad8dda9
Author: Kévin Dietrich
Date: Tue Jun 23 00:13:39 2015 +0200
Branches: openvdb
https://developer.blender.org/rB0cd4b39f583f6ff0e1af64b8d7ce8979dad8dda9
Cleanup: reorder operations in the loop over the vdb tree nodes.
===================================================================
M intern/openvdb/intern/openvdb_render.cpp
===================================================================
diff --git a/intern/openvdb/intern/openvdb_render.cpp b/intern/openvdb/intern/openvdb_render.cpp
index 05cd6a5..50c66e6 100644
--- a/intern/openvdb/intern/openvdb_render.cpp
+++ b/intern/openvdb/intern/openvdb_render.cpp
@@ -200,10 +200,10 @@ void OpenVDBPrimitive_draw_tree(OpenVDBPrimitive *vdb_prim, const bool draw_root
* "VDB: High-Resolution Sparse Volumes With Dynamic Topology",
* K. Museth, 2013 */
Vec3f node_color[4] = {
- Vec3f(0.0060f, 0.2790f, 0.6250f), // leaf nodes
- Vec3f(0.8710f, 0.3940f, 0.0191f), // intermediate internal node levels
+ Vec3f(0.0450f, 0.0450f, 0.0450f), // root node
Vec3f(0.0432f, 0.3300f, 0.0411f), // first internal node level
- Vec3f(0.0450f, 0.0450f, 0.0450f) // root node
+ Vec3f(0.8710f, 0.3940f, 0.0191f), // intermediate internal node levels
+ Vec3f(0.0060f, 0.2790f, 0.6250f) // leaf nodes
};
CoordBBox bbox;
@@ -211,42 +211,33 @@ void OpenVDBPrimitive_draw_tree(OpenVDBPrimitive *vdb_prim, const bool draw_root
Vec3f wmin, wmax, color;
for (FloatTree::NodeCIter node_iter = grid->tree().cbeginNode(); node_iter; ++node_iter) {
- node_iter.getBoundingBox(bbox);
-
- const Vec3f min(bbox.min().x() - 0.5f, bbox.min().y() - 0.5f, bbox.min().z() - 0.5f);
- const Vec3f max(bbox.max().x() + 0.5f, bbox.max().y() + 0.5f, bbox.max().z() + 0.5f);
-
- wmin = grid->indexToWorld(min);
- wmax = grid->indexToWorld(max);
-
const int level = node_iter.getLevel();
- if (level == 0) {
- if (!draw_leaves) {
- continue;
- }
- color = node_color[0];
+ if (level == 0 && !draw_leaves) {
+ continue;
}
- else if (level == 1) {
- if (!draw_level_2) {
- continue;
- }
- color = node_color[1];
+ else if (level == 1 && !draw_level_2) {
+ continue;
}
- else if (level == 2) {
- if (!draw_level_1) {
- continue;
- }
- color = node_color[2];
+ else if (level == 2 && !draw_level_1) {
+ continue;
}
- else {
- if (!draw_root) {
- continue;
- }
- color = node_color[3];
+ else if (level == 3 && !draw_root) {
+ continue;
}
+ else {
+ node_iter.getBoundingBox(bbox);
- add_box(&vertices, &colors, NULL, wmin, wmax, color, false);
+ const Vec3f min(bbox.min().x() - 0.5f, bbox.min().y() - 0.5f, bbox.min().z() - 0.5f);
+ const Vec3f max(bbox.max().x() + 0.5f, bbox.max().y() + 0.5f, bbox.max().z() + 0.5f);
+
+ wmin = grid->indexToWorld(min);
+ wmax = grid->indexToWorld(max);
+
+ color = node_color[std::max(3 - level, 0)];
+
+ add_box(&vertices, &colors, NULL, wmin, wmax, color, false);
+ }
}
glDisable(GL_CULL_FACE);
More information about the Bf-blender-cvs
mailing list