Hi,

clement vidal wrote:
Thanks for your help.

But the solution that you gave me it's not really what I want to do. The simple example i gave you it's just to explain what kind of result I need. Actually I'm trying to implement a Dual Depth Peeling based on the Nvidia Paper and it use this kind of blending. For example in my shader if I do that:

int i=0;

void main()
{
    if(i=0)
    {
       gl_FragData[0 = vec4(1.0,0.0,0.0,1.0);

      i=1;
      return;
}
   gl_FragData[0] = vec4(0.0,1.0,0.0,1.0);
}

I would like have yellow in my texture for now I have green. Here again it's just an example, but that's why i would like to use a blend equation, it's the same problem as the other example I gave you I would like do a MAX blending between the value previously in the texture and the new value.

Have you an idea how to do that?

Well your shader only executes once... so AFAIK you can only write once to the frame buffer in a render pass.

If you want colours to blend with previous ones you first have to create the previous ones, so you will need multiple passes.

Maybe also see here for inspiration:
http://thread.gmane.org/gmane.comp.graphics.openscenegraph.cvs/6263/

jp



2010/1/7 J.P. Delport <[email protected] <mailto:[email protected]>>

    Hi Clement,


    clement vidal wrote:

        Hi JP

        For now I Initialize a texture with the value A, in the shader I
        put the value B and I would like to have a the end in the
        texture the max blending between the value A and B.

        Lets do an example:

        I create an texture Tex initialized with color red (1,0,0,1)

        I attach my texture to a camera
        Camera->attach(osg::Camera::COLOR_BUFFER0, Tex);

        I use a shader witch do this treatment: gl_FragData[0] =
        vec4(0.0,1.0,0.0,1.0);

        And I would like have a yellow (1.0,1.0,0.0,1.0) texture at the
        end of the treatment.

        For now using an osg::BlendEquation with RGBA_MAX blending, I
        have if I define a clearColor to my camera the blending between
        this clearColor and the color use in the shader. I think this is
        normal because the blendEquation define how the blending is
        doing between the color previously in the frame buffer and the
        added color. But it's not what i want I would like to have the
        blending between the color previously in the texture and the
        added color.


    OK I think I understand better now. To use your texture as input (in
    order to kind of make it the background (as you have working with
    clearcolour)) you will have to map it onto a quad (screen/camera
    projection aligned) [1]. Then you make your camera look at this quad
    and the fragment shader would then blend with the texture in the
    frame buffer. Reading from and writing to the same texture can
    sometimes give problems, so you might have to make a copy for the
    output (ping-pong, see osggameoflife).

    I'm also not sure why you want to use blending, do you have some
    special algorithm that needs it? If you have an initial texture with
    input values, you can just sample it in your shader and modify the
    value yourself (based on maths, input uniforms or other textures)
    and put it into the final texture.

    [1] Attachments to the camera are outputs, textures bound to
    geometry are used as inputs for RTT.

    cheers
    jp




        Thanks for your help

        Clement

        2010/1/7 J.P. Delport <[email protected]
        <mailto:[email protected]> <mailto:[email protected]
        <mailto:[email protected]>>>


           Hi Clement,

           could you explain a bit more what you expect and what you are
           getting? Do you want to blend between the different textures
        (AFAIK
           you cannot do this unless you do another pass)? Are you expecting
           max, but getting average?

           jp

           clement vidal wrote:


               Hi,

               I have a problem with BlendEquations and shaders. That is the
               situation:

               I attach several textures to my camera using COLOR_BUFFER0,
               COLOR_BUFFER1, ...
               I use a shader to make the rendering into this textures.

               There is some values in this textures and i would like to
        use a
               max blending between the value wich are already in and the
               values i affect in the shader.

               When I define an osg::BlendEquation with RGBA_MAX blending, i
               have the blend result between the value in the frame buffer
               (background color or ClearColor ) and the value in the
        shader.

               What I do wrong? Somebody have a idea?

               Thanks for helping


------------------------------------------------------------------------


               _______________________________________________
               osg-users mailing list
               [email protected]
        <mailto:[email protected]>
               <mailto:[email protected]
        <mailto:[email protected]>>

http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


           --    This message is subject to the CSIR's copyright terms and
           conditions, e-mail legal notice, and implemented Open Document
           Format (ODF) standard. The full disclaimer details can be
        found at
           http://www.csir.co.za/disclaimer.html.

           This message has been scanned for viruses and dangerous
        content by
           MailScanner, and is believed to be clean.  MailScanner thanks
           Transtec Computers for their support.


           _______________________________________________
           osg-users mailing list
           [email protected]
        <mailto:[email protected]>
           <mailto:[email protected]
        <mailto:[email protected]>>

http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org



        ------------------------------------------------------------------------

        _______________________________________________
        osg-users mailing list
        [email protected]
        <mailto:[email protected]>
        
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


-- This message is subject to the CSIR's copyright terms and
    conditions, e-mail legal notice, and implemented Open Document
    Format (ODF) standard. The full disclaimer details can be found at
    http://www.csir.co.za/disclaimer.html.

    This message has been scanned for viruses and dangerous content by
    MailScanner, and is believed to be clean.  MailScanner thanks
    Transtec Computers for their support.

    _______________________________________________
    osg-users mailing list
    [email protected]
    <mailto:[email protected]>
    http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org



------------------------------------------------------------------------

_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

--
This message is subject to the CSIR's copyright terms and conditions, e-mail legal notice, and implemented Open Document Format (ODF) standard. The full disclaimer details can be found at http://www.csir.co.za/disclaimer.html.

This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. MailScanner thanks Transtec Computers for their support.

_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to