Hey all. This is something that I have wanted to do for a long time, and that is a pixelated view effect that runs with raytracing in real time. I managed to get this running from 18 FPS to well over
150 FPS (and if I cap the rendering to 60 FPS, my machine can even get over 250 FPS!).
Have a look!
Comparing to a typical raytracer:
Typical raytracer, 1 raycast per pixel, single threaded (benchmark) | 10-18 FPS at 100x100
My raytracer. 20-30% raycasts per frame, multi-threaded | 147-206 FPS at 100x100
Features:
As far as features goes for a raytracer, this has full on texturing and transparency support, all which runs very nicely.
Texture mapping:
Full lighting support with fast PointLight and SpotLight rendering
Support for custom textures via the Texture instance
Sphere projected skyboxes
Motion blur to hide rendering artefacts when moving the camera
With all these renderings tricks and optimisations combined, you can get some quite impressive results.
A 200x200 shot with all optimisation options enabled running 41 FPS:
I took advantage of many rendering optimisations and tricks to achieve the high framerate.
Benchmarking - Average FPS for 100x100:
Low-end Office PC - 50 FPS
-
DESCRIPTION: Originally an office computer. Memory has recently been expanded from 8 to 16gb. The computer is a 2011-2012 Dell model.
-
CPU: Intel Core i7-2600 (4 core)
-
Memory: 16 GB
-
100x100 Interlaced:
25 - 35 FPS (Average: 27) -
100x100 Interlaced + Pixel Sleeping:
40 - 58 FPS (Average: 47) -
100x100 Interlaced + Pixel Sleeping (No Textures):
44 - 65 FPS (Average: 50)
-
Mid-end Laptop - 84 FPS
-
(Specs not available)
-
100x100 Interlaced:
26 - 45 FPS (Average: 34) -
100x100 Interlaced + Pixel Sleeping:
45 - 75 FPS (Average: 60) -
100x100 Interlaced + Pixel Sleeping (No Textures):
70 - 100 FPS (Average: 84)
-
High-end Gaming PC - 170 FPS
-
DESCRIPTION: My personal computer. Bought this machine early this year.
-
CPU: AMD Ryzen 7 5700X (8 core)
-
Memory: 32 GB
-
100x100 Interlaced:
67 - 87 FPS (Average: 75) -
100x100 Interlaced + Pixel Sleeping:
80 - 123 FPS (Average: 88) -
100x100 Interlaced + Pixel Sleeping (No Textures):
150 - 240 FPS (Average: 170)
-
Get RetroRaster:
You can purchase RetroRaster here on Itch:
Please note; Currently, due to the use of EditableImage, RetroRaster is only useable to certain users that meet the following requirements:
- 13+
- ID-verified
- explicitly opted-in to using the API in published experiences