Posted By
Charles on 2023-11-22 12:37:16
| Subpixel "rendering" CRT
Hi Guys,
I wonder if anyone clearly understands what the C64 folks are talking about in this thread?
https://www.lemon64.com/forum/viewtopic.php?t=83382
I don't get it, what is supposed to be done to the screen content to achieve the perceived doubled X resolution and why does it only work on a CRT..? Must be sg with the interlaced screen drawing but I am lost. I wonder if we can easily replicate this on the +4, or anyone already did this in the past by chance..?
Thanks
|
|
Posted By
Csabo on 2023-11-22 13:57:16
| Re: Subpixel "rendering" CRT
I don't fully understand what they are talking about, but I liked this comment near the end by MagerValp:
Don't worry, there is no 640 pixel mode here, it's just a bunch of jerky scrolling.
|
|
Posted By
gerliczer on 2023-11-23 01:47:50
| Re: Subpixel "rendering" CRT
That guy posted and "debated" the very same thing in CSDb forum. One guy was trying to find out what he was on about very hard, but a different poster wrote something like "Let him be. He's another Harry Potter". Knowing how Harry Potter operates here and how the conversation went at CSDb, the thing looks like hot air.
|
|
Posted By
MIK on 2023-11-23 07:33:29
| Re: Subpixel "rendering" CRT
From what I saw... it's a 4k upscaler with loads of filters/options built-in to the device. The words being used that surround it are misleading.
Someone claimed the same thing a few weeks back with a different device and it looked utter pants compared to the real thing, yet people who you can tell have not used a CRT in a very long time were saying it looked great lol.
|
|
Posted By
Murphy on 2023-11-23 12:36:22
| Re: Subpixel "rendering" CRT
It's an optical trick your brain does on moving objects. No real higher resolution, just subpixel rendering combined with scrolling. No matter the type of display, all you need is that the refresh rate is synchronized with the routine (50fps)
I first saw it from Crest. https://www.youtube.com/watch?v=BF4A2waXtPU
The key is to scroll only one pixel per two frames. And you have two versions of the graphic. A normal version and a half pixel offseted version.
The steps: Step 0. Show normal graphics Step 1. Show the half pixel shifted graphic, then scroll 1 pixel to the left, and jump to Step 0
If you didn't scroll, the trick would fail, but scrolling makes your brain see the movement more continuous than it actually is.
|
|
Posted By
gerliczer on 2023-11-23 12:54:22
| Re: Subpixel "rendering" CRT
How do you shift with half pixel?
|
|
Posted By
Murphy on 2023-11-23 14:49:34
| Re: Subpixel "rendering" CRT
@gerliczer It's plain subpixel sprite rendering, where your source graphic is larger than the area you're rendering it to. In an 8 bit friendly way, the source area is 2x, 4x or 8x the size you want to render it.
For a simple square image with a horizontally moving subpixel scroll, the width of the source graphic is twice its height.
You can preprocess the double wide graphics into two square graphics. The first graphic contains the even columns of the source graphic, and the second contains the odd columns.
If you want to draw your graphic aligned to the pixel grid, you draw the first one, if you want to offset it by a half pixel, you draw the second one.
This optically shifts your graphic by a half pixel. Add to this the HW scrolling every 2 frames and the end result looks like a higher resolution than the actual pixel grid.
|
|
Posted By
gerliczer on 2023-11-23 15:45:56
| Re: Subpixel "rendering" CRT
So it is creating the impression of different pixel sizes through interlace (image flipping) colour blending. Did I get that right? And the illusion is enhanced by the slow movement of the image. Something along these lines, isn't it?
|
|
Posted By
Murphy on 2023-11-24 08:31:46
| Re: Subpixel "rendering" CRT
Broadly speaking, yes, but I would like to clarify a little.
The subpixel rendering gives the illusion of smoother motion. Thanks to the half, quarter... pixel offset of the graphic data, you can position the sprite with more than just full pixel precision.
Look at this effect playing in slow motion, you can clearly see how the contours of the balls change. https://youtu.be/3U5OLuLtz6Y?si=3uyNRqy-YGtPCGge&t=130
This is the effect used in the "highres" scroll in the Crest demo. 2 subpixel phases alternate per frame and scrolled by one pixel every second frame. This way your eyes are visualizing about double horizontal resolution there.
|
|
Posted By
Csabo on 2023-11-24 09:21:15
| Re: Subpixel "rendering" CRT
So basically this?
https://drive.google.com/file/d/1pOjG4WmJKysUXopr2sAXb5QdB9kEfAyy/view?usp=sharing
Maybe someone can check it on a CRT. On my monitor on YAPE, I honestly don't see a noticeable difference. Maybe the subpixel one is worse?...
|
|
Posted By
Murphy on 2023-11-25 02:50:44
| Re: Subpixel "rendering" CRT
What exactly are we seeing here?
An axis aligned square does not have a contour that can change in small steps. Either the entire column is full or empty.
Check out the discs in the Orange demo in the linked video. And watch it in slow motion too. It's really noticeable when the discs move at less than one pixel per frame.
|
|
Posted By
MMS on 2023-11-25 02:32:45
| Re: Subpixel "rendering" CRT
Yepp, we produced monitors for HP and subpixel is a real thing I knew because even subpixel defect was not allowed for us.
My 2c: So it depends on the mask of the CRT TV if the scroll looks smoother or just no difference.
So the point is when you know how the pixel built up in case of a specific slot mask, shadow mask or aperture grill, and you continuoulsy change the contour color according to that color sequence it can look smoother on THAT specific aperture grill. The best is Trinitron, it is very sharp and very even black space between the color lines. So if you follow the Red, Green, Blue (and only the pure RGB colors) at the edges, then I think you may not duplicate, but triple the vertical scroll resolution to 960 But as Plus/4 do not have real RGB colors (not evena pure white) this is just theoretic. Also you can make it even smoother by doing transient color from red to green in a way the green content become stronger, while the red fades away.
http://filthypants.blogspot.com/2020/02/crt-shader-masks.html
https://www.retrorgb.com/retrotink5x-new-scanline-features.html
BTW that's why it cannot work on most LCD TVs:
https://imgur.com/a/UZ8wjum#86selvy
Sorry for the big pictures. was too lazy to convert them, maybe today evening :-)
|
|
Posted By
gerliczer on 2023-11-25 04:42:07
| Re: Subpixel "rendering" CRT
@MMS: That "subpixel" is quite a bit different than the primary coloured parts of a display pixel. In that context what we are dealing with is the fact that the display content is generated in a higher resolution than the actual display resolution. If we look at it in a simplistic view that is a waste. However, if we have fine control over the displayed colours, it can be exploited with advanced rendering techniques to enhance the perceived resolution. Usually, these 8 bit machines lack the necessary capability to finely tune the tint of all individual pixels, therefore limited but in certain cases sufficient enough colour mixing techniques are used instead.
|
|
Posted By
Charles on 2023-11-25 10:55:53
| Re: Subpixel "rendering" CRT
@Murphy, All, Thank you for the explanation! The C64 folks just were speaking in riddles I guess they did not understand the effect either. I dare to say now I might get it more or less, though I wonder if this can be properly exploited Today..
In essence if the odd and even frames (when not shifted with fine scroll) are completely different this would be flickering and have half of the luminance, like:
| | | | in frame one (1 hires char) | | | | | | | | | | | |
| | | | in frame two | | | | | | | | | | | |
if we just make tiny differences we might observe a bit of optical illusion though, but still can expect luminance issues at the changing part, right? If we start changing color let's say purple-red in frame one and green-cyan in frame two it might be really perceived better as extra resolution but then we would observe "color flashing"
If subpixel matrix on LCDs is really that different probably we can forget about this for good. (I cannot even test it now due to not having a CRT screen) But anyway, very interesting concept..! Combining with the true interlace capability/TED hack we could theoretically display 640*480 resolution!
|
|
Posted By
MMS on 2023-11-25 12:06:24
| Re: Subpixel "rendering" CRT
@gerliczer I agree with your comments, I just wanted to tell, that there is a way to theoretically improve the resolution of a scrolling by continuously adjusting the border color to match to the physical color mask of the Trinitron TV. Some ppl may have a dream to reach that level of precision, but agree that the 8 bit machines do not have the calcuation power to manage it. Color mixing, and adding new colors is a great way to create artificial greatness of the release BTW following such theories may result great releases, like Larry's slideshows, even on C64 (following the concept, that the human eye's perception is better to luminance than to the number of colors).
|
|