线框渲染

1、线框材料

案例位置examples/Cuda/Tutorials/GL_SegmentVisualizer

功能介绍:案例展示了大规模网格线框渲染功能。线框渲染有两种模式:一种是普通的线条渲染,这种线条较细;另一种是圆柱线框渲染,这种模式使用圆柱代替线段,使得模型边界更具有辨识性。

案例说明:通过指定 GLWireframeVisualModule 节点中 EEdgeMode 属性的类型,选择不同的线框模式。LINE表示线段模式;CYLINDER表示圆柱模式。

  • 线段模式:

  • 圆柱模式:

2、程序实现

接下来介绍案例的实现过程:

  • 创建场景图和渲染示例:
	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);