三种交互平台

平台介绍

PeriDyno物理引擎针对不同的任务、不同的研发对象,构建了多个开发平台,包括轻量级GLFW平台、交互式Qt平台以及端云协同WT平台。

1、轻量级GLFW平台

简介: GLFW是配合OpenGL使用的轻量级工具程序库,缩写自Graphics Library Framework(图形库框架)。GLFW的主要功能是创建并管理窗口和OpenGL上下文,同时还提供了处理键盘、鼠标输入的功能。

PeriDyno引擎中轻量级GLFW框架安装简单,运行效率较高,适用于学生及科研工作人员。引擎中还提供大量GLFW示例。在程序中以GLFW框架运行的示例均以GL开头。

界面介绍: GLFW界面相对简介,只包含仿真界面和工具栏。

  • 仿真界面:用于显示仿真结果;
  • 工具栏:
    • Camera:视角变换,通过调节相机相关属性来改变视角;

      • Use Camera:提供orbit和Trackball两种相机模式 ;
      • Perspective:透视投影,物体大小和观测距离相关,距离越近物体越大,距离越远物体越小;
      • Orthogonal:正交投影,物体大小和观测距离无关。
      • Top:俯视图;
      • Bottom:仰视图;
      • Left:左视图;
      • Right:右视图;
      • Front:主视图;
      • Back:后视图;
      • Auto Focue:自动聚焦;
      • DistanceUnit:快速调节相机距离;
    • Lighting:光线相关属性;

      • BG color:灯光的颜色,鼠标右键点击数值框,拖动改变数值;
      • Ambient Light:环境光;
      • Main Light:主要光;
      • Main Light Direction:主要光照射方向;
      • Main Light Shadow:是否显示主要光照射阴影;
    • Auxiliary:辅助功能;

      • Lock Camera:是否锁定摄像机;
      • Show View Mainipulator:是否显示左下角的方位魔方;
      • Show Background:是否显示背景网格;
      • Print Node Info:是否打印节点输出信息;
      • Print Module Info:是否打印模块输出信息;
      • Show Bounding Box:是否显示box边界;
      • Lower Bound:下边界设置;
      • Upper Bound:上边界设置;
    • Edit:三维模型变换;

      • Translate:平移变换;
      • Scale:尺寸变换;
      • Rotate:旋转变换;
      • Focus:模型聚焦功能;

操作说明:

  • 调节视角:Alt + 鼠标移动;
  • 调节视角距离:Alt + 滚动鼠标中键;
  • 开始仿真任务:空格键(程序启动时,默认停在第0帧。按下空格键后,开始仿真任务)。

2、交互式设计Qt平台

简介: Qt一个跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可以用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏。Qt易于扩展,而且允许组件编程。

PeriDyno引擎中交互式设计Qt框架以Qt组件为基础,在仿真界面的基础上额外添加了许多组件,包括工具栏日志栏节点编辑区域节点属性编辑区域以及模块编辑区域等。交互式设计Qt框架在安装部署时需要额外安装Qt组件,具备比GLFW框架更强大的交互功能,适用于工程开发人员。用户可以在节点编辑器中创建仿真节点,在节点属性编辑器中更改节点属性,在模块编辑界面编辑功能模块,方便用户搭建复杂场景以及二次开发与集成。在PeriDyno引擎中以Qt平台运行的示例均以Qt开头。

界面介绍:

  • 菜单栏:菜单栏提供常见的功能,包括新建、打开、保存以及关闭场景图等功能。同时允许用户自定义功能以插件的形式导入菜单栏;
  • 仿真显示区域:将仿真结果可视化;
  • 日志输出区域:输出系统日志以及程序相关运行结果;
  • 节点编辑区域:提供场景图和节点编辑功能,允许用户通过节点连接的方式创建仿真任务;
  • 属性修改区域:对指定节点属性进行修改。

操作说明:

  • 菜单栏:鼠标左键点击对应的功能;

  • 仿真显示区域:请参考GLFW界面操作方法;

  • 开始仿真和重置:刻度表示当前帧数;数字表示最大帧数;绿色按钮点击开始仿真,点击之后会变成暂停键;红色按钮点击重新开始仿真;

  • 日志输出区域:打印输出信息。默认不输出日志信息,如需要输出日志信息,点击菜单栏Edite->Logging选项卡。其中Node节点和Module模块的输出信息,只需要勾选Auxiliary中的Print Node InfoPrint Module Info选项;

  • 节点编辑区域

    • 创建仿真节点: 鼠标右键,选择相应的节点;
    • 删除节点: 点击待删除的节点,按键盘delete键;
    • 节点连接: 鼠标左键拖动。注意每个节点接口都有自己定义的类型,不同类型的接口无法连接;将鼠标放到接口旁边会显示接口信息;
    • 节点排序: 当节点过多的时候,点击菜单栏Help->ReOrder选项卡,节点将自动排序;
    • 模块信息: 双击场景图中的节点,例如双击RigidBodySystem节点,其模块信息如下:
  • 属性修改区域:点击节点,可以修改节点属性:

    • Control Variable:控制变量属性,包括int、float、Vertor、bool等类型的数据;
    • State Variable:状态变量数据。勾选后,节点会显示相应的状态数据。

3、端云协同WT平台

简介: WT是一个针对Web应用开发的C++ widget库,同时也是开发和部署web应用的服务器。WT应用模型和现存的GUI库(例如微软的MFC或者TrolTech的Qt)很相似。WT web应用服务器占用较低的内存,因此可以提供基于web的图形用户界面(GUI)。

PeriDyno引擎中端云协同WT平台需要额外配置云端服务器,通过视频流的形式将仿真结果从服务器传到用户浏览器中,适用于工程应用人员。端云协同WT框架中,支持Python语言,用户不需要搭建复杂的仿真环境。