<div dir="ltr">Hi Sebastian,<div><br></div><div>Yah, this is off topic now, but once here: re: trees, I am getting on older card ~3 mil @ 60Hz with geometry shaders :-). Static though. Why you are using Matrices in Image/Texture for vegetation, or you have SpeedTree like vegetation?</div><div><br></div><div>But anyway, thanks for disabling resize/mipmaping .. not sure (getting old :-)) can not recall if we did these for the instancing, but for sure I will try it in  the lighting system I am working on now .. Thanks a bunch for these hints !</div><div><br></div><div>Nick</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jul 22, 2015 at 2:17 PM, Sebastian Messerschmidt <span dir="ltr"><<a href="mailto:sebastian.messerschmidt@gmx.de" target="_blank">sebastian.messerschmidt@gmx.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000"><span class="">
    <div>Am 22.07.2015 um 14:12 schrieb Trajce
      Nikolov NICK:<br>
    </div>
    <blockquote type="cite">
      <div dir="ltr">Hi Sebastian,
        <div><br>
        </div>
        <div>few months ago I tested something (was the lighting system)
          implementation with updates via osg::Image and osg::Texture -
          not related to instancing at all, but the mentioned method. My
          colleague then did benchmarking and the update of the Image
          (and the texture) by OSG was terribly slow - the same thing
          using raw OpenGL calls out-performed the one from OSG. I also
          remember Robert implemented then the Vertex Attribute Divisor
          wrapper for OSG so it might really need example of these with
          various techniques ...</div>
      </div>
    </blockquote></span>
    Thats right for data dynamically changed via texture. Static data is
    incredibly fast however (I'm talking ~1mio trees @30Hz min) . <br>
    Getting slightly off-topic here, but:<br>
    Are you sure you had resizing and mipmapping disabled for the
    texture/image? That is certainly a performance killer.<br>
    <blockquote type="cite"><span class="">
      <div dir="ltr">
        <div><br>
        </div>
        <div>Thanks for the ping :-)</div>
        <div><br>
        </div>
        <div>Nick</div>
      </div>
      </span><div class="gmail_extra"><br>
        <div class="gmail_quote"><span class="">On Wed, Jul 22, 2015 at 1:59 PM,
          Sebastian Messerschmidt <span dir="ltr"><<a href="mailto:sebastian.messerschmidt@gmx.de" target="_blank"></a><a href="mailto:sebastian.messerschmidt@gmx.de" target="_blank">sebastian.messerschmidt@gmx.de</a>></span>
          wrote:<br>
          </span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div bgcolor="#FFFFFF" text="#000000"><span class="">
              <div>Hi Nick, <br>
                <br>
                The implementation is almost to complicated. Using
                instancing with osg::Image and a texture almost beats
                all other implementations I've tested so far in terms of
                complexity and performance.<br>
                Maybe we should some more examples for this to osg.<br>
                Cheers<span><font color="#888888"><br>
                    Sebastian <br>
                    <br>
                  </font></span></div>
              </span><blockquote type="cite"><span class=""><span>
                  <div dir="ltr">Hi Luo,
                    <div><br>
                    </div>
                    <div>have a look at this paper - it is OSG related
                      with GL calls (In the latest OSG release there are
                      OSG wrappers for most of them). It will help you
                      with large number of instancing and controlling
                      each instance separately</div>
                    <div><br>
                    </div>
                    <div><a href="http://3dcgtutorials.blogspot.com/2013/09/instancing-with-openscenegraph-part-ii.html" target="_blank">http://3dcgtutorials.blogspot.com/2013/09/instancing-with-openscenegraph-part-ii.html</a><br>
                    </div>
                    <div><br>
                    </div>
                    <div>Hope it helps</div>
                    <div>Nick</div>
                  </div>
                </span>
                </span><div><div class="h5"><div>
                  <div>
                    <div class="gmail_extra"><br>
                      <div class="gmail_quote">On Wed, Jul 22, 2015 at
                        9:25 AM, Sebastian Messerschmidt <span dir="ltr"><<a href="mailto:sebastian.messerschmidt@gmx.de" target="_blank">sebastian.messerschmidt@gmx.de</a>></span>
                        wrote:<br>
                        <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<span><br>
                            <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> Hi,<br>
                              <br>
                              I need to use cylinder to simulate the
                              “ladder”.  So there are many cylinder to
                              create. I new a osg::Geode , and then use
                              it to new 10000 osg::MatrixTransform, all
                              these osg::MatrixTransform were added to
                              one group.<br>
                              <br>
                              But the program runs very very slow.<br>
                            </blockquote>
                          </span> Are you testing in debug mode?<span><br>
                            <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> In fact I
                              create the same scene using opengl, the
                              program runs quickly.<br>
                            </blockquote>
                          </span> Are you using the osg::Shapedrawable
                          for the cylinder shape? Try to replace it with
                          a simple triangle for testing to see if the
                          geometry or the transforms are your
                          bottleneck.<br>
                          <br>
                          I'd use hw-instancing for this amount of
                          copies of a simple geometry or bake the
                          transformations into big geometries
                          representing hundreds of cylinders each.<br>
                          <br>
                          Also if the 10000 elements are spatially
                          separable and thus not all of them in the view
                          at the same time you should use some grouping
                          to balance your scenegraph. Simply putting
                          10000 transforms into one group most likely
                          will kill performance, as all children will
                          have to be traversed each frame.<span><br>
                            <br>
                            <br>
                            <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> <br>
                              How can I upgrade my program?<br>
                              thanks.<br>
                            </blockquote>
                          </span> Can you provide a more detailed
                          description or an example? Your question is
                          too open to get you specific answers.<br>
                          <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span> <br>
                              Thank you!<br>
                              <br>
                              Cheers,<br>
                              LUO<br>
                              <br>
                              ------------------<br>
                              Read this topic online here:<br>
                            </span><a href="http://forum.openscenegraph.org/viewtopic.php?p=64386#64386" rel="noreferrer" target="_blank">http://forum.openscenegraph.org/viewtopic.php?p=64386#64386</a><br>
                            <br>
                            <br>
                            <br>
                            <br>
                            Attachments:<br>
                            <a href="http://forum.openscenegraph.org//files/mfc_osg_124.cpp" rel="noreferrer" target="_blank">http://forum.openscenegraph.org//files/mfc_osg_124.cpp</a><br>
                            <br>
                            <br>
