[osg-users] compressed textures (DDS) and texture rectangles

sherman wilcox wilcox.sherman at gmail.com
Sun Sep 2 15:45:19 PDT 2007


Didn't know about setResizeNonPowerOfTwoHint for Texture2D. Works great.

I'll submit my TextureRectangle patch to submissions anyway.

On 9/2/07, Robert Osfield <robert.osfield at gmail.com> wrote:
> HI Sherman,
>
> I can't think of any problem with doing this.  If it works great! And
> please send in the changes so I can get it in OSG svn :-)
>
> FYI, use of TextureRectangle is no longer required for modern graphics
> cards as they all support non power of two textures, which
> osg::Texture2D supports as well - its turned off by default due to
> historical problems with determining whether the feature is hardware
> accelerated or not, but you can enable by setting
>
>   texture->setResizeNonPowerOfTwoHint(false);
>
> NPOT works on Nvidia 6 series onwards, not sure about the NVidia equivilant.
>
> Robert.
>
>
> On 9/2/07, sherman wilcox <wilcox.sherman at gmail.com> wrote:
> > OSG doesn't support compressed textures when using texture rectangles, does it?
> > Earlier today I tried to load some DDS files using the
> > osg::TextureRectangle....didn't work. Thought it was something I was
> > doing wrong so I started digging and ran across this comment in
> > texturerectangle.cpp:
> >
> > // UH: ignoring compressed for now.
> >
> > Yep, that was the first clue! Anyway, I hacked in a quick change, just
> > not sure how robust it is. Here tis:
> >
> > *********old code************
> >
> >      // UH: ignoring compressed for now.
> >      glTexImage2D(target, 0, _internalFormat,
> >        image->s(), image->t(), 0,
> >        (GLenum)image->getPixelFormat(),
> >        (GLenum)image->getDataType(),
> >        image->data() - dataMinusOffset + dataPlusOffset );
> >
> >
> > *********new code************
> >    if(isCompressedInternalFormat(_internalFormat) &&
> > extensions->isCompressedTexImage2DSupported())
> >    {
> >      extensions->glCompressedTexImage2D(target, 0, _internalFormat,
> >        image->s(), image->t(), 0,
> >        image->getImageSizeInBytes(),
> >        image->data() - dataMinusOffset + dataPlusOffset);
> >    }
> >    else
> >    {
> >      // UH: ignoring compressed for now.
> >      glTexImage2D(target, 0, _internalFormat,
> >        image->s(), image->t(), 0,
> >        (GLenum)image->getPixelFormat(),
> >        (GLenum)image->getDataType(),
> >        image->data() - dataMinusOffset + dataPlusOffset );
> >    }
> >
> > In my limited testing with DXT5 DDS files, this quick change appears
> > to work. Admittedly, I didn't spend too much time on this, it's late
> > and I'm tired. So, if anyone sees a problem or would simply like to
> > offer suggestions...
> > _______________________________________________
> > osg-users mailing list
> > osg-users at lists.openscenegraph.org
> > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
> >
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>



More information about the osg-users mailing list