• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

How can we tell what resolution a game is rendering?

There's been a lot of talk recently about rendering resolution and upscaling for games. During the discussions, I've seen people confused about how a screenshot or video that's 1080p can reliably indicate a game's rendering res is less than that. Some have even doubted that it's possible to tell at all, apart from being told by the developers. So I thought I'd try my hand at explaining pixel counting, the process used to do this analysis. This is just what I've garnered from others (especially Quaz51), and I'm not an expert, so take everything I say with caution. Anyone with more technical savvy is welcome to correct me.

The grid of pixels that makes up every digital image defines its native display resolution. The higher the pixel count for the same physical size, the more detail you see. For example, 720p and 1080p have a ratio of 2:3; for every 2 pixels at 720p you have 3 pixels at 1080p. Something like this (720p on the left):
HNsiJn9.jpg
36SlG1b.jpg


Every pixel must be either fully on or fully off, never partially filled. So a straight line can't just run perfectly across the display (unless it's exactly vertical or horizontal). All diagonals have to stairstep, which is what causes aliasing or "jaggies". Because of how coordinate grids work, a near-horizontal line will stairstep exactly as many times as the total pixel rows it crosses. (A near-vertical one will stairstep exactly as many times as the columns it crosses.) So in the 720p version below there are 4 steps, and the line crosses 4 pixel rows; the 1080p version has 5 steps, across 5 pixel rows.
dgu2bJE.jpg
2LkR6n2.jpg


However, if the rendering res is lower than the display res the numbers won't match. You can see why by imagining the game and display as two stacked grids, with the lower-res game in the background:
hSpPLR3.jpg


Now the game renders a line:
p3McpLY.jpg


Here we have a mismatch. The line takes 4 steps, but in the blue display grid it crosses about 6 pixel rows--5 solid, and a half-row at top and bottom. (The partial pixels are for illustrative clarity only. In reality, a scaler in either the renderer or the display device will approximate, typically by filling with averaged colors. This makes things blurrier and counting harder, but it won't eliminate the difference. Counting more steps can help overcome the approximations.) So now we have the ratio of render (steps) to display (pixels). Therefore the display res multipled by this ratio equals the rendering res. In our example, if the blue grid was from a 1080p screenshot, we'd multiply 1080 x (4/6). That correctly gives us 720p as the vertical rendering res.

In real life, scaling approximations, JPEG artifacts, and antialiasing all make discerning the stairsteps a lot more difficult. But the process only takes patience and a little math. You don't need any technical info or input from the dev--anyone can find the rendering res simply by counting steps and pixels. Try it if you like! Just remember the few simple rules:
- Counted lines must be intended to be straight; curves will not work.
- Use near-horizontal lines (less than 45 degrees) and pixel rows to find vertical resolution; use near-vertical lines and pixel columns to find horizontal resolution.
- Longer lines with more countable steps make the results more precise (be especially careful if using single-digit quantities like in the example).

I hope this is helpful and interesting, or at least not too boring. If you see something I got wrong, please let me know!
 

dark10x

Digital Foundry pixel pusher
One note to add; this is also related to the difference in image quality between plasma, CRT, and LCD. The subpixel arrangement of an LCD display is very precise and sharp while a plasma and CRTs make use of phosphors which are less precise. CRTs are not beholden to a specific resolution though the dot pitch does make a difference in clarity are various resolutions.

Plasmas use red, green, and blue subpixels for each pixel and the nature of phosphors means that each rendered pixel will be slightly softer around the edges. That is, you don't get that perfectly solid pixel that an LCD produces. As a result, the stair stepping effect tends to appear slightly less harsh as pixels blend together at a microscopic level.

Not the point of this topic, but seeing those grids reminds me of the fact that pixel handling varies per display type.
 
One note to add; this is also related to the difference in image quality between plasma, CRT, and LCD. The subpixel arrangement of an LCD display is very precise and sharp while a plasma and CRTs make use of phosphors which are less precise. CRTs are not beholden to a specific resolution though the dot pitch does make a difference in clarity are various resolutions.

Plasmas use red, green, and blue subpixels for each pixel and the nature of phosphors means that each rendered pixel will be slightly softer around the edges. That is, you don't get that perfectly solid pixel that an LCD produces. As a result, the stair stepping effect tends to appear slightly less harsh as pixels blend together at a microscopic level.

Not the point of this topic, but seeing those grids reminds me of the fact that pixel handling varies per display type.
This explains why the jaggies aren't anywhere near as bad on my plasma compared to my LCD, whilst all the detail remains.
 
I'd like to see some actual comparison shots.
Since I'm new to all this, I didn't want to just start with me doing pixel counting as if I was some sort of expert. But I guess a real-world example would be a good idea, so here goes....

Let's use a screenshot of Ryse, taken from the 1080p video Crytek recently put on their website. (Please note that in the interest of space, I've embedded only a 720p JPEG version below. The previous link, however, leads to the original 1080p PNG, and all the analysis I do below comes from that version.)
NxXJ2rC.jpg


