案例位置:examples/Cuda/Tutorials/GL_SegmentVisualizer
功能介绍:案例展示了大规模网格线框渲染功能。线框渲染有两种模式:一种是普通的线条渲染,这种线条较细;另一种是圆柱线框渲染,这种模式使用圆柱代替线段,使得模型边界更具有辨识性。
案例说明:通过指定 GLWireframeVisualModule 节点中 EEdgeMode 属性的类型,选择不同的线框模式。LINE表示线段模式;CYLINDER表示圆柱模式。
线段模式:
圆柱模式:
接下来介绍案例的实现过程:
std::shared_ptr<SceneGraph> scn = std::make_shared<SceneGraph>();
// create a hexahedron node
auto instanceNode = scn->addNode(std::make_shared<HexahedronNode>());
// wireframe rendering
auto edgeRender = std::make_shared<GLWireframeVisualModule>();
edgeRender->setColor(Vec3f(0, 1, 0));
edgeRender->varRenderMode()->getDataPtr()->setCurrentKey(GLWireframeVisualModule::LINE);
edgeRender->varLineWidth()->setValue(2.f);
instanceNode->stateHexahedrons()->connect(edgeRender->inEdgeSet());
instanceNode->graphicsPipeline()->pushModule(edgeRender);