Hi,
On Wed, 2006-05-10 at 09:53 +0100, Dirk Reiners wrote:
> Hi Simon,
>
> Simon Haegler wrote:
>
> >> there is no nice way, but you can do something like this. For the
> >> first render frame walk through all materials und call activate and
> >> deactivate on each TextureChunk.
> >
> >
> > (newbie alert)
> >
> > i tried to use the traversal function to do this, but i see no change
> > (only wild tumbling solves the problem):
> >
> > ...
> > traverse(scene, osgTypedFunctionFunctor1CPtrRef<Action::ResultE,
> > NodePtr>(wakeupTextures));
> > ...
> >
> > and
> >
> > Action::ResultE wakeupTextures(NodePtr& node)
> > {
> > if(node->getCore()->getType().isDerivedFrom(Geometry::getClassType())) {
> > MaterialPtr matPtr =
> > GeometryPtr::dcast(node->getCore())->getMaterial();
> > ChunkMaterialPtr chunkMatPtr =
> > ChunkMaterialPtr::dcast(matPtr);
> > if ((chunkMatPtr != NullFC) &&
> > (!chunkMatPtr->getChunks().empty())) {
> > StateChunkPtr chunkPtr = chunkMatPtr->getChunks(0);
> > TextureChunkPtr::dcast(chunkPtr)->deactivate(renderAction);
> > TextureChunkPtr::dcast(chunkPtr)->activate(renderAction);
> > }
> > }
> > return Action::Continue;
> > }
> >
> > is this the way to do it? ;-)
>
> Not bad, but not complete. ;) It assumes that there are no
> MaterialGroups, and (that's more serious) that your materials only have
> one texture, which is in Chunk 0. You should go through all the chunks,
> and it would be safer to not use the Chunks list, but to update the
> actual state, as some Chunks might be hidden inside the Material.
the best way to achieve this (and all other caching like geo, shaders)
is to render the first frame without culling (that's what we usually
do). But it falls short if LODs, switches or trav masks are used
somewhere inside the graph. For this we really need kind of a precaches
action.
regards,
gerrit
-------------------------------------------------------
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