The red outline shows the line I've chosen to count. Here's just that portion, cropped (remember that it'll look bigger than in the shot above because it comes from the 1080p version):
wvPYZaw.png


You can either save and look at properties, or open this in an image editor to see that it's 35 pixels high. It's a little small to try and count steps, though, so let's zoom in:
Kh3IYlE.png


My count is that there are 35 steps along this line. To find the rendering resolution, we multiply the display resolution by the render/display ratio. In this case, that's:

1080 x (35/35) = 1080

So we conclude that this 1080p video is rendering at the display resolution (or higher). Since we know from Microsoft that Ryse actually runs at 900p, that means this video doesn't represent actual output from One. It must be running on a PC, which means the AA and other effects also might not be accurate to the final product. (Note that the screenshot says "This does not represent final game quality" right on it.)

Hope the example makes things a little clearer!
 

Cels

Member
there was some neogaf user, i forget his name now, he was like the go-to guy for this kind of thing. he would post his analysis in the form of screenshots where a certain part of the shot was zoomed in to show the stepping and anyone could use it to verify his work. i think he did it for alan wake 360 among many other games. not sure.
 

KKRT00

Member
I dont think You can count resolution from this line in Ryse shot. First of its very light shader aliasing, second of all its slightly AA'ed. You need clear jaggied line for that from what i know, but i havent counted resolutions in the past.
 

Durante

Member
I dont think You can count resolution from this line in Ryse shot. First of its very light shader aliasing, second of all its slightly AA'ed. You need clear jaggied line for that from what i know, but i havent counted resolutions in the past.
It's much easier with a clear line, but usually still possible with an AA'ed one.

In a modern game, the best thing to do is finding a sub-pixel structure (since ppAA usually fails for those) that is not affected by any heavy post-processing (e.g. DoF or motion blur).

Good thread.
 
there was some neogaf user, i forget his name now, he was like the go-to guy for this kind of thing.
That may be Quaz51 that I mentioned in the OP. He doesn't post much here, but he was more active at Beyond3D some time back. I don't know if he invented the pixel counting technique or just popularized it, but he's definitely the source for most of last gen's native rendering numbers.

(Pro)tip: I think the forum software scales down the images to the viewers resolution anyway, so there is no need to that yourself! :)
Thanks, I was aware of this and considered just throwing the 1080p version in there. But it's also a 2MB+ PNG rather than my JPEG, so I decided to save bandwidth for everybody. :)
 
It's much easier with a clear line, but usually still possible with an AA'ed one.

In a modern game, the best thing to do is finding a sub-pixel structure (since ppAA usually fails for those) that is not affected by any heavy post-processing (e.g. DoF or motion blur).

Good thread.

In which case.. could you swing on by the new Deep Down images thread and comment on my post concerning deep downs resolution? I found some parts that look kinda like non-native 1080p... unless I am mistaken!
 

MarkV

Member
This shot is better for counting the pixels in Ryse (find the exact right spot in the video because this screen is heavily compressed):
ryseu5xafyp.jpg

Looks pretty much native 1080p.
 
In which case.. could you swing on by the new Deep Down images thread and comment on my post concerning deep downs resolution? I found some parts that look kinda like non-native 1080p... unless I am mistaken!
Here's the shot you're referring to.
VU42FmK.jpg


Unfortunately, the shot itself is only 720p. The pixel counting technique can only discern rendering res up to the display res, so you'll need a 1080p shot to figure this out. But I did check two of the places you mentioned, plus another larger, better test (red boxes). As far as I can see the steps and pixels match everywhere, meaning the game is rendering at least 720p.

