WorldViz User Forum  

Go Back   WorldViz User Forum > Vizard

Reply
 
Thread Tools Rate Thread Display Modes
  #1  
Old 04-14-2009, 04:07 AM
Joran Joran is offline
Member
 
Join Date: Jun 2006
Posts: 38
Send a message via Yahoo to Joran
Getting data from a render texture

Hello,

I want to get the data from a depth texture. I use the following command to create the texture:

Code:
depthtex = viz.addRenderTexture(format = viz.TEX_DEPTH, width = 8, height = 8)
And somewhere else I attach this texture to a viz.RENDER_DEPTH render node. Is there a way to get the data from this texture in python?

Greetings, Joran.
Reply With Quote
  #2  
Old 04-16-2009, 10:30 AM
farshizzo farshizzo is offline
WorldViz Team Member
 
Join Date: Mar 2003
Posts: 2,849
There is currently no built-in way to retrieve the data from a render texture. You could create a modifier plugin that attaches a post draw callback to the underlying osg::CameraNode object. From the callback you should be able to read the pixels from the texture into memory.

Do you need the data for real-time purposes (i.e. every frame)? If not, you can workaround the problem by rendering the depth texture to the screen and then capturing the screen to a file.
Reply With Quote
  #3  
Old 04-17-2009, 12:24 AM
Joran Joran is offline
Member
 
Join Date: Jun 2006
Posts: 38
Send a message via Yahoo to Joran
It is for real time processing. Is there any chance this functionality will be added in the future to Vizard?

Otherwise I will have to make that plugin. I am not looking forward to that.
Reply With Quote
  #4  
Old 06-03-2013, 02:11 AM
Joran Joran is offline
Member
 
Join Date: Jun 2006
Posts: 38
Send a message via Yahoo to Joran
I am revisiting this 'problem'. The version using a plugin did work (I need to recompile the plugin again). But now I saw the <multimedia:image>.saveToBuffer() method. It looks very useful. I still have:

Code:
depthtex = viz.addRenderTexture(format = viz.TEX_DEPTH, width = 8, height = 8)
And i can now save it to a buffer with:

Code:
depthtex.saveToBuffer('<raw>')
.

But this buffer then contains an 8 bit z-buffer. When I change my texture format to viz.TEX_DEPTH_32, I get the error message:

Code:
error pixelFormat = 81a7
** ERROR: Texture does not contain image data, cannot save to buffer
I am almost where I want to be. Is there some way to save a 16 bit or 32 bit z-buffer? Or maybe could the support for it be added to saveToBuffer?

Greetings, Joran.
Reply With Quote
Reply

Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
writing joystick position to a data file Saz Vizard 3 12-17-2008 05:18 AM
Translating a texture and its Alpha shivanangel Vizard 5 12-02-2008 04:52 PM
Randomly and Continuously Change Avatar's Face Texture Karla Vizard 4 08-22-2008 12:14 PM
tracking using quaternarion data jfreeman Vizard 2 06-01-2005 08:48 AM
how I can get my texture to appear exactly as is defined mspusch Vizard 1 04-23-2005 12:12 PM


All times are GMT -7. The time now is 08:54 AM.


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