Stefano schrieb:
> nope.. i was wrong.. now i can succesfully take the rendering.. but as
> TextureGrabBackground (and Foreground also) use glCopyTexSubImage2D to
> copy the rendering, they will clamp the values between [0,1].. so all
> i am getting is a LDR render in a float16 image
>
>         "The pixels in the rectangle are processed exactly as if
>         glCopyPixels had been called, but the process stops just
>         before final conversion.  At this point, all pixel component
>         values are clamped to the range [0, 1] and then converted to
>         the texture's internal format for storage in the texel
>         array."
>
> any suggestions?
>   
Hi,

you can alternatively use the FBPViewport instead, which also supports 
rendering into floating-point-textures (if the internalFormat is set 
appropriately).

Bye
Yvonne

> 2007/4/20, Stefano <[EMAIL PROTECTED]>:
>   
>> the problem was solved adding setBindTarget(GL_TEXTURE_RECTANGLE_NV) to the 
>> texture.. thanks
>>
>>
>> 2007/4/19, Marcus Lindblom <[EMAIL PROTECTED]>:
>>
>>     
>>>  I think you want a PolygonBackground instead. That has worked for me
>>> previously.
>>>
>>> Try with a SimpleTexturedMaterial and make sure that part of the
>>> rendering works before doing anything else.
>>>
>>> Also, I'm not sure about TextureGrabForeground and resizing. It might
>>> resize the image automatically, but if not, try setting it to a larger
>>> size than 1,1.
>>>
>>> Cheers,
>>> /Marcus, who's now leaving on vacation in California for two weeks. See
>>> all you guys in while! :-)
>>>
>>>  Stefano wrote:
>>>       
>>>> Hi there!
>>>> What I want to do is to:
>>>> - render some HDR scene into a viewport (not tone mapped yet!)
>>>> - grab the rendering with a TextureGrabForeground
>>>> - redraw the rendering using a PolygonForeground with a ShaderMaterial
>>>> to do
>>>> some blooming and then tone mapping
>>>>
>>>> is this possible with opensg? i think so..
>>>>
>>>> this is my simple osg setup code:
>>>>
>>>>    ImagePtr img = Image::create();
>>>>         
>>>  >    addRefCP(img);
>>>       
>>>>    beginEditCP(img);
>>>>        img->set(Image::OSG_RGB_PF, 1, 1, 1, 1, 1, 0, NULL,
>>>> Image::OSG_FLOAT16_IMAGEDATA);
>>>>    endEditCP(img);
>>>>
>>>>    TextureChunkPtr tex = TextureChunk::create();
>>>>    addRefCP(tex);
>>>>    beginEditCP(tex);
>>>>        tex->setImage(img);
>>>>        tex->setTarget(GL_TEXTURE_RECTANGLE_NV);
>>>>        tex->setInternalFormat(GL_FLOAT_RGB16_NV);
>>>>        tex->setWrapS( GL_CLAMP_TO_EDGE );
>>>>        tex->setWrapT( GL_CLAMP_TO_EDGE);
>>>>        tex->setMinFilter( GL_NEAREST );
>>>>        tex->setMagFilter( GL_NEAREST );
>>>>        tex->setScale(false);
>>>>    endEditCP(tex);
>>>>
>>>>    TextureGrabForegroundPtr tg = TextureGrabForeground::create();
>>>>    beginEditCP(tg);
>>>>        tg->setTexture(tex);
>>>>    endEditCP(tg);
>>>>
>>>>    SHLChunkPtr _vGloomShader = SHLChunk::create();
>>>>    beginEditCP(_vGloomShader);
>>>>        _vGloomShader->setVertexProgram(Utils::getFile("gloom.vert"));
>>>>        _vGloomShader->setFragmentProgram(Utils::getFile("gloom.frag"));
>>>>        _vGloomShader->setUniformParameter("image", 0);
>>>>    endEditCP(_vGloomShader);
>>>>
>>>>    ChunkMaterialPtr _vGloomMaterial = ChunkMaterial::create();
>>>>    beginEditCP(_vGloomMaterial);
>>>>        _vGloomMaterial->addChunk(tex);
>>>>        _vGloomMaterial->addChunk(_vGloomShader);
>>>>    endEditCP(_vGloomMaterial);
>>>>
>>>>    PolygonForegroundPtr polyFrgnd =
>>>> Utils::makeDefaultPolygonForeground();
>>>>    beginEditCP(polyFrgnd);
>>>>        polyFrgnd->setMaterial(_vBlurMaterial);
>>>>    endEditCP(polyFrgnd);
>>>>
>>>> ====
>>>>
>>>> even with a basic shader without any effects like this below all i'm
>>>> getting
>>>> is a black viewport..
>>>>
>>>> ((gloom.vert))
>>>>
>>>> void main(void) {
>>>>    gl_Position=ftransform();
>>>>    gl_TexCoord[0] = gl_MultiTexCoord0;
>>>> }
>>>>
>>>> (( gloom.frag))
>>>>
>>>> uniform samplerRECT image;
>>>> // hardcoded viewport size.. :P
>>>> const int imageTextureWidth = 620;
>>>> const int imageTextureHeight = 386;
>>>> const float toneMap = 0.332;
>>>>         
>>>  > const float gamma = 2.2;
>>>       
>>>> const float invGamma = 1/gamma;
>>>>
>>>> half3 toneMapping(half3 hdrColor) {
>>>>    hdrColor = pow(hdrColor, 0.4545);
>>>>    return clamp((hdrColor * toneMap) , 0.0, 1.0 );
>>>> }
>>>>
>>>> void main(void) {
>>>>    vec2 pixelCoord;
>>>>    pixelCoord[0] = gl_TexCoord[0].x * float(imageTextureWidth);
>>>>    pixelCoord[1] = gl_TexCoord[0].y * float(imageTextureHeight);
>>>>         
>>>  >
>>>       
>>>>    ivec2 intCoord = floor(pixelCoord);
>>>>    half3 color = half3(texture2DRect(image, intCoord));
>>>>
>>>>    gl_FragColor = half4(toneMapping(color), 1.0);
>>>> }
>>>>
>>>> ===
>>>>
>>>>         
>>>  > any ideas? am i setting up some wrong parameters to the texture?
>>>       
>>>> thanks in advance
>>>>
>>>> ------------------------------------------------------------------------
>>>>
>>>> -------------------------------------------------------------------------
>>>> This SF.net email is sponsored by DB2 Express
>>>> Download DB2 Express C - the FREE version of DB2 express and take
>>>> control of your XML. No limits. Just data. Click to get it now.
>>>>  http://sourceforge.net/powerbar/db2/
>>>> ------------------------------------------------------------------------
>>>>
>>>> _______________________________________________
>>>> Opensg-users mailing list
>>>>         
>>>  > [email protected]
>>>       
>>>> https://lists.sourceforge.net/lists/listinfo/opensg-users
>>>>
>>>>         
>>> -------------------------------------------------------------------------
>>> This SF.net email is sponsored by DB2 Express
>>> Download DB2 Express C - the FREE version of DB2 express and take
>>> control of your XML. No limits. Just data. Click to get it now.
>>> http://sourceforge.net/powerbar/db2/
>>> _______________________________________________
>>> Opensg-users mailing list
>>>  [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/opensg-users
>>>
>>>       
>>
>> --
>> Stefano Verna
>> mail/gtalk: [EMAIL PROTECTED]
>> skype: steffoz
>>     
>
>
>
>   


-- 
Yvonne Jung
Fraunhofer-IGD    | Tel.: ++49-6151-155-290
Fraunhoferstr. 5  | Fax.: ++49-6151-155-196
64283 Darmstadt   | email: [EMAIL PROTECTED]
Germany           | http://www.igd.fhg.de/igd-a4


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to