Part of the reason it looks so bad is that it's pretty heavily compressed, and to my eye something seems wrong with the gamma too. The hard pixels you see on the dragon's head could come from that, or might be subpixel shimmering due to little or no AA. It's just too hard to tell with this capture.
 

KKRT00

Member
This shot is better for counting the pixels in Ryse (find the exact right spot in the video because this screen is heavily compressed):
http://abload.de/img/ryseu5xafyp.jpg
Looks pretty much native 1080p.

I've made some shots from this scene:

--
I personally dont get when original line ends and where AA or scaling is adding sub-colors.
I tried those two shots i havent got anything. Chromatic Aberration didnt help either.
http://cfa.eurogamer.net/2013/articles//a/1/6/1/6/4/5/9/1080p_000.png
http://cfa.eurogamer.net/2013/articles//a/1/6/1/6/4/5/9/900p_000.png
 
This shot is better for counting the pixels in Ryse (find the exact right spot in the video because this screen is heavily compressed):

Looks pretty much native 1080p.
I went to the video and found a frame very near that. Steps and pixels seem to be the same, so yes this is native 1080p rendering. Since we know for a fact Ryse won't really do that at retail, the video is once again confirmed to be running on a PC of unknown specs.

Great, but in my opinion that shot seems downsampled from a higher resolution than 1080p.
Yeah, whether it's supersampling or something else, the AA method they're using is fantastic. Unfortunately all we can go by in this matter are impressions--as I said above, pixel counting can't determine rendering resolution that's higher than the display. But since I'm pretty sure this video was running on PC, pretty much any res is possible.

I've made some shots from this scene. ...I personally dont get when original line ends and where AA or scaling is adding sub-colors.
It can be hard to tell, yeah. Here's an example drawn from your first Ryse shot that might help:

vwxPgdv.png


Throughout, you can see AA blending the dark wood into the sky. We're interested in counting geometry, not AA, so I've cropped the AA off the leftmost step. That's 1. I count 6 more steps until we reach the right edge, where I've kept down to the geometry again, not just the AA above it. So this is 7 steps total.

The image is a 8x blowup and is 56 pixels high, so was 7 pixels high to begin with. 7 steps/7 pixels means rendering was done at least as high as the image size, which is 1080p.
 

MarkV

Member
I've made some shots from this scene:


--
I personally dont get when original line ends and where AA or scaling is adding sub-colors.
I tried those two shots i havent got anything. Chromatic Aberration didnt help either.
http://cfa.eurogamer.net/2013/articles//a/1/6/1/6/4/5/9/1080p_000.png
http://cfa.eurogamer.net/2013/articles//a/1/6/1/6/4/5/9/900p_000.png

If you can clearly discern the steps you can tell the resolution.

I used your image from Eurogamer and zoomed in a lot:

The yellow line are the distinct steps (just to have a sign on them, some line are not in the right place but its not important), in the red rectangle we have 15 steps but those 15 steps use 18 pixel (vertical) and so the math is 15/18*1080(p) and we get 900(p).
 
I went to the video and found a frame very near that. Steps and pixels seem to be the same, so yes this is native 1080p rendering. Since we know for a fact Ryse won't really do that at retail, the video is once again confirmed to be running on a PC of unknown specs.

Probably, but that's not evidence of it. Just because the retail build will be whatever resolution doesn't mean a 1080 build on an Xbox hasn't happened.
 
Probably, but that's not evidence of it. Just because the retail build will be whatever resolution doesn't mean a 1080 build on an Xbox hasn't happened.
Of course you're correct it's not proof. However, remember that 900p is used to allow better graphical effects to be run. Yet the Ryse screenshot includes phenomenal AA, per-pixel motion blur, global lighting with soft shadows and good AO, high-quality textures, good bokeh, etc. etc. If they had a One engine that could do all that and run 1080p, why would they need to downgrade the resolution?

On a different note, I thought it might be nice to have a solid example of pixel counting finding non-native resolution. All the ones we started with were native, with the Crysis 3 shot above the only exception so far. And it doesn't show the pixel pattern up close. So here's an analysis of the WiiU title Game and Wario. Let's begin with a 1080p gameplay screenshot:
IX9xJwo.jpg


