WorldViz User Forum

WorldViz User Forum (https://forum.worldviz.com/index.php)
-   Vizard (https://forum.worldviz.com/forumdisplay.php?f=17)
-   -   Saving renderTexture (https://forum.worldviz.com/showthread.php?t=4421)

Timbuntu 11-21-2012 08:42 AM

Saving renderTexture
 
Hello,

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.
Code:

* 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:
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
                #self.renderNode.setInheritView(False)
               
                # Set FOV for renderTexture camera
                self.renderNode.setFov(self.FOV,800/600.0,0.1,1000.0)
               
                # Render to renderTexture feed texture
                self.renderNode.attachTexture(self.renderTexture)
                #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_FRAME)
               
                #add a texture quad
                quad = viz.addTexQuad()
                #add the rendertexture to the texturequad
                quad.texture( self.renderTexture )
                #position the texture quad
                quad.setPosition(0,1,0)
                #NOTE: The texture renders fine on the quad
                self.renderTexture.save("test")
                #This call fails with above error


farshizzo 11-21-2012 10: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, ...).

Timbuntu 11-22-2012 05: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!


All times are GMT -7. The time now is 11:21 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2021, vBulletin Solutions, Inc.
Copyright 2002-2018 WorldViz LLC