Re: how to render VTK into user provided FBO

Max Chen <[email protected]>
Newsgroups gmane.comp.lib.vtk.user
Message-ID <[email protected]>
Thank you. Now I have a working prototype.
But I get a strangle issue, I can only resize the offscreen
vtkGenericOpenGLRenderWindow 3 times, otherwise I get error like :
ERROR: In E:\projects\VTK-8.1.2\Rendering\OpenGL2\vtkOpenGLActor.cxx, line
107
vtkOpenGLActor (0B2C4C10): failed after Render 1 OpenGL errors detected
 0:(1285)out of memory

the resize code is :
void MyVTKRenderer::UpdateSize(unsigned int w, unsigned int h)
{
	if (w == m_Width && h == m_Height)
		return;

	if (w == 0 || h == 0)
		return;

	m_Width = w;
	m_Height = h;

	// resize the render window
	m_vtkRenderWindow->SetSize(m_Width, m_Height);
	m_vtkRenderWindow->FullScreenOn();
	m_vtkRenderWindow->OffScreenRenderingOn();
	//m_vtkRenderWindow->SetMultiSamples(0);
	m_vtkRenderWindow->Modified();
	m_vtkRenderWindowInteractor->UpdateSize(m_Width, m_Height);
	m_vtkRenderWindowInteractor->Modified();
	m_IsInited = false;

	// delete old fbo
	glDeleteBuffers(1, &m_fbo);
	glDeleteBuffers(1, &m_rbo);
	glDeleteTextures(1, &m_tex);

	// create a texture object
	glGenTextures(1, &m_tex);
	glBindTexture(GL_TEXTURE_2D, m_tex);
	glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
	glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
	glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, m_Width, m_Height, 0, GL_RGB,
GL_UNSIGNED_BYTE, 0);
	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
	glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
	glBindTexture(GL_TEXTURE_2D, 0);
	// create a renderbuffer object to store depth info
	glGenRenderbuffers(1, &m_rbo);
	glBindRenderbuffer(GL_RENDERBUFFER, m_rbo);
	glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT, m_Width,
m_Height);
	glBindRenderbuffer(GL_RENDERBUFFER, 0);

	// create a framebuffer object
	glGenFramebuffers(1, &m_fbo);
	glBindFramebuffer(GL_FRAMEBUFFER, m_fbo);
	glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
m_tex, 0);
	glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT,
GL_RENDERBUFFER, m_rbo);
	glBindFramebuffer(GL_FRAMEBUFFER, 0);
}

Another issue is , these code can't work on VTK-8.2 rc1



--
Sent from: http://vtk.1045678.n5.nabble.com/VTK-Users-f1224199.html
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the VTK FAQ at: http://www.vtk.org/Wiki/VTK_FAQ

Search the list archives at: http://markmail.org/search/?q=vtkusers

Follow this link to subscribe/unsubscribe:
https://public.kitware.com/mailman/listinfo/vtkusers
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.