_______________________________________________<br>
                            osg-users mailing list<span><br>
                              <a href="mailto:osg-users@lists.openscenegraph.org" target="_blank">osg-users@lists.openscenegraph.org</a><br>
                              <a href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org" rel="noreferrer" target="_blank">http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org</a><br>
                            </span></blockquote>
                          <div>
                            <div> <br>
_______________________________________________<br>
                              osg-users mailing list<br>
                              <a href="mailto:osg-users@lists.openscenegraph.org" target="_blank">osg-users@lists.openscenegraph.org</a><br>
                              <a href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org" rel="noreferrer" target="_blank">http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org</a><br>
                            </div>
                          </div>
                        </blockquote>
                      </div>
                      <br>
                      <br clear="all">
                      <div><br>
                      </div>
                      -- <br>
                      <div>trajce nikolov nick<br>
                      </div>
                    </div>
                    <br>
                    <fieldset></fieldset>
                    <br>
                    <pre>_______________________________________________
osg-users mailing list
<a href="mailto:osg-users@lists.openscenegraph.org" target="_blank">osg-users@lists.openscenegraph.org</a>
<a href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org" target="_blank">http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org</a>
</pre>
                  </div>
                </div>
              </div></div></blockquote>
              <br>
            </div><div><div class="h5">
            <br>
            _______________________________________________<br>
            osg-users mailing list<br>
            <a href="mailto:osg-users@lists.openscenegraph.org" target="_blank">osg-users@lists.openscenegraph.org</a><br>
            <a href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org" rel="noreferrer" target="_blank">http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org</a><br>
            <br>
          </div></div></blockquote>
        </div>
        <br>
        <br clear="all"><span class="HOEnZb"><font color="#888888">
        <div><br>
        </div>
        -- <br>
        <div>trajce nikolov nick<br>
        </div>
      </font></span></div><div><div class="h5">
      <br>
      <fieldset></fieldset>
      <br>
      <pre>_______________________________________________
osg-users mailing list
<a href="mailto:osg-users@lists.openscenegraph.org" target="_blank">osg-users@lists.openscenegraph.org</a>
<a href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org" target="_blank">http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org</a>
</pre>
    </div></div></blockquote>
    <br>
  </div>

<br>_______________________________________________<br>
osg-users mailing list<br>
<a href="mailto:osg-users@lists.openscenegraph.org">osg-users@lists.openscenegraph.org</a><br>
<a href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org" rel="noreferrer" target="_blank">http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">trajce nikolov nick<br></div>
</div>