Archived

This topic is now archived and is closed to further replies.

SpazBoy the Mitey

Nonstandard Texture Sizes?

Recommended Posts

Maximus    124
GL_TEXTURE_RECTANGLE_NV extension
Though that only works on GeForce and above nVidia cards

-----------------------
chain=chain->chain;

Share this post


Link to post
Share on other sites
Brother Bob    10344
You can NOT use nonstandard texture sizes as mipmaps, not even with the NV_texture_rectange extension. NV_texture_rectangle does not support mipmaps. And gluBuild2DMipmaps will rescale the image to standard sizes before it''s uploaded as a texture, that''s why some people think they can use non-power of two texture dimensions.

Share this post


Link to post
Share on other sites
Maximus    124
quote:
Original post by Brother Bob
You can NOT use nonstandard texture sizes as mipmaps, not even with the NV_texture_rectange extension. NV_texture_rectangle does not support mipmaps. And gluBuild2DMipmaps will rescale the image to standard sizes before it''s uploaded as a texture, that''s why some people think they can use non-power of two texture dimensions.


I saw nothing in his question to do with mipmapping

-----------------------
chain=chain->chain;

Share this post


Link to post
Share on other sites
Brother Bob    10344
Neither did I. But Subotron mentioned mipmaps and non standard dimensions. I just said you can''t use non-power of two dimensions with mipmaps. And since we''re also talking about the texture rectangle extensions, I added that not even with that extensions, you can get mipmaps with non power of two dimensions.

Share this post


Link to post
Share on other sites
zedzeek    529
theres no law that u have to use all the texture eg say u want a 320x192 sized texture
draw the image in a 512x256 texture in the bottom left corner
to draw use
glBegin( GL_QUADS );
glTexCoord2f( 0,0 ) vertice1
glTexCoord2f( 320.0/512.0, 0 ) vertice2
glTexCoord2f( 320.0/512.0, 192.0/256.0 ); vertice3
glTexCoord2f( 0, 192.0/256.0 ); vertice4
glEnd()



http://uk.geocities.com/sloppyturds/gotterdammerung.html

Share this post


Link to post
Share on other sites
Pav    100
well, i dunno what goes for all the nvidiots out there (no offence )
but ATI Radeon supports whatever sizes of textures u want up to 2k*2k..i easily use 196*458 bitmaps so its very hardware specific...
**hint** GET RADEOM 8500 and forget geforce...

Share this post


Link to post
Share on other sites
ANSI2000    122
And one more quick question, what hapens if you try to load a texture that is bigger then what is suported, does it fail to create the texture or it falls back to software rendering.

So lets say, my card supports 1024x1024 textures and I try to load 2048x2048, what will happen?

Share this post


Link to post
Share on other sites
Guest Anonymous Poster   
Guest Anonymous Poster
gluBuild*DMipMaps works (as Bob and baumep said) because before it builds the mipmaps it calls gluScaleImage ( http://ask.ii.uib.no/ebt-bin/nph-dweb/dynaweb/SGI_Developer/OpenGL_RM/@ebt-link;cs=fullhtml;pt=41401?target=%25N%15_45699_START_RESTART_N%25#X ), which scales the image to fit power of 2 dimensions.

Share this post


Link to post
Share on other sites
Maximus    124
quote:
Original post by Pav
well, i dunno what goes for all the nvidiots out there (no offence )
but ATI Radeon supports whatever sizes of textures u want up to 2k*2k..i easily use 196*458 bitmaps so its very hardware specific...
**hint** GET RADEOM 8500 and forget geforce...


But then we put up with shoddy drivers that can stop an OS from even booting up!

I can easily use any texture size upto 4096*4096 iirc, including non-standard ones such as 800x600, 62x90, etc etc. Very easy to do on my GeForce3, and works without problems on the GeForce1 in the other box here.

-----------------------
chain=chain->chain;

Share this post


Link to post
Share on other sites
Guest Anonymous Poster   
Guest Anonymous Poster
Yeah, ATI''s driver support is notorius, look here:
http://www.emulators.com/secrets.htm#ATI

Share this post


Link to post
Share on other sites
Brother Bob    10344
And the reason you can''t use non-power of two dimensions in standard, non-extended, OpenGL, is not a hardware limitation or anything. It''s explicitly written in the OpenGL specification that you can''t use it. That''s why there is an extensions for it.

Share this post


Link to post
Share on other sites