VTK: VTK Error 问题集

总结一下VTK使用过程中的一些错误:

1、非编译错误

​ 这部分错误并不是因为你错误使用VTK类或者是逻辑问题而导致的错误,而是因为缺失一些初始化的头文件而导致的错误

​ 需要在main函数中先添加初始化头文件:

#include <vtkAutoInit.h>

​ 错误一:VTK Error: no override found for ‘vtkVolumeTextureMapper2D’.

Error: no override found for ‘vtkRayCastImageDisplayHelper’.

​ 在main函数中添加:

VTK_MODULE_INIT(vtkRenderingVolumeOpenGL)
错误二: Error: no override found for ‘vtkImageMapper’.

在main函数中添加:

VTK_MODULE_INIT(vtkRenderingOpenGL) 
错误三: Error:Could not locate vtkTextRenderer object.

在main函数中添加:

VTK_MODULE_INIT(vtkRenderingFreeType)
错误四:Error: Link to vtkinteractionstyle

在main函数中添加:

VTK_MODULE_INIT(vtkInteractionStyle) 
错误五:VTK6.3.0:Error: no override found for ‘vtkContextDevice2D’

在main函数中添加

VTK_MODULE_INIT(vtkRenderingContextOpenGL)

2 错误使用VTK类

1、ERROR: In D:\VTK\VTK-6.3.0\Rendering\OpenGL\vtkOpenGLDisplayListPainter.cxx, line 188

vtkOpenGLDisplayListPainter (000001AC0C582AE0): failed after RenderInternal 1 OpenGL errors detected

0 : (1282) Invalid operation

测试解决:去掉vtkrender->render()函数。原因不明 猜想可能是重复调用render函数

VTK文档描述该函数:

virtual void vtkRenderer::Render()[virtual]

CALLED BY ***vtk**Render**Window*** ONLY. End-user pass your way and call **vtk**Render**Window:😗*Render**()****. Create an image.

所以调用的是vtkrenderwindow的render函数。

2、

img

问题原因:在切换重建模型时候 Actor没有被移除

Renderer->removeactor 要先移除旧的actor再添加新的actor

3、ERROR:

vtkOpenGLExtensionManager (00000232ABF21E00): Extension GL_VERSION_1_2 could not be loaded.

问题出现位置:使用三维纹理映射来实现体重建,运行时弹出的bug,

原因分析:VTK三维纹理映射类:vtkVolumeTextureMapper3D只其支持两种显卡nvidia和ATI;电脑默认的显卡使用的是集成显卡(已集成显卡的配置自然是不能很好的支持OPENGL)而不是独显。手动切换到独显。详细的切换方法:双显卡切换

未完 待续。。。。。。。。。。。。。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值