Choosing a CRT-Shader for Youtube

This is part two of the capture of Stars for Youtube.

Video Generation

The process is rather simple:

  1. Run demo on Dosbox, capture the video. You get a 70fps 320x200 video using the lossless zmbv codec for images, and lossless PCM audio. As the demo is a plain VGA program, this is a perfect copy of what is displayed/played by the demo.
  2. Play the 320x200 video with Retroarch, with CRT-shader and video capture.

In Retroarch settings, I choose the target resolution, activate video lossless record + GPU shader record. As Retroarch won't play zmbv video, I first transcode to "lossless" h264, also setting the aspect ratio for the next pass.

After Retroarch, I transcode the video to h264 Q1 to reduce the video size from 30GB to 10 GB, with no visible quality loss.

Here is the makefile I used for the conversion: https://gist.github.com/kassoulet/485ce8bb3c29461ae67a5aeb5a683fbe

(remember, the audio is taken from a video I generated using the remastering done in part one)

Shader Selection

Now it is time to actually select which crt shader to use. The main problem here is Youtube, totally destroying all my loving work. So I tested dozens of short videos clips to choose the best one.

Here are the final contenders, crt-aperture and crt-lottes-multipass with big-pixel nearest neighbour video to compare.

All screens are taken from 1080p Youtube-encoded videos.



Let's check the gorgeous logo pixeled by Ra.

This is the raw version, without CRT-shader. Clean, sharp, ...and pixeled.


This is the crt-aperture version. Still clean and sharp, pixels are gone!


And finally the crt-lottes version. Now we are seriously blurry!



Now some 3D.

The raw version is very pixelated, in motion you can clearly see we are in low resolution with no sub-pixel/sub-texel correction.



The aperture version is much cleaner-looking. Rendering is sharp, textures almost seems to be filtered. The dithering on the background is gone.



The lottes version is once again kinda great looking. It looks like a blurred version of a much higher resolution footage.



The voxel part. 

Again very pixelated in raw mode.



Much nicer with aperture shader. 



With lottes shader, this is a miracle. Pixels are gone. Still somewhat blurry, but in motion it looks incredible.



The scene that sets the match for me. There is one big object moving, the Youtube compression is destroying the video.

Raw pixels version ugly and pixelated.



The Youtube compression totally killed the crt-aperture shader. Ugly artefacts appear on the scanlines. In motion it's simply disgusting.



The lottes version is still blurry, but looks no worse than the raw version in motion.



Without the Youtube recompression, my choice would be crt-aperture. Pixels are gone, images are sharp and beautiful.

The crt-lottes shader is arguably blurred. I would prefer a version without the geometric distortion, but from all the crt-shaders I tried on Youtube, it was the best when looked in motion. It's blurred nature really makes the video actually nicer.


The Videos

Here are the Youtube links. I kept all three versions so you can check for yourselves.



















Comments

Popular posts from this blog

Python bdist_rpm & changing the package name

Returning a array of structs with dbus-glib