eternalcodes / EternalJK

Effort to maintain and improve OpenJK
GNU General Public License v2.0
60 stars 23 forks source link

even more sharper textures than r_roundimagedown 0 and r_picmip 0 #119

Open WhiteMagicRaven opened 1 year ago

WhiteMagicRaven commented 1 year ago

This can be archieved if engine will use OpenGL extension GL_ARB_texture_non_power_of_two or similar (in case its not ARB)

This extensions is sign that video card can load textures in any size. In case with this game or any q3 engine it bypass ResampleTexture function that causes blur on textures by scaling them.

ust for quick reference

if (GL_ExtensionSupported( "GL_ARB_texture_non_power_of_two" ) { scaled_width=width; // this will disable usage of ResampleTexture function that is not perfectly resizing textures. Video card will support non power of two textures directly. scaled_height=height; // that is how i done it before in just plain q3 it been a while ago if i recall correctly. } else { for (scaled_width = 1 ; scaled_width < width ; scaled_width<<=1) ; for (scaled_height = 1 ; scaled_height < height ; scaled_height<<=1) ; }

so basicly any textures from game will be uploaded in untouched state to video card (if r_roudimagedown 0 and r_picmip 0) can't provide screenshots, i remember some source ports uses this extension. This leads to completely abandon usage of ResampleTexture function (if r_roudimagedown 0 and r_picmip 0) making them sharper as video card support them natively, in any case ResampleTexture doing it worse than video card, and it makes blur.