最近写了一个demo,想显示obj,几个立方体和几个小球,可视化的时候,发现无法进行显示在窗口上,代码也没有报错,就好像可视化被跳过一样了。
加上了这些初始化,也没效果。
#include "vtkAutoInit.h"
VTK_MODULE_INIT(vtkRenderingOpenGL2)
VTK_MODULE_INIT(vtkInteractionStyle)
VTK_MODULE_INIT(vtkRenderingFreeType)
然后又重写了一个读取obj的过程,发现又可以显示,仔细对比后发现,不是没有显示,而是没有设置摄像机视角,这样就造成了物体没在摄像机前,无法显示出来。
在Render()之前,只需加上这一句即可。
renderer->ResetCamera();
后记:
由于导入obj和创建立方体、小球,都是分开进行的,因此没必要每次都重新设置Camera的位置,不然界面上会突然把原来的图,进行放大/缩小。因此可以加一个变量,判断一下,如果是第一次加载文件,就调用ResetCamera,如果不是第一次加载文件,就可以不调用这个接口。