On 9. May 2008, at 0:15, 常辉 wrote:

> Yeah, that is floating point FBO
> We want to write more pixel data into FBO as rendering at channels
> maybe it can be seemed as readback two textures each frame and do  
> more fragment shading
> work after composited, that is more like deferred shading.

You can read back more than image per output frame. Does that help?

> I've browsed source codes in client lib, but in my oppinion, the two  
> eq::Image::Pixel objects '_colorPixels' and '_depthPixels' restrict  
> the readable pixel data to no more than 64 bits totally.

Why is that? If you extend Image::getDepth to return the correct pixel  
depth for your format/type, the accurate amount of data should be  
allocated.

> Could anybody give some advice about how to readback frame data more  
> than 64bits/pixel

Where do you see the limitation of 64 Bit/Pixel?

> and how to readback pixel data by the methods other than  
> 'glReadPixels', must we rewrite the eq::Image class completely?

What do you want to use? glGetTexImage?

> Current eq  just  support  reading back from framebuffer,  right?

Correct.

> so we must do it by extending 'eq::Image' for texture readback,

That would be one way. I'll think about it, but maybe we need to  
introduce a source/target enum for the Image!?


> and composite by ourself
> in 'eq::Compositor' class?

You don't need to do in the Compositor class. This is just a bunch of  
static functions, which you can use if it helps. Otherwise just  
implement what you need in Channel::frameAssemble, unless your use  
case is generic. In this case, extending the Compositor makes sense.


HTH,

Stefan.


_______________________________________________
eq-dev mailing list
[email protected]
https://in-zueri.ch/cgi-bin/mailman/listinfo/eq-dev
http://www.equalizergraphics.com

Reply via email to