Hi,

clement vidal wrote:
Thanks for this precision.

Sorry I try to make a simple example to explain you my problem it's probably not the best but my real shader is not like that, it doesn't use global variable but it's the same principle. I put some value in my fragData[] in relation with the depth value, and i access to the next depth layer where I put other value and I would like the maxBlending result between this different colors.

yes, it's difficult to guess what else can be wrong. I can only tell you that render targets do not blend automatically in the pass they are created, you will have to apply the multiple textures to a geometry in order to use blending. In other words: I think you will need multiple passes for depth peeling.

It would have been great to have access to the frame buffer in shaders, but it's not possible at the moment.

jp




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

    Hi,


    clement vidal wrote:

        Thanks for the link, i will look at this.

        But for the shader example I gave you I think that it do the
        first treatment for the  first pixel then it peel the first
        layer and do the second treatment for the second depth layer,
        but maybe I wrong.

    Like you wrote it (I'm assuming no uniforms), the code would always
    execute as if i=0. There is no global state in the fragment
    programs, your code would execute separately for every pixel.



        The code of osgoit is it available somewhere?

    check here in the thread attachment:
    
http://thread.gmane.org/gmane.comp.graphics.openscenegraph.cvs/6263/focus=6269

    jp



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

           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]>
               <mailto:[email protected]
        <mailto:[email protected]>> <mailto:[email protected]
        <mailto:[email protected]>
               <mailto:[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]>>
                      <mailto:[email protected]
        <mailto:[email protected]>
               <mailto:[email protected]
        <mailto:[email protected]>>> <mailto:[email protected]
        <mailto:[email protected]>

               <mailto:[email protected] <mailto:[email protected]>>

                      <mailto:[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]>>
                      <mailto:[email protected]
        <mailto:[email protected]>
               <mailto:[email protected]
        <mailto:[email protected]>>>
                             <mailto:[email protected]
        <mailto:[email protected]>
               <mailto:[email protected]
        <mailto:[email protected]>>
                      <mailto:[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]>>
                      <mailto:[email protected]
        <mailto:[email protected]>
               <mailto:[email protected]
        <mailto:[email protected]>>>
                         <mailto:[email protected]
        <mailto:[email protected]>
               <mailto:[email protected]
        <mailto:[email protected]>>
                      <mailto:[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]>
               <mailto:[email protected]
        <mailto:[email protected]>>
                      <mailto:[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]>>
                  <mailto:[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]>
               <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