Page 1 of 1

Dithering C2's 16bit pixelmaps

Posted: Sat Dec 21, 2019 3:33 pm
by Toshiba-3
This is one thing that has annoyed me a lot since the beginning. When C2 converts the 24bit TIFF files to BRender 16bit (RGB565) pixelmaps, there's an obvious loss of quality which usually translates to banding in the gradients etc.

So I recently thought it might be worth it to try and dither the textures while converting to RGB565 before C2 does it. Here are the results:
First in the native 640x480 resolution:
rgb656-low-nodith.png
rgb656-low-nodith.png (201.79 KiB) Viewed 1674 times
rgb656-low-dither.png
rgb656-low-dither.png (226.54 KiB) Viewed 1674 times
Then in 1920x1080 via nGlide:
rgb656-high-nodith.png
rgb656-high-nodith.png (141.95 KiB) Viewed 1674 times
rgb656-high-dither.png
rgb656-high-dither.png (181.43 KiB) Viewed 1674 times
The door and rear bumper are good spots to check for the differences. While it's ok in low resolution (the banding on the door seems to disappear), there's already obvious patterns in the textures. This problem becomes very annoying in high resolution.
The two problems are 1) the pattern used for diffusing pixels in my test, 2) C2 textures being way too small anyway and making the pattern very apparent.

I've used Telegraphics 5_6_5 Photoshop filter, via IrfanView because I don't have a 32-bit version of Photoshop installed :smad: If I could grab an old 32bit version of PS, then I could try Graphest DepthDither which seems to allow other ways of diffusing pixels.
Then I could give it another try, also upscaling the textures with an AI.

[edit]
Installed PS7 so I can use DepthDither, much better plugin.
unknown.png
unknown.png (113.51 KiB) Viewed 1665 times

Re: Dithering C2's 16bit pixelmaps

Posted: Tue Dec 24, 2019 8:41 am
by Razor
Not sure the Eagle 3 is the best car to demonstrate forced dithering on but it does work really convincingly when done right. Never really thought about utilising it properly in C2 before, just always put up with the smoothed crap.

Re: Dithering C2's 16bit pixelmaps

Posted: Sun Jan 05, 2020 5:52 pm
by Toshiba-3
Indeed, be it diffuse or noise dithering, the result gives a "dirty aspect" to the textures. This effectively breaks the clean aesthetic of the original C2 cars (at least when applied on the original lowres textures). However it might be useful to preserve the uneven look of dirt/gravel/rust/road textures, especially low-contrasting ones. So not an effect to apply blindly on the whole C2 directory.

Presdenting now another format used by Carmageddon 2: RGBA4444. This is the real tragedy. If a tiff file has an alpha channel, C2 will convert it to RGBA4444 rather than RGB565. This means 4bits per channel (whereas 565 attributes 5 to red, 6 to green and 5 to blue). So even less definition per colour and that results in even more banding. Too bad they didn't use BRender's RGBA8888 instead.
The most obvious exemple are the vehicles menu pics, which look terrible :ssad: Anyway, posting another comparison:
RGBA4444.png
RGBA4444.png (55 KiB) Viewed 1481 times
Here's also a new comparison montage for the dithering applied on a low contrast texture. The alternating green and purple tints are an artifact resulting from the difference in colour resolution with RGB565 (green having more range).
Also illustrates one more time how terrible going from 5 to 4bits per channel is :slol: ..................... :ssad:
exemple2.png
exemple2.png (15.74 KiB) Viewed 1481 times