ERROR: In D:\VTK-8.2.0\Rendering\OpenGL2\vtkTextureObject.cxx, line 1991
vtkTextureObject (000001F475680680): failed at glCopyTexImage2D 33191 1 OpenGL errors detected
0 : (1282) Invalid operation
Please share steps to reproduce
m_vtkWidget = new QVTKOpenGLNativeWidget(ui->renderWidget);
vtkSmartPointer<vtkRenderWindowInteractor>iren = vtkSmartPointer<vtkRenderWindowInteractor>::New();
iren->SetStillUpdateRate(0.016);
vtkSmartPointer<vtkGenericOpenGLRenderWindow> renderWindow = vtkSmartPointer<vtkGenericOpenGLRenderWindow>::New();
//renderWindow->SetWindowName("RenderWindow");
renderWindow->SetDesiredUpdateRate(0.016);
renderWindow->SetInteractor(iren);
m_vtkWidget->SetRenderWindow(renderWindow);
QString DirName = QFileDialog::getExistingDirectory(this,tr("select file"),"D:",0);
vtkSmartPointer<vtkDICOMImageReader>dicomImagereader = vtkSmartPointer<vtkDICOMImageReader>::New();
dicomImagereader->SetDirectoryName(DirName.toStdString().c_str());
//dicomImagereader->SetDirectoryName("pig");
dicomImagereader->Update();
vtkSmartPointer<vtkGPUVolumeRayCastMapper>volumeMapper = vtkSmartPointer<vtkGPUVolumeRayCastMapper>::New();
volumeMapper->SetBlendMode(vtkVolumeMapper::COMPOSITE_BLEND);
volumeMapper->SetInputConnection(dicomImagereader->GetOutputPort());
volumeMapper->SetSampleDistance(volumeMapper->GetSampleDistance() * 0.9); //光线步长
volumeMapper->SetAutoAdjustSampleDistances(0);
//volumeMapper->SetCropping(1);//开启Cropping功能
//volumeMapper->SetCroppingRegionPlanes(origin[0] + dims[0] * spacing[0] / 3, origin[0] + dims[0] * spacing[0] / 3 * 2, origin[1] + dims[1] * spacing[1] / 3, origin[1] + dims[1] * spacing[1] / 3 * 2, origin[2] + dims[2] * spacing[2] / 3, origin[2] + dims[2] * spacing[2] / 3 * 2);
//volumeMapper->SetCroppingRegionFlagsToCross();
volume = vtkVolume::New();
volume->SetMapper(volumeMapper);
volume->SetProperty(VpParser("CTAAA2.vp"));
vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();
renderer->AddVolume(volume);
renderer->SetBackground(0.5,0.5,0.5);
m_vtkWidget->GetRenderWindow()->AddRenderer(renderer);
m_vtkWidget->show();
I changed from ->render to show(), error disappeared, but window does nothing
Here is an example usage:
https://kitware.github.io/vtk-examples/site/Cxx/Qt/EventQtSlotConnect/
1 Like
m_vtkWidget->GetRenderWindow()->Render(); * this code will still report the error
- I think his situation is the same as mine