The Xmas Demo 2021 features, for the first time in this not particularly long series of rip-offs, animated
objects using inverse kinematics. It demonstrates Sjur Julin's new 3D engine called V73D. Think Unreal Engine,
only about 1000 times smaller and faster. And, as usual, we spent hours months optimizing some awesome looking shaders
from ShaderToy to run in 60 fps on low-end hardware. This time we used the Nvidia Jetson AGX Xavier: It's like a
Raspberry Pi 4, only useful. It has 512 GPU cores and 8 ARM cores. I use my Pi as a doorstop now.
The code is written in the best (and greenest) programming languages ever: C and GLSL. It compiles and runs on both Linux and Windows with assorted graphics cards. Download the source and try it out!
Recommended article: C is the greenest programming language [hackaday.com]
First compile V73D using make. If that completed ok, risk it all by doing sudo make install. Then compile xmasdemo by running make and it should produce an executable file. For Windows, it's slightly more interesting. If you run into issues, contact me.
To get it to run in 60 fps on the Xavier, use the following tricks: First of all, lock the GPU clock to 1.3Ghz and max out the ARM cores. NVidia's auto clock crap still sucks. Next, use the -x option: It will dial down the quality of some of the shaders and remove heavy backgrounds. v2 introduces the -s option to disable VSync.
Six shaders from ShaderToy have been modified and used. Some were heavily modified, others less so. Below are links to the original ShaderToy versions:
We recycled these two shaders for the nth time. They're mostly unchanged versions of the ones used in The Xmas Demo 2020. The big changes were made in the control code.
Versions:
v2 2022-03-07 Timing fix. Add -s option to disable VSync.
v1 2022-02-24 Initial release.
This article is published under the following license: Attribution-NoDerivatives 4.0 International (CC BY-ND 4.0)
Short summary:
You may copy and redistribute the material in any medium or format for any purpose, even commercially.
You must give appropriate credit, provide a link to the license, and indicate if changes were made.
If you remix, transform, or build upon the material, you may not distribute the modified material.