天天看點

VTK開發--錯誤集錦

1、文字未顯示:

現象:在VTK中使用vtkTextActor或vtkActor2D類顯示文字,結果文字未顯示出來;

解決方法:在程式上方加上 VTK_MODULE_INIT( vtkRenderingFreeType )

2、編譯出現錯誤:no override found for '...'

解決方法:在程式上方加上

#include <vtkAutoInit.h>

VTK_MODULE_INIT( vtkRenderingOpenGL );

或:

VTK_MODULE_INIT( vtkRenderingOpenGL 2);

注:根據編譯時選擇的是OpenGL還是OpenGL2。

3、運作出現錯誤:vtkLookupTable [0000000A494850]:Bad table range:[1e+010,-1e+010]

原因:vtkLookupTable範圍設定錯誤,SetRange( double min, double max )參數min比max小

解決方法:正确設定SetRange(...)函數的參數

4、運作時出現錯誤:Error: no voerride found for "vtkGPUVolumeRayCastmapper"

解決方法:在main函數前加上

VTK_MODULE_INIT( vtkRenderingVolumeOpenGL );

5、運作時出現錯誤:vtkTrivialProducer (0000000009584F50): This data object does not contain the requested extent.

原因:使用vtkImageReslice,設定完後未調用Update()方法;

解決方法:pImageReslice->Update();

備注:其他類出現此錯誤同此解決方法。

6、運作時出現錯誤:vtkOpenGLTexture (0000000002540430): No scalar values found for texture input!

原因:建立vtkTextActor時,未調用SetInput()方法;或調用SetInput()方法,參數給的空字元串。這都相當于建立了一個空vtkTextActor,導緻該錯誤發生。或未調用初始化宏VTK_MODULE_INIT;

解決方法:(1)在先程式上方加上 VTK_MODULE_INIT( vtkRenderingFreeType ),依然不可以的話,進行(2);

            (2)建立vtkTextActor時進行初始化,即調用SetInput()方法,且必須給出參數,哪怕是一個空格字元創。

7、運作時出現錯誤:Invalid pixel format, no OpenGL support

解決方法:不要在QVtkWidget的子類構造函數中建立需要render(渲染)的對象,在使用時進行渲染。

8、運作時警告:Warning: Link to vtkInteractionStyle for default style selection.

解決方法:在main函數前加上 VTK_MODULE_INIT( vtkInteractionStyle );

9、運作時錯誤:vtkOpenGLExtensionManager (00000232ABF21E00): Extension GL_VERSION_1_2 could not be loaded.

原因:VTK三維紋理映射類:vtkVolumeTextureMapper3D隻其支援兩種顯示卡nvidia和ATI;電腦預設的顯示卡使用的是內建顯示卡(已內建顯示卡的配置自然是不能很好的支援OPENGL)而不是獨顯。

解決方法:手動切換到獨顯。詳細的切換方法:雙顯示卡切換。

10、運作時警告:VTKOpenGLRenderer(00...00043A450):Resetting view-up since view plane normal is parallel

解決方法:暫未知。

11、運作時錯誤裡:vtkTextActor[000...26380]:Failed getting the TextRenderer instance!

解決方法:在.cpp檔案開頭加上VTK_MODULE_INIT( vtkRenderingFreeType );

繼續閱讀