Hi Robert,

So, is for the render to image execution path, is the CameraNode
rendering to an FBO and then glGetPixels is called, or is it to the
framebuffer?  The reason I ask is that I believe I set up the image like
this:

  _capImage->allocateImage(width, height, 1, GL_RGB, GL_FLOAT);
  _capImage->setInternalTextureFormat(GL_RGB16F_ARB);

I specify it as the target, and I still get a clamped image.  If I
understood were the image is coming from, that may help.  Is it the FB
or is it an FBO (texture)?

Also, is there a callback I can set up for the CameraNode that, when it
is executed, the render context, whether it be FB or FBO, is still bound
so that I may make my own glReadPixels, or better yet glGetTexImage,
call?

Thanks Robert,
Brad

---
RSC
BDC

> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:osg-users-
> [EMAIL PROTECTED] On Behalf Of Robert Osfield
> Sent: Monday, September 11, 2006 12:19 PM
> To: osg users
> Subject: Re: [osg-users] Render to Image still clamping
> 
> Hi Brad,
> 
> You need to sift through the OpenGL extension docs up on opengl.org's
> extension registry for hints about the clamping behavior.  By default
> OpenGL clamps all colours to the 0 to 1 range.  I recall there being
> extensions that relax this, and certain pixel formats may do this by
> default.
> 
> Robert.
> 
> 
> On 9/11/06, Brad Colbert <[EMAIL PROTECTED]> wrote:
> 
>       Hi folks,
> 
>       I was wondering if I could get a short description of how the
render
> to
>       image process works for a CameraNode.  It appears that my images
are
>       still clamped and digging through the code I see that
glReadPixels
> is
>       being called, but I also see a call for glGetTexImage, but I'm
> unsure if
>       this is used.  Can anyone shed light on how the CameraNode does
it's
>       render to image?  Also, is there a way to define a call back for
a
>       CameraNode that is rendering to an FBO so that the texture is
still
>       bound and then I can make the call to glGetTexImage.  This would
> save me
>       a ton of hassle
> 
>       Thanks,
>       Brad
> 
>       ---
>       RSC
>       BDC
> 
>       > -----Original Message-----
>       > From: Eric Sokolowsky [mailto:[EMAIL PROTECTED]
>       > Sent: Monday, September 11, 2006 9:58 AM
>       > To: Brad Colbert
>       > Cc: Eric Sokolowsky
>       > Subject: RE: [osg-users] OpenSceneGraph-1.1 Release Candidate
this
>       week
>       >
>       > On Mon, 11 Sep 2006, Brad Colbert wrote:
>       >
>       > > Eric,
>       > >
>       > > Thanks, I'll keep poking around.  I know it's not the
drivers
>       because I
>       > > wrote a program in OpenGL as well as Vega Prime that
downloads
> the
>       > > images without alteration.  One thing I did notice is that
it
> looks
>       like
>       > > glReadPixels is being used instead of glGetTexImage.  I
wonder
> if
>       this
>       > > has something to do with it?
>       >
>       > This is probably the case. glReadPixels reads from the display
> frame
>       > buffer which is probably NOT in a floating point format.
> glGetTexImage
>       > reads
>       > from a texture image which can be stored on the graphics card
in a
>       > floating
>       > point format. Your rasterization step will generate values
0-255
>       which,
>       > when read back as floating point, will be converted from 0-1.
>       >
>       > I do not know much about FBOs but I presume that they
similarly
> are
>       > implemented as a RGB[A] 8-bit integer buffer.
>       >
>       >
>       > >
>       > > -B
>       > >
>       > > ---
>       > > RSC
>       > > BDC
>       > >
>       > >> -----Original Message-----
>       > >> From: Eric Sokolowsky
[mailto:[EMAIL PROTECTED]
>       > >> Sent: Monday, September 11, 2006 8:59 AM
>       > >> To: Brad Colbert
>       > >> Cc: Eric Sokolowsky
>       > >> Subject: RE: [osg-users] OpenSceneGraph-1.1 Release
Candidate
> this
>       > > week
>       > >>
>       > >> On Mon, 11 Sep 2006, Brad Colbert wrote:
>       > >>
>       > >>> Hi Eric,
>       > >>>
>       > >>> There is still an issue with rendering to an image, where
the
>       image
>       > > is
>       > >>> clamped at 1.0 (for a floating point destination).  It's a
> little
>       > >>> difficult to follow the thread of where the image is being
>       > > downloaded so
>       > >>> I'm not sure at what point it is being clamped.  I know my
> image
>       > > isn't
>       > >>> clamped in texture memory because when I change my
destination
> to
>       be
>       > > an
>       > >>> FBO and place a simple shader on the result that throws 0
-
> 1.0
>       into
>       > >>> blue, 1.0 - 2.0 into green, and 2.0 - 3.0 into red I get
the
>       values
>       > > I
>       > >>> expect (blue fading into cyan and white).  (BTW this
basically
> how
>       I
>       > >>> have to get the image out now).
>       > >>
>       > >> Hmm. I'm afraid this is a little outside my expertise. I
have
> not
>       yet
>       > >> tried out FBOs, and I haven't tried rendering to texture. I
> highly
>       > > doubt
>       > >> that OSG is doing the clamping, so it is probably in the
OpenGL
>       driver
>       > >> somewhere. This is a complete guess. Most of my work was to
> help
>       read
>       > >> back compressed textures after they have been compressed by
the
>       > > hardware
>       > >> and/or the OpenGL driver, in order to save them to disk for
> reuse.
>       I
>       > >> probably won't be able to help you much with your issue.
>       > >>
>       > >> Perhaps you could ask your OpenGL driver vendor.
>       > >>
>       > >>>
>       > >>> I can modify the prerender example to do something similar
if
> that
>       > > will
>       > >>> help.
>       > >>>
>       > >>> Thanks,
>       > >>> Brad
>       > >>>
>       > >>> ---
>       > >>> RSC
>       > >>> BDC
>       > >>>> -----Original Message-----
>       > >>>> From: Eric Sokolowsky
[mailto:[EMAIL PROTECTED]
>       > >>>> Sent: Monday, September 11, 2006 8:44 AM
>       > >>>> To: Brad Colbert
>       > >>>> Cc: osg users; Eric Sokolowsky
>       > >>>> Subject: RE: [osg-users] OpenSceneGraph-1.1 Release
Candidate
>       this
>       > >>> week
>       > >>>>
>       > >>>> On Sat, 9 Sep 2006, Brad Colbert wrote:
>       > >>>>
>       > >>>>> Eric,
>       > >>>>>
>       > >>>>> Did your update or changes make it into the current
tree?
> I'm
>       > > still
>       > >>>>> having the same problem of clamping when trying to
capture
> an
>       FP16
>       > >>>>> image.  If not, what changes did you make?  This is
really a
>       show
>       > >>>>> stopper for me, since I need unclamped values to get the
> real
>       > >>> statistics
>       > >>>>> from my HDR scene.
>       > >>>>
>       > >>>> Yes, my changes made it into CVS. The
>       > >>>> osg::Image::readImageFromCurrentTexture
>       > >>>> API function now has an optional parameter at the end
which
>       defines
>       > >>> the
>       > >>>> type to
>       > >>>> be used when reading. If not given it will default to
>       > >>> GL_UNSIGNED_BYTE.
>       > >>>> It
>       > >>>> turns out that this value is not stored by OpenGL
anywhere;
> it
>       just
>       > >>> reads
>       > >>>> and
>       > >>>> converts whatever is there to the format requested. I
have
> also
>       > > fixed
>       > >>> some
>       > >>>> state inconsistencies when reading textures this way.
>       > >>>>
>       > >>>> I believe the changes I made are sufficient for my
purposes,
> but
>       if
>       > >>> there
>       > >>>> is something else that needs to be done, I am willing to
look
>       again
>       > > at
>       > >>> it.
>       > >>>>
>       > >>>>>
>       > >>>>> Thanks,
>       > >>>>> Brad
>       > >>>>>
>       > >>>>> ---
>       > >>>>> RSC
>       > >>>>> BDC
>       > >>>>>
>       > >>>>>> -----Original Message-----
>       > >>>>>> From: [EMAIL PROTECTED] <mailto:osg-
> [EMAIL PROTECTED]>  [mailto:osg-users-
>       > >>>>>> [EMAIL PROTECTED] On Behalf Of Eric
Sokolowsky
>       > >>>>>> Sent: Wednesday, July 05, 2006 2:48 PM
>       > >>>>>> To: osg users
>       > >>>>>> Subject: Re: [osg-users] OpenSceneGraph-1.1 Release
> Candidate
>       > > this
>       > >>>>> week
>       > >>>>>>
>       > >>>>>> On Wed, 5 Jul 2006, Robert Osfield wrote:
>       > >>>>>>
>       > >>>>>>> Hi Eric,
>       > >>>>>>>
>       > >>>>>>> On 7/5/06, Eric Sokolowsky
<[EMAIL PROTECTED]>
>       > > wrote:
>       > >>>>>>>> I have determined that when reading a texture back,
>       > >>>>> Image::_pixelFormat
>       > >>>>>>>> and Image::_internalTextureFormat should be set to
the
> same
>       > >>> value,
>       > >>>>>> which
>       > >>>>>>>> is obtained with a call to
>       > > glGetTexLevelParameteriv(textureMode,
>       > >>> 0,
>       > >>>>>>>> GL_TEXTURE_INTERNAL_FORMAT, ...). That is fine. But I
> still
>       > >>> haven't
>       > >>>>>>>> found a way to get the pixel format from OpenGL.
Perhaps
> we
>       > > need
>       > >>> to
>       > >>>>> add
>       > >>>>>>>> something to the osg::State to track this.
>       > >>>>>>>
>       > >>>>>>> I'm afraid I'm too cold on this topic to provide much
> insight.
>       > >>>>>>
>       > >>>>>> Well, the call to glGetTexImage() asks for a format and
a
> type.
>       > > The
>       > >>>>>> format parameter can be obtained from OpenGL, but the
type
>       cannot
>       > >>> be.
>       > >>>>>> Therefore, it seems reasonable to add a "type" argument
to
>       > >>>>>> osg::Image::readImageFromCurrentTexture, instead of
> arbitrarily
>       > >>>>> mandating
>       > >>>>>> one type or another. The current implementation is
buggy in
>       that
>       > > it
>       > >>>>>> sets the type parameter to the same internal format
that is
>       used
>       > > as
>       > >>>>> the
>       > >>>>>> format parameter.
>       > >>>>>>
>       > >>>>>> This should also help Brad Colbert with his texture
read
>       > > precision
>       > >>>>>> problem.
>       > >>>>>>
>       > >>>>>> A changed file is forthcoming.
>       > >>>>>>
>       > >>>>>>
>       > >>>>>>>> BTW, the set of images I was having trouble with were
not
> a
>       > >>>>> multiple of
>       > >>>>>>>> four in size. OpenGL will report an error when trying
to
> use
>       a
>       > >>>>>>>> compressed texture with glTexSubImage2D() if the
> subloaded
>       > >>> texture
>       > >>>>> is
>       > >>>>>>>> not of a multiple of four in both dimensions. Is this
>       something
>       > >>>>> that
>       > >>>>>>>> should be checked for by OSG? I have a workaround in
my
>       > >>> application
>       > >>>>>> that
>       > >>>>>>>> will disable texture compression on images that are
not a
>       > >>> multiple
>       > >>>>> of
>       > >>>>>>>> four in size.
>       > >>>>>>>
>       > >>>>>>> I believe the limit of a multiple of 4 is something
> related to
>       > > the
>       > >>>>>>> S3TC compression where it uses blocks of pixels as its
> block
>       to
>       > > do
>       > >>>>> the
>       > >>>>>>> compression.
>       > >>>>>>
>       > >>>>>> Yes, this is exactly the reason. The question is, is it
>       > > worthwhile
>       > >>>>> coding
>       > >>>>>> a check for this condition in OSG? I don't want to code
it
> if
>       it
>       > >>>>> stands
>       > >>>>>> little success for inclusion in OSG proper. I already
have
> a
>       > >>>>> workaround
>       > >>>>>> for
>       > >>>>>> my application that deals with this situation, but the
> general
>       > >>>>> solution
>       > >>>>>> might be useful to others as well. The change would
merely
>       > > disable
>       > >>> the
>       > >>>>>> compression request for images that are not a multiple
of
> four
>       in
>       > >>>>> either
>       > >>>>>> dimension, when glTexSubImage2D() is called.
>       > >>>>>>
>       > >>>>>> --
>       > >>>>>>      ____   __     Eric Sokolowsky  (GST)    NASA
Goddard
> Space
>       > >>> Flight
>       > >>>>>> Center
>       > >>>>>>     / __/__/_/__  Visualization Programmer
Scientific
>       > >>> Visualization
>       > >>>>>> Studio
>       > >>>>>>    / __/ _/ / _/ 301.286.3751
Mailstop
> 610.3
>       > > Bldg
>       > >>> 28
>       > >>>>> Rm
>       > >>>>>> E102
>       > >>>>>>   /___/_//_/__/ [EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>    Greenbelt, MD
>       > > 20771
>       > >>>>>> _______________________________________________
>       > >>>>>> osg-users mailing list
>       > >>>>>> [email protected]
>       > >>>>>> http://openscenegraph.net/mailman/listinfo/osg-users
>       > >>>>>> http://www.openscenegraph.org/
>       > >>>>>
>       > >>>>
>       > >>>> --
>       > >>>>      ____   __     Eric Sokolowsky  (GST)    NASA Goddard
> Space
>       > > Flight
>       > >>>> Center
>       > >>>>     / __/__/_/__  Visualization Programmer    Scientific
>       > > Visualization
>       > >>>> Studio
>       > >>>>    / __/ _/ / _/ 301.286.3751                  Mailstop
610.3
>       Bldg
>       > > 28
>       > >>> Rm
>       > >>>> E102
>       > >>>>   /___/_//_/__/ [EMAIL PROTECTED]
Greenbelt,
> MD
>       20771
>       > >>>
>       > >>
>       > >> --
>       > >>      ____   __     Eric Sokolowsky  (GST)    NASA Goddard
Space
>       Flight
>       > >> Center
>       > >>     / __/__/_/__  Visualization Programmer    Scientific
>       Visualization
>       > >> Studio
>       > >>    / __/ _/ / _/ 301.286.3751                  Mailstop
610.3
> Bldg
>       28
>       > > Rm
>       > >> E102
>       > >>   /___/_//_/__/ [EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>    Greenbelt, MD 20771
>       > >
>       >
>       > --
>       >      ____   __     Eric Sokolowsky  (GST)    NASA Goddard
Space
> Flight
>       > Center
>       >     / __/__/_/__  Visualization Programmer    Scientific
> Visualization
>       > Studio
>       >    / __/ _/ / _/ 301.286.3751                  Mailstop 610.3
Bldg
> 28
>       Rm
>       > E102
>       >   /___/_//_/__/ [EMAIL PROTECTED]   Greenbelt, MD
> 20771
>       _______________________________________________
>       osg-users mailing list
>       [email protected]
>       http://openscenegraph.net/mailman/listinfo/osg-users
> <http://openscenegraph.net/mailman/listinfo/osg-users>
>       http://www.openscenegraph.org/
> 
> 

_______________________________________________
osg-users mailing list
[email protected]
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/

Reply via email to