ValveSoftware / halflife

Half-Life 1 engine based games
Other
3.65k stars 617 forks source link

[GoldSrc] Detail Textures looks weird in recent versions of goldsrc games like CS:CZ, CS 1.6 and Half-Life. #3148

Open Thr4x0 opened 2 years ago

Thr4x0 commented 2 years ago

Should look like this: https://i.imgur.com/Wlxxuxy.jpg , https://i.imgur.com/XJPKvr0.jpg (Counter-Strike De_Inferno Custom Textures)

But it's look like this in recent versions of the game: https://i.imgur.com/opXCNIp.jpg , https://i.imgur.com/iaYGtAa.jpg

Map name is also missing in spectating mode.

edit: There's a problem is with gl_texturemode command in Half-Life games, the texture glitch doesn't happen in 11 April 2019 Base Goldsrc Shared Binaries.

Texture pack: https://gamebanana.com/mods/8498

kisak-valve commented 2 years ago

Hello @Thr4x0, please copy your system information from Steam (Steam -> Help -> System Information) and put it in a gist, then include a link to the gist in this issue report.

Thr4x0 commented 2 years ago

https://gist.github.com/Thr4x0/86535db2f6d368e4e7f0d27cad13f968

SamVanheer commented 2 years ago

Looks like it could be related to power-of-two texture support. That was changed relatively recently.

I've seen problems like this before when making copies of the rendered frame, in that case the problem was the packing alignment: https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/

GL_UNPACK_ALIGNMENT is probably the setting affecting this. It defaults to 4.

Detail textures, at least the default ones, are RGB888 so there could be alignment issues.

You mentioned custom textures. What are the properties of these custom textures? Width, height, data format, that's all important.

Thr4x0 commented 2 years ago

Looks like it could be related to power-of-two texture support. That was changed relatively recently.

I've seen problems like this before when making copies of the rendered frame, in that case the problem was the packing alignment: https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/

GL_UNPACK_ALIGNMENT is probably the setting affecting this. It defaults to 4.

Detail textures, at least the default ones, are RGB888 so there could be alignment issues.

You mentioned custom textures. What are the properties of these custom textures? Width, height, data format, that's all important.

The problem is with gl_texturemode command in Half-Life games, If you download the old Base Goldsrc Shared Binaries files from 11 April 2019 (manifest ID 2089500374317423296) there's no such bug like this, It's broke in 20 April 2019 update

Screenshots: old Base Goldsrc Shared Binaries manifest 11 April 2019: https://i.imgur.com/6zavo3s.png https://i.imgur.com/hkLvf6s.png https://i.imgur.com/fnfWw3V.png

recent versions: https://i.imgur.com/XP6Tapd.jpg console command: gl_texturemode GL_LINEAR_MIPMAP_NEAREST or GL_LINEAR_MIPMAP_LINEAR https://i.imgur.com/cYhjxIG.png console command: gl_texturemode GL_LINEAR or GL_NEAREST https://i.imgur.com/QfmZOOe.png

Texture pack: https://gamebanana.com/mods/8498

SamVanheer commented 2 years ago

The gl_texturemode command only exposes the problem, the cause is either in packing alignment or mipmap generation. Since NPOT texture support was added around that time i'd say it's packing alignment.