*Sub-Thread* Dithering in GTA4

Maybe the dithering came up as they implemented some performance optimizations late in the game? (No pun intended)
 
Maybe the dithering came up as they implemented some performance optimizations late in the game? (No pun intended)
Some of the dithering is intentional, they definitely do some kind of grain producing shader (didn't Mass Effect do something like that?), seemingly LOD biased so it breaks up more the further you get from the camera. I'm not sure if the texture scrambling (affecting mostly signs but you can see it on that billboard shot and maybe the railing) is a separate thing or if it's just the dithering shader running amok when asked to work on an alpha blended surface.

What we really need is someone from R* to spill their guts. :)
 
Mintmaster's theory makes sense to me, though we have no elements to tell if these supposedly screwed mip maps are being loaded from disc or generated in realtime.
 
Mintmaster said:
Either way, it's still shocking to see an error like this make the final build.
Considering how many other much worse, even game breaking bugs, are in both versions of the game, I don't think it would be shocking at all. It's patently obvious the Q&A for this needed more time.

That said, I am on the side of "it looks intentional" with this one. Whether it was an accepted visual tradeoff for something, or an experiment with visual direction, nothing in how it poped up in media few months back and stayed until release suggests it's a bug.
 
Last edited by a moderator:
Mipmap generation is so damn easy, though. You could probably generate the mipmap 100 times in the time it takes to transfer the texture from disc. You do it once and can use the results until the texture gets booted from the cache. On the fly generation makes sense to me.

It could be an error in a custom offline tool, but I would expect them to use MS tools in they were storing them that way. Maybe streaming precludes them from doing so.

Either way, it's still shocking to see an error like this make the final build.
Generating the mipmaps is easy enough; compressing them is not. Recall that textures would be stored on disk in compressed format - almost certainly DXT. In addition to decompression and downsampling of the images, you also need to perform compression on the new downsampled surfaces. DXT compression is, well, very slow.

If they were using a software-based compressor, I don't think they'd be able to perform mipmap generation + compression on all of their textures, simply due to the sheer volume of data.
 
I'm not sure if the texture scrambling (affecting mostly signs but you can see it on that billboard shot and maybe the railing) is a separate thing or if it's just the dithering shader running amok when asked to work on an alpha blended surface.
All minified textures have this noise in them - signs, due to their highly-detailed, high-contrast appearance simply make the noise easier to see.

Separately there appears to be alpha-to-coverage noise.

Jawed
 
AlStrong previously posted something that made me wonder if this is relevant here:

AlStrong said:
Texture Cache Pain Points
  • Lack of mipmaps, or mip biasing
    • Do not expose mip bias in tools
    • Consider aniso filtering instead of mip biasing
  • Uncompressed textures
    • Somewhat unavoidable for full screen effects
  • Volume textures
    • Be very careful with your sampling patterns
  • Bad access patterns
    • Too many simultaneous textures
    • Sparse sampling patterns
 
I haven't read through this whole thread but, am I right in understanding that when running in a 640x480 mode the images look good but look dithered at 1080x720?

Since that represents a > 2.5x increase in frame buffer costs (not to mention Z costs), could it simply be that the coders have opted for a 16-bit frame buffer just for the HD case?
 
It's not that kind of dithering that you get from lack of color precision, take a look at all the screenshots.
 
Are GTA4's textures generally encoded in DXT1?

Does RSX do the blurry/low-precision rendering of DTX1 textures described here?:

http://udn.epicgames.com/Two/TextureComparison.html#NVIDIA DXT1 Issue

This post by Wolfgang:

http://diaryofagraphicsprogrammer.blogspot.com/2007/12/normal-map-data-ii.html

says something intriguing about RSX DXT1:

...(plus, on the PS3, DXT1 has some other benefits over DXT5 that I don’t think I can talk about).

Would that tend towards implying that most textures (albedo at least) are DXT1?

So, erm, dumb question time, if you start with a DXT1 base texture and generate mipmaps from it, is this noise likely to arise?

Jawed
 
Generating the mipmaps is easy enough; compressing them is not. Recall that textures would be stored on disk in compressed format - almost certainly DXT. In addition to decompression and downsampling of the images, you also need to perform compression on the new downsampled surfaces. DXT compression is, well, very slow.
True, but there might be a way to speed up compression of lower levels when you have the top level already compressed.

There's also the (slim?) possibility of GTA not using DXT. I haven't seen any tile boundaries at all, though I suppose they're pretty subtle. The specifics of my theory about the garbling (i.e. the data tiling) doesn't fit with texture compression, but I guess one can find an alternative explanation that does.
 
says something intriguing about RSX DXT1:
...(plus, on the PS3, DXT1 has some other benefits over DXT5 that I don’t think I can talk about).
Jawed

I can tell you. On RSX, DXT1 textures remain compressed in cache while other texture formats are expanded. Xenos expands everything.
 
I can tell you. On RSX, DXT1 textures remain compressed in cache while other texture formats are expanded. Xenos expands everything.

If what you say about Xenos is true, then why would MS state that "uncompressed textures" are a "texture cache pain point"?
 
Would that tend towards implying that most textures (albedo at least) are DXT1?
It's almost certain that they're using DXT1 for opaque textures, and DXT3/DXT5 for textures with an alpha channel. DXT is pretty much your only choice when it comes to texture compression - all other formats are uncompressed. With DXT1 being 6x smaller than an uncompressed R8G8B8 image, Rockstar would be insane not to use it considering the already low memory available on consoles.
 
It's not that kind of dithering that you get from lack of color precision, take a look at all the screenshots.
Hmm. yes. Very curious. I can't imagine that it would be a texture compression artefact, at least, not from DXT*, since the texture should compress fairly trivially. (At least putting the PS3 image through DXT1 results in utterly negligible differences)
 
There are also physiological limits like it or not. Audio quality surpassed (conclusively) human hear ability many years ago. The CD released like 25 years ago now brought that perfect reproduction to the masses.

Oh please don't start. I haven't met any normal person who can't hear the difference between CD, DD, dts, and uncompressed 7.1 96kHz PCM. CDs are not the pinnacle of audio quality to the human ear, they're just good enough to not make most people care any more (just like a Ford Focus, lol, or insert your favourite mediocre car here).

There are plenty of semi-deaf people out there who shouldn't be pushed into buying things they can't discern, but shouldn't be making judgements about others' hearing either. There are also people (like my wife) who can't tell whether she's looking at 720p, 1080p or 480p unless you flip it back and forth repeatedly so she notices the PQ change.
 
OK I referred this dithering issue to one of the best cross-format developers in the world. Bear in mind that the response is based on screenshots, I've no idea to what extent they've played the game.

The response is basically this:

- the effect isn't a bug, it has to be deliberate
- there are no DXT compression issues or anything similar, it looks to be an artistic choice
- it doesn't look like a post-processing effect as it doesn't seem to affect edges
- most likely it's a jittered texture sample in the shaders to achieve a grainy look or depth-of-field effect
- the reason it's not in the PS3 version is that, most likely, it would impact performance to implement it

Further, it's very likely that the game led development-wise on 360 as the devkits etc would've been around much earlier than the PS3 ones would have been, so logically the PS3 version was always going to be a port.

The good news I suppose is that it's an effect that can be turned off!
 
They made the textures ugly on purpose?
Why not just use ugly textures to begin with :)
 
Back
Top