Thanks Robert,
I have this working now without rescaling the image. My solution was
to pad the image with zeros making it a power of two and then specify
the correct percentage of the image to use as 2D texture. Not sure if
this is the best solution but it works and is fast enough for me.

-- John

On 9/13/07, Robert Osfield <[EMAIL PROTECTED]> wrote:
> Hi John,
>
> The rescaling is done on non power of two textures by default,
> rescaling is slow op so best avoided.  You have two choices to disable
> the resize of the non power of two texture as you have down to move to
> using TextureRectangle instead of Texture2D.  If moving to the
> TextureRectangle you'll need to move you pixel coords rather than
> normal non dimensions texture coords - see osgtexturerectangle
> example.
>
> Robert.
>
> On 9/12/07, John Steinbis <[EMAIL PROTECTED]> wrote:
> > For an AR project, I need to render a model with video image as
> > background. My program is based around osgViewer using osg v2.0. I
> > found an example for a HUD and with a few changes made it work as
> > background. The code can be found below.
> >
> > The code runs ok but there is a problem occurring that I cannot figure
> > out. Any ideas … ?
> >
> > When new images are loaded, they are rescaled for some reason. This
> > adds a noticeable delay, ~250 ms, and distorts the images, which is
> > not acceptable. Output looks like "Scaling image 'x' from (720,480) to
> > (512,512)".
> >
> > To prevent resizing I use "BGTexture->setResizeNonPowerOfTwoHint(false)".
> > To update an image I use "BGTexture->setImage(newImg)".
> >
> > Thanks,
> > John
> >
> >
> >
> > root->addChild(BGProjectionMatrix);
> >
> > BGProjectionMatrix->setMatrix(osg::Matrix::ortho2D(0,width,0,height));
> > BGProjectionMatrix->addChild(BGModelViewMatrix);
> >
> > BGModelViewMatrix->setMatrix(osg::Matrix::identity());
> > BGModelViewMatrix->setReferenceFrame(osg::Transform::ABSOLUTE_RF);
> > BGModelViewMatrix->addChild( BGGeode );
> >
> > BGTexture->setDataVariance(osg::Object::DYNAMIC);
> > BGTexture->setResizeNonPowerOfTwoHint(false); // <--
> > BGTexture->setImage(BGImage);
> >
> > BGGeode->addDrawable(BGBackgroundGeometry);
> > BGGeode->setStateSet(BGStateSet);
> >
> > BGBackgroundVertices->push_back( osg::Vec3( 0, 0, 0) );
> > BGBackgroundVertices->push_back( osg::Vec3(width, 0, 0) );
> > BGBackgroundVertices->push_back( osg::Vec3(width, height, 0) );
> > BGBackgroundVertices->push_back( osg::Vec3( 0, height, 0) );
> >
> > (*texcoords)[0].set(0.0f,0.0f);
> > (*texcoords)[1].set(1.0f,0.0f);
> > (*texcoords)[2].set(1.0f,1.0f);
> > (*texcoords)[3].set(0.0f,1.0f);
> >
> > BGcolors->push_back(osg::Vec4(1.0f,1.0f,1.0f,1.0f));
> > BGnormals->push_back(osg::Vec3(1.0f,1.0f,1.0f));
> >
> > BGBackgroundGeometry->setTexCoordArray(0,texcoords);
> > BGBackgroundGeometry->setColorArray(BGcolors);
> > BGBackgroundGeometry->setColorBinding(osg::Geometry::BIND_OVERALL);
> > BGBackgroundGeometry->setNormalArray(BGnormals);
> > BGBackgroundGeometry->setNormalBinding(osg::Geometry::BIND_OVERALL);
> > BGBackgroundGeometry->addPrimitiveSet(BGBackgroundIndices);
> > BGBackgroundGeometry->setVertexArray(BGBackgroundVertices);
> >
> > BGBackgroundIndices->push_back(0);
> > BGBackgroundIndices->push_back(1);
> > BGBackgroundIndices->push_back(2);
> > BGBackgroundIndices->push_back(3);
> >
> > BGStateSet->setTextureAttributeAndModes(0,BGTexture,osg::StateAttribute::ON);
> > BGStateSet->setMode(GL_DEPTH_TEST,osg::StateAttribute::OFF);
> > BGStateSet->setRenderingHint( osg::StateSet::TRANSPARENT_BIN );
> > BGStateSet->setRenderBinDetails( 1, "RenderBin");
> > _______________________________________________
> > osg-users mailing list
> > [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
>
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to