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

