PictView: DDS: Nesprávné rozbalení R5G6B5 do R8G8B8 (DXT1-5)

Hlášení chyb a problémů programu Altap Salamander. Buďte, prosím, ve svých popisech co nejpodrobnější a vytvořte pro každý incident nový příspěvek. Nevkládejte programem generovaná hlášení o pádu programu, pošlete je e-mailem.
User avatar
zarevak
Plugin Developer
Plugin Developer
Posts: 789
Joined: 04 Feb 2006, 16:49
Location: Prague, Czech Republic

PictView: DDS: Nesprávné rozbalení R5G6B5 do R8G8B8 (DXT1-5)

Post by zarevak »

Tak už si zase hraji s DDS texturami a narazil jsem na problém PictView, který nesprávně převádí 16bit barvy do 24bitů. Pravděpodobně si PictView ulehčuje prácí a bity pouze posune.

Z R5G6B5 bílé: 1111 1111 1111 1111 se tak stane R8G8B8 světle zelená: 1111 1000 1111 1100 1111 1000 (R:248 G:252 B:248)

Je možné toto napravit, aby bílá bílou byla? 8)

Ve svých programech využívám toto doplnění nižších bitů, které funguje bez problémů:
byte GetR(int16 col)
{
int r = (col & 0xF800) >> 11;
return (r << 3) | (r >> 2);
}
byte GetG(int16 col)
{
int g = (col & 0x07E0) >> 5;
return (g << 2) | (g >> 4);
}
byte GetB(int16 col)
{
int b = (col & 0x001F);
return (b << 3) | (b >> 2);
}
Jan Patera
Plugin Developer
Plugin Developer
Posts: 707
Joined: 08 Dec 2005, 14:33
Location: Prague, Czech Republic
Contact:

Re: PictView: DDS: Nesprávné rozbalení R5G6B5 do R8G8B8 (DXT1-5)

Post by Jan Patera »

zarevak wrote:Tak už si zase hraji s DDS texturami a narazil jsem na problém PictView, který nesprávně převádí 16bit barvy do 24bitů. Pravděpodobně si PictView ulehčuje prácí a bity pouze posune.
Ano, pravdepodobne to tak je.
Post Reply