Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • VTK VTK
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 833
    • Issues 833
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 236
    • Merge requests 236
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • VTKVTK
  • VTKVTK
  • Issues
  • #17194
Closed
Open
Issue created Dec 05, 2017 by eclipse (eclipse)@irocks0922

vtkfollower performance problem

I am trying to add vtkfollower to vtkrenderer for indicating the chosen point.

textured vtkfollower is represented correctly, but in the renderer, if I look closer (camera comes closer to polydata) it's getting really slow(frame drop) and the boundary of image turned into black. I did not set the edge line or something might be related.

then, if I move camera far from model its rendering performance is going back to normal.

here is the code.

why is this situation happening? Did I something in a wrong way?

                    m_SourceFromQrc = vtkSmartPointer<vtkQImageToImageSource>::New();
		
		m_SourceFromQrc->SetQImage(&m_qimageFromQrc);
		m_SourceFromQrc->Update();

		m_spVTKTexture = vtkSmartPointer<vtkTexture>::New();
		
		m_spVTKTexture->SetInputConnection(m_SourceFromQrc->GetOutputPort());
		m_spVTKTexture->Update();

		m_spVTKPlane = vtkSmartPointer<vtkPlaneSource>::New();
	
		m_spVTKPlane->SetNormal(0.0, 0.0, 1.0);

		
		m_spVTKTextureMappedPlane = vtkSmartPointer<vtkTextureMapToPlane>::New();
		
		m_spVTKTextureMappedPlane->SetInputConnection(m_spVTKPlane->GetOutputPort());

		m_planeDataMapper = vtkSmartPointer<vtkOpenGLPolyDataMapper>::New();
		
		m_planeDataMapper->SetInputConnection(m_spVTKTextureMappedPlane->GetOutputPort());


		double followerOriginPoint[3] = { 0.0 };
		followerOriginPoint[1] = -1 / 2.0;

		m_follower = vtkSmartPointer< vtkFollower>::New();
		m_follower->SetOrigin(followerOriginPoint); 

		m_follower->SetPosition(
			pos[0] - followerOriginPoint[0],
			pos[1] - followerOriginPoint[1],
			pos[2] - followerOriginPoint[2]);
		m_follower->SetScale(6);
		m_follower->SetMapper(m_planeDataMapper);
		m_follower->SetTexture(m_spVTKTexture);

		m_follower->SetCamera(getRenderer(m_rendererType)->GetActiveCamera());
		m_follower->VisibilityOn();
		m_follower->ForceOpaqueOff();
		getRenderer(m_rendererType)->AddActor(m_follower);

If I change this code m_follower->SetTexture(m_spVTKTexture);

into m_follower->GetProperty()->SetTexture(m_spVTKTexture);,

Then, follower rendered properly without performance loss. but ForceOpaqueOff()does not work.

I am using VTK 7.0.

And the renderer is vtkrenderer.

Edited Oct 23, 2018 by Ben Boeckel
Assignee
Assign to
Time tracking