案例位置:examples/Cuda/HeigthField/Qt_HeightField
功能介绍:该案例主要展示Qt框架下的高度场海洋仿真功能。用户可以在工具架上便捷的创建高度场相关的仿真任务,并通过节点编辑界面对节点进行编辑,通过属性编辑器对节点的属性进行修改。
案例说明:该案例仿真效果与GL_OceanPatch示例一样,主要展示Qt界面。用户点击OceanPatch节点时,可以动态调节以下属性。例如通过调节Wind Type属性,来控制风速大小,不同的数值可产生不同等级的海浪。目前支持0-12级风速。通过调节Wind Direction来控制风的方向。
std::shared_ptr<SceneGraph> scn = std::make_shared<SceneGraph>();
auto root = scn->addNode(std::make_shared<OceanPatch<DataType3f>>());
auto mapper = std::make_shared<HeightFieldToTriangleSet<DataType3f>>();
root->stateHeightField()->connect(mapper->inHeightField());
root->graphicsPipeline()->pushModule(mapper);
auto sRender = std::make_shared<GLSurfaceVisualModule>();
sRender->setColor(Vec3f(0, 0.2, 1.0));
mapper->outTriangleSet()->connect(sRender->inTriangleSet());
root->graphicsPipeline()->pushModule(sRender);
HeightFieldLibrary::initStaticPlugin();