View Full Version : Saving renderTexture

11-21-2012, 09:42 AM

I am trying to save the content of a renderTexture to a file.
I basically use code from the examples as listed further down my post.
Everytime I call renderTexture.save("test") i get an error message that tells me that there is no data in the image.
* ERROR: Texture does not contain image data, cannot save to file 'test'

Any hints on what I am doing wrong?
I also put the texture on a quad to see if there is actually something going wrong, but the desired render is diplayed fine on the quad.
Here is my code:

# Create render texture for sending screenshots
self.renderTexture = viz.addRenderTexture()

# Create render node as camera
self.renderNode = viz.addRenderNode(size=(800,600))

# Do not inherit view/projection settings from main window

# Set FOV for renderTexture camera

# Render to renderTexture feed texture
#NOTE: I also tried renderNode.setTexture here, but that didn't work either

# Only render once per frame, in case stereo is enabled
self.renderNode.setRenderLimit(viz.RENDER_LIMIT_FR AME)

#add a texture quad
quad = viz.addTexQuad()
#add the rendertexture to the texturequad
quad.texture( self.renderTexture )
#position the texture quad
#NOTE: The texture renders fine on the quad
#This call fails with above error

11-21-2012, 11:30 AM
Are you waiting a frame to allow the render node to actually render to the texture? Also, you are not saving the texture to a valid image format. Make sure to add a valid extension to the filename (e.g. test.png, test.jpg, ...).

11-22-2012, 06:55 AM
I scheduled the whole process as a task and used yield waitFrame(1) to make sure that the node has had time to render at least once.
Works well now.
Thanks a lot!