Hi Enrico,

just a small hint, for standard opengl type materials backface culling 
does not offer high performance gains anymore compared to the onyx 
days.

Regards

Matthias Stiller

On Monday 22 May 2006 11:35, Enrico Borrione wrote:
> Hi andreas, dirk, and all opensg users!
>
>
>
> First of all, thanks for the hast response.
>
> As soon as I will have a spare moment, I will
>
> fetch me the new cvs version of opensg.
>
>
>
> Talking of performance drop, I have another
>
> curious behaviour to report: looking for some
>
> speed improvement, I added to my code a hand
>
> made backface culling:
>
>
>
>
>
> void main()
>
> {
>
> .
>
> .
>
> .
>
> scene = SceneFileHandler::the().read(argv[1]);
>
> PolygonChunkPtr polyChunk2 = PolygonChunk::create();
>
>       beginEditCP(polyChunk2);
>
>             polyChunk2->setCullFace( GL_BACK );
>
> endEditCP(polyChunk2);
>
> addMaterial( scene, polyChunk2, 0 );
>
> .
>
> .
>
> .
>
> }
>
>
>
> void
>
> addMaterial( OSG::NodePtr curNode, osg::StateChunkPtr mat, int
> sortKey )
>
> {
>
>       bool visitato = false;
>
>       static int level = 0;
>
>
>
>       for( int nChild = 0; nChild <= curNode->getNChildren() &&
> visitato == false ; ++nChild )
>
>       {
>
>             if (curNode->getCore()->getType().isDerivedFrom(
> MaterialGroup::getClassType()))
>
>             {
>
>                   MaterialGroupPtr group =
> MaterialGroupPtr::dcast(curNode->getCore());
>
>                   ChunkMaterialPtr material =
> ChunkMaterialPtr::dcast(group->getMaterial());
>
>                   beginEditCP(material);
>
>                               material->setSortKey( sortKey );
>
>                               if( sortKey < 0 )
>
>                               printf( "debug sort key set!\n");
>
>                               material->addChunk(mat);
>
>                   endEditCP(material);
>
>             }
>
>             else if (curNode->getCore()->getType().isDerivedFrom(
> Geometry::getClassType()))
>
>             {
>
>                   GeometryPtr geo =
> GeometryPtr::dcast(curNode->getCore());
>
>                   ChunkMaterialPtr material =
> ChunkMaterialPtr::dcast(geo->getMaterial());
>
>                   if( material != NullFC ){
>
>                     beginEditCP(material);
>
>                                 material->setSortKey( sortKey );
>
>                                 if( sortKey < 0 ) printf( "debug sort
> key set!\n");
>
>                                 material->addChunk(mat);
>
>                     endEditCP(material);
>
>                   }
>
>             }
>
>
>
>             level++;
>
>             if ( nChild < curNode->getNChildren() )
>
>                   addMaterial(curNode->getChild(nChild), mat,
> sortKey);
>
>
>
>             if ( nChild >=  curNode->getNChildren() -1 )
>
>                   visitato = true;
>
>             level--;
>
>       }
>
> }
>
>
>
>
>
> When I execute my application, the performances drop like they
>
> used to with the depth sorting of the graph. Any idea about
>
> this strange behaviour? The backface culling should likely improve
>
> the speed of the app.
>
>
>
> thanks again,
>
> c ya
>
> Enrico
>
>
>
>
>
> -----Messaggio originale-----
> Da: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] Per conto di
> Andreas Zieringer
> Inviato: domenica 21 maggio 2006 18.04
> A: [email protected]
> Oggetto: Re: R: [Opensg-users] rendering performance and optimization
>
>
>
> Hi Dirk,
>
>
>
> thanks for the hint the code was a bit suboptimal ;-) I fixed it.
>
>
>
> Andreas
>
> >    Hi Enrico,
> >
> > Enrico Borrione wrote:
> >> Hi andreas,
> >>
> >> thanks for the fast answer. I tried your suggestion,
> >>
> >> but my application behaves weirdly. For debugging
> >>
> >> purposes I added a SimpleStatisticsForeground,
> >>
> >> so now I am reporting to you the output.
> >>
> >>
> >>
> >> If I do not activate the occlusion culling, it says:
> >>
> >>
> >>
> >> Fps:                38     (I am not using any shader)
> >>
> >> Material Changes:     10
> >>
> >> Nodes Drawn:         ~14000
> >>
> >> Triangles Drawn:         ~64000
> >>
> >> Primitives Groups:     ~24000
> >>
> >> Vertices Transformed:     ~114000
> >>
> >>
> >>
> >> If I switch on the occlusion culling,
> >>
> >> The speed drops and:
> >>
> >>
> >>
> >> Fps:                2.4
> >>
> >> Tested Nodes:         15
> >>
> >> Culled Nodes:         ~14000
> >>
> >> Material Changes:     ~11000
> >>
> >> Matrix Changes:         ~6000
> >>
> >> Nodes Drawn:         256
> >>
> >> Triangles Drawn:         ~7000
> >>
> >> Primitives Groups:     ~600
> >>
> >> Vertices Transformed:     ~8000
> >>
> >>
> >>
> >> So the number of rendered primitives is dramatically reduced...
> >>
> >> But now most of the time is spent in material / state changing.
> >>
> >>
> >>
> >> Any clues about this strange behaviour?
> >
> > The basic behaviour is not surprising, given that the front-to-back
> >
> > ordering disables the state change minimization. However, 11000
> >
> > material changes for 256 Nodes is just wrong, there is something
> > amiss
> >
> > in the OC code.
> >
> >
> >
> > Andreas, can you take a look to make sure that only visible nodes'
> >
> > materials are activated?
> >
> >
> >
> > Yours
> >
> >
> >
> >    Dirk
> >
> >
> >
> >
> >
> > -------------------------------------------------------
> >
> > Using Tomcat but need to do more? Need to support web services,
> > security?
> >
> > Get stuff done quickly with pre-integrated technology to make your
> > job
> >
> > easier
> >
> > Download IBM WebSphere Application Server v.1.0.1 based on Apache
> > Geronimo
> >
> > http://sel.as-us.falkag.net/sel?cmd=k&kid0709&bid&3057&dat1642
> >
> > _______________________________________________
> >
> > Opensg-users mailing list
> >
> > [email protected]
> >
> > https://lists.sourceforge.net/lists/listinfo/opensg-users
>
> -------------------------------------------------------
>
> Using Tomcat but need to do more? Need to support web services,
> security?
>
> Get stuff done quickly with pre-integrated technology to make your
> job easier
>
> Download IBM WebSphere Application Server v.1.0.1 based on Apache
> Geronimo
>
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121
>642
>
> _______________________________________________
>
> Opensg-users mailing list
>
> [email protected]
>
> https://lists.sourceforge.net/lists/listinfo/opensg-users

-- 
+---------------------+----------------------------+
| VREC GmbH           |                            |
| Matthias Stiller    |                            |
| Robert-Bosch-Str. 7 | tel:    +49 6151 4921034   |
| 64293 Darmstadt     | web:    http://www.vrec.de |
| Germany             | mail:   [EMAIL PROTECTED]         |
+---------------------+----------------------------+


-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to