The red outline highlights the feature I'll use. Here's that line cropped out and zoomed in by a factor of 4:
je0Zn1V.jpg


I count 14 steps here from top to bottom. This 4x image is 84 pixels high, so original display res was 21 pixels. With our formula, 1080 x (14/21) = 720. So Game and Wario renders at 720p.

(Since blowing up the cropped part adds an extra step in the math, here's the unzoomed crop in case you wish to see the original size.)
cgoBprw.jpg
 

RoboPlato

I'd be in the dick
This is interesting. Never tried pixel counting before and I always wondered how people did it. I get used to certain resolutions so I can tell when stuff isn't 720p or 1080p but the exact resolutions are never obvious to me.
 
So is there no software that can do this?

Or am I being ridiculous?
It's a great idea, but seems really improbable to me right now. Identifying straight lines in the image and counting pixels likely wouldn't be too tough. But even humans have a hard time counting "steps" if there's a haze of AA, motion blur, depth of field, or other effects. I'm not sure how programmable the "art" of counting steps under bad conditions might be.

But if you have the ability and the inclination, I'd love to see someone try!

Here's another counting effort, this time of a game I'm not sure has been analyzed before. It's Mikami's The Evil Within, which just had a direct-feed trailer released for TGS. Here's a screenshot from it I'll be working with:
ve9ZzX5.jpg


Lots of this image is motion blurred, but the hero isn't, and also helpfully has no AA applied. Here's a 4x zoom of a line from his holster harness:
kFIT45g.jpg


There's 8 steps, and the original crop is 8 pixels high, so the game is rendering at 1080p.
 
Well, I was hoping that this thread would inspire some people to try their hand at pixel counting. I also don't want to paint myself as an expert in the field, because I'm most assuredly not. That said, with all the technical discussions going on ahead of this year's launches, I believe a GAF resource for resolution analysis would be very helpful. So, I've decided to go through the game lists from the "known resolution" thread to confirm or contradict the stats there. I know sequential posting by a single member is frowned on, so mods, if you wish me to proceed differently, please let me know. (Or if for some reason you think this analysis isn't productive at all, let me know that too.)

On to the list!

It starts with PS4, and The Order: 1886. Unfortunately, there's no actual gameplay available, so the resolution was determined from a trailer and the dev's statements. There's really no opportunity for real analysis here.

Next is Killzone: Shadow Fall, for which I used this screenshot:
kzsf_ss_2013-08-20_gamescom-multiplayer_02.jpg


Here are testable crops for horizontal and vertical res (both zoomed for clarity):
WsvrIxW.jpg
1Ux3Do4.jpg


After adjusting for the zoom factor, I count 14 steps/14 pixels and 22 steps/22 pixels respectively. So Killzone multiplayer is confirmed running at 1920x1080.

Next up is Infamous: Second Son, for which I used this shot:
image_infamous_second_son-22453-2661_0013.jpg


Here are the testable crops, zoomed:
7FwMfwN.jpg
Qoiah2P.jpg


After adjustment, I count 12 steps/12 pixels and 15 steps/15 pixels respectively. So Infamous is confirmed running at 1920x1080.

Next we have DriveClub, for which I chose a pretty recent shot:
drive-club.jpg


Here are the testable crops, zoomed:
z8fIIVY.jpg
ZH98VHz.jpg


Size-corrected, I count 13 steps/13 pixels and 8 steps/8 pixels respectively. So DriveClub is confirmed running at 1920x1080.

After DriveClub is Resogun, for which I used this screenshot:
resogun2.jpg


Here are zoomed crops to test horizontal and vertical res:
n46UL0N.jpg
ZEw9eQh.jpg


After adjusting for the zoom factor, I count 8 steps/8 pixels and 19 steps/19 pixels. So Resogun is confirmed running at 1920x1080.

Finally, I analyzed this screenshot of Knack:
ScreenShot_10_1920x1080_1377021967.jpg


The closeups of my testing elements:
GthHC82.jpg
AwiILH8.jpg


After adjustment, I count 9 steps/9 pixels and 17 steps/17 pixels, respectively. So Knack is confirmed running at 1920x1080.

I hope this is useful to people, and welcome comments or suggestions. Analysis of the other games listed hopefully to come!
 

Durante

Member
I really think counting pixels on pre-release media is a bit of a waste of effort -- it could be anything. It makes more sense to count on framebuffer grabs of real release version games.
 

ymmv

Banned
I really think counting pixels on pre-release media is a bit of a waste of effort -- it could be anything. It makes more sense to count on framebuffer grabs of real release version games.

For one thing, with pre-release press images it's impossible to know if we're looking at screen grabs from the actual console or PC bull shots which makes the whole exercise worthless.
 
I really think counting pixels on pre-release media is a bit of a waste of effort -- it could be anything. It makes more sense to count on framebuffer grabs of real release version games.
You're right that it's the retail release we really care about. New counts will have to be done once these games are on shelves. But I think there's some interest in knowing where development is at right now. Though I haven't made it an explicit rule, I've tried to choose shots that seem plausibly within the power envelope of the consoles; you can see aliasing, subpixel shimmers, rough shader effects, low-poly structures, ho-hum AF. Of course the game may still have been running on a godly PC roughly hemmed-in, rather than a final devkit. But I think analyzing grounded shots goes a long way toward suggesting these resolutions can and will be retained for the retail versions.
 
Sorry to necrobump the thread, but in the EDGE/general tech comparison thread there's been recent talk about resolutions (partially kicked off by Albert Penello). Skeff added a list of cited game resolutions, so I figured I'd try to add a couple that aren't there.

First up is Lococycle, for which I'm using this screenshot and crop:
5fNA7g8.jpg

noMJj7d.jpg


Counting the crop, I find 17 steps, and (adjusted for the zoom) 17 pixels. So Lococycle is native 1080p.

Next is Powerstar Golf, for which I'm using this screenshot and crop:
JiCY5Pp.jpg

dAixvtl.jpg


It's difficult to find straight lines in this image, and the huge amounts of light bloom, post-process AA, and aggressive depth-of-field make it hard to count steps. But from what I can see, I count 6 steps. Adjusted for zoom, the crop is 9 pixels high. With 1080*(6/9), it seems that Powerstar Golf is native 720p.

As an interesting note, this game appears to be the first example I've seen of the display planes function on One, where the UI can be rendered at higher res to mitigate the impact of low-res game rendering. Here's another screenshot from Powerstar:
3eLpKft.jpg


The button icon at the bottom only has near-verticals, so we can't test 1080, but it does count as probably 1920 wide. Since the game geometry counts as 1280 wide, this seems to confirm different resolutions for the UI and the game.
 
are you like some kind of wizard?
Actually, the whole point of the thread when I first made it was that it doesn't take wizardly skills to do this. Once you understand the concept, it's just counting (though blurry images can be hard to count). I encourage everyone to try!

Let me try to walk you through an example. Here's a screenshot from another One game, Zoo Tycoon.
t1VnzFS.jpg


We need to find a straight line that's closer to horizontal than vertical. I've chosen the lapel, which I've outlined in red. Here's a zoomed closeup of that area.
VhdHkLV.jpg


Now we simply count the number of jaggy steps the line takes, which is 17. The image was also 17 pixels high originally, though this zoom is bigger. Since the steps and pixels are the same, the image was rendered at 1080p or higher. See the OP for an explanation of why we can conclude that.

So Zoo Tycoon on One is native 1080p. Please note that since this is a lower production-value game, some might think we've been counting the 360 version. But the very sharp textures in the screenshot--the sign and nametag text, the monkey picture, the chart on the office wall, etc.--imply otherwise. And so does this Zoo Tycoon screenshot:
uWbQJEX.jpg


Though sized at 1080 this screenshot counts as 720p. Along with the far worse IQ, that makes me pretty sure this is the 360 version, and the other is One.
 

Rapstah

Member
Writing a program that does this automatically doesn't seem impossible at all. While the program would be stupid enough to have issues with antialised edges and motion blur, it could also count literally every single line in the picture, so if you had a way to see if a line was antialiased or blurred you could check the most certain lines in the picture and guess based on that.

I have to learn the PNG file format anyhow so I'll check this out.
 
Writing a program that does this automatically doesn't seem impossible at all. While the program would be stupid enough to have issues with antialised edges and motion blur, it could also count literally every single line in the picture, so if you had a way to see if a line was antialiased or blurred you could check the most certain lines in the picture and guess based on that.

I have to learn the PNG file format anyhow so I'll check this out.

sounds like it would take a long time either to write or to run

I think manual counting is pretty good for now.
 
Writing a program that does this automatically doesn't seem impossible at all. While the program would be stupid enough to have issues with antialised edges and motion blur, it could also count literally every single line in the picture, so if you had a way to see if a line was antialiased or blurred you could check the most certain lines in the picture and guess based on that.

I have to learn the PNG file format anyhow so I'll check this out.

That sounds really cool if you can do it

sounds like it would take a long time either to write or to run

I think manual counting is pretty good for now.

Good point lol
 

JoshHood

Member
This thread is fascinating.

The different-res display panes thing is far from One exclusive though - a couple of Vita games do this (and more don't, frustratingly). I think off the top of my head Wipeout 2048 does - the game has a variable resolution in gameplay up to native, but the UI is constant native.
 

dark10x

Digital Foundry pixel pusher
What do you guys think of these shots? Both from the 360 version. Not sure what's going on here.

c9x.png

d9x.png
 
What do you guys think of these shots? Both from the 360 version. Not sure what's going on here.

dynamic resolution

frame time increases past threshold -> resolution goes down -> fps goes up -> frame time drops below threshold -> resolutions increases
 

dark10x

Digital Foundry pixel pusher
dynamic resolution

frame time increases past threshold -> resolution goes down -> fps goes up -> frame time drops below threshold -> resolutions increases
Exactly what I suggested but was told that the resolution between those shots is the same.

From my attempts at counting they appear to be different. It sure looks like a dynamic framebuffer to me.
 

p3tran

Banned
Writing a program that does this automatically doesn't seem impossible at all. While the program would be stupid enough to have issues with antialised edges and motion blur, it could also count literally every single line in the picture, so if you had a way to see if a line was antialiased or blurred you could check the most certain lines in the picture and guess based on that.

I have to learn the PNG file format anyhow so I'll check this out.

if you do this, you will provide nextgen weaponry to nextgen war! think carefully! 8)
 
What do you guys think of these shots? Both from the 360 version. Not sure what's going on here.

c9x.png

d9x.png
Hmm, interesting. Counting pixels, I actually find both these to match the screenshot res. Yet the IQ difference is plain as day. Note, though, that HUD elements do not change by even one pixel between shots. Look at the waypoint marker or whatever it is, versus all the distant fine geometry around it:

Dki54h7.png

eVkCy3k.png


As you say, all this screams dynamic resolution with an independent buffer for the UI. Yet I can't find a countable difference. There seem to be three possible explanations to me:

1. The game sometimes renders internally at higher than 720p. Pixel counting has a very difficult time detecting native res higher than display res; it can only be seen based on AA patterns, which I have no experience differentiating. If the sharper shot was downsampled from a higher res and the blurry one was native 720p, I therefore wouldn't find any countable difference in these two 1280x720 screenshots. Probability? Low, I'd think. This is the 360 build we're talking about, so supersampling is very unlikely.

2. The game uses (very aggressive) post-process AA dynamically. Rather than changing resolution on the fly to save power, perhaps instead AA is turned off. In this case, the blurry image would be the "better" one, since it wouldn't have the jaggies and resultant edge flicker of the non-AA shot. Post-process AA unfortunately blurs everything, though, not just the jaggies. Probability? Decent, but not high. Post-process AA is common on current consoles, and dynamic AA happens sometimes too. But the amount of blurring seems very high to me, reminiscent of early-gen PS3 QAA (though I doubt it'd be that specific method). And there seems to be regular AA in the shot as well, and mixing these methods would be very strange.

3. I am not very good at counting pixels. Perhaps the initial assumption of dynamic resolution is correct, and at least one of my supposed native counts is wrong. Probability? High, by default. I'm not an expert and failure is always an option.
 
well my tv usually tells me.
I'm not sure if this is sarcastic, but if not:

What your TV tells you is the resolution of the signal going into it. However, even if the signal exiting the console is 1080p, the game can be rendering at a lower resolution. That results, generally speaking, in a blurrier game even though your TV claims it's the same type of input.
 
Top Bottom