案例位置:examples/Cuda/HeigthField/GL_CapillaryWave
功能介绍:案例中展示了 CapillaryWave 类的的基本使用。表面张力波 (Capillary wave) 是延著液体行进的波,其动力学及相速度是由表面张力的效应所决定。在水面上的表面张力波常称为涟漪,例如在现实世界中微风吹过水面产生涟漪的现象。表面张力波是自然界常见的现象,其波长多半在数公分以内,而相速度约0.2-0.3米/秒。PeriDyno 引擎支持涟漪效果实时仿真,可由用户调节海浪区域大小。
案例说明:该案例主要用于模拟测试水面涟漪的仿真功能。初始状态,给水面中间部分水域设置一个高度,模拟中间水域下落后产生的涟漪效果。
std::shared_ptr<SceneGraph> scn = std::make_shared<SceneGraph>();
auto root = scn->addNode(std::make_shared<CapillaryWave<DataType3f>>());
auto mapper = std::make_shared<HeightFieldToTriangleSet<DataType3f>>();
root->stateTopology()->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);