[osg-users] Writing texture coordinates on a mesh without going through traversal code?

Rowley, Marlin R marlin.r.rowley at lmco.com
Fri Apr 13 13:30:42 PDT 2018


Hello!

I'm trying to generate my own texture coordinates (on-the-fly) by having a callback that runs when a piece of geometry intersects my object.  So for example, I create a realworld frustum and when my frustum has a shader that's bound to some arbitrary object in the world.  When my frustum intersects this object, I would like to generate texture coordinates on this object based on how far or near I am to the frustum's near/far planes (it's perspective frustum).  We had the following code for doing this:

void ViewshedOSG::updateTextureCoordinates()
{
// write the plane equation for all 3 planes
// that make up the camera view frustum.  We can
// then access this from the shader to test whether
// we are in the frustum's volume or not.
    osg::Matrixd projection = mCamera->getViewMatrix();
      mTexGen->setPlanesFromMatrix(projection *
      osg::Matrix::translate(1.0, 1.0, 1.0) *
      osg::Matrix::scale(0.5f, 0.5f, 0.5f));
// Bring our models viewspace coordinates back
// into model space coordinate of the camera frustum
osg::RefMatrix * refMatrix = new osg::RefMatrix
           (mCamera->getInverseViewMatrix() * *_cv->getModelViewMatrix());
// Copy the texture generator to the mesh where you
// can index it's coordinates from the ViewshedID
      _cv->getRenderStage()->getPositionalStateContainer()->
            addPositionedTextureAttribute
            (mId, refMatrix, mTexGen.get());
}


However, this code was based on a cull visitor calling this function from a callback.  I have my own callback and it's not based on a visitor. Is there anyway to get the objects modelview matrix() without calling it from a cull visitor?  Also only need to write the 'addPositionedTextureAttribute' on the geometry in order to access the coordinates through a shader.

I'm trying to keep this simple.  Am I in the right direction?

Thanks,

-M
----------------------------------------
Marlin Rowley
Software Engineer, Staff
[cid:image002.jpg at 01D39374.DEC5A2E0]
Missiles and Fire Control
972-603-1931 (office)
214-926-0622 (mobile)
marlin.r.rowley at lmco.com<mailto:marlin.r.rowley at lmco.com>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20180413/a52db8df/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.jpg
Type: image/jpeg
Size: 3114 bytes
Desc: image001.jpg
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20180413/a52db8df/attachment.jpg>


More information about the osg-users mailing list