Neon Highway, 3D Spline Parameterization, NVidia 4900, 50 Million points
2024-12-29. Following the Neon Flow video, this is a dashed line version of it. It is a point cloud of a 3D spline made using 3D parameterization of sine wave octaves as a foundation, with an offset based on a circle that orients following a different spline. The circle's radius also oscillates.
DOT RENDER
I tried to use a Line Strip with degenerates, but the GPU wouldn't accept that. A Line List would be reasonable if each line were defined by only two points, but they are not -- they are curved. Thus, I'd need to repeat each point twice. The GPU could handle it, but I couldn't -- I didn't want to hack up my code just for this. Therefore, what you see is a point cloud. No lines. 50,000,000 points in total.
DISTANCE FADE
Points further from the camera are darkened, using the Z buffer knowledge. Since they are rendered with a Z buffer, they do not combine with transparency, meaning only 1 dot wins. This was chosen to allow the coloring to not brighten to white, losing the chromatic information. The down side is that sometimes a dot will flicker as it is occluded by another.
PIXEL GLOW
Post processing takes individual pixels and enlarges them into a 19x19 pixel circle. During enlargement, additive blending is applied. Darkened colors in the distance help lower their additive impact to the final color, helping both to not overwhelm the scene with colors, and to not cause the final color to become bright white.
The final target is 1920x1080, and it is upscaled to 4K before upload.
SPLINE
The spline arrives from a 3D parameterization using multiple octaves of sine waves. Borrowing from 3D value noise, I set base (first octave) values, and compute other octaves using constant frequency and lacunarity values. There are 2 octaves for the foundational spline, and 3 for the out-of-sync spline the circle segments are "following" for its orientation.
FRAME RATE
The final video is 60 Hz, but the NVidia 4090 Laptop can generally render over 600 Hz with 20,000,000 points, and from 250 to 400 Hz with 50,000,000 points -- depending on what is visible.
OPTIMIZATION
There is no effort to prune due to view frustrum. Every dot is rendered every frame. The 19x19 sized post-processing is 361 color and depth samples per pixel, at 1920x1080, that's 748,569,600 samples for both, or 1,497,139,200 samples in total -- 1.5 BILLION samples every frame. The NVidia is a beast. This type of sampling is similar to Gaussian blur, so it could be heavily optimized.
COLOR
Distance through the spline changes the hue of the color. Value (brightness) and saturation stay at 100%.
CAMERA
The camera movement is linked to the base spline which is not visible. There is a camera roll applied, so when the camera turns left/right according to its up-vector, roll is applied as though it is leaning into the turns. It is often hard to tell the camera orientation, since there is no "ground" or "sky" for reference.
FONT
The HUD is minimal to not distract from visuals. The font is Berlin Sans FB.
HARDWARE
Alienware m18 R2 with NVidia 4090 GPU, bought day one availability from Dell: January 23, 2024.
NVIDIA GeForce RTX 4090 16GB GDDR6 (laptop version)
14th Gen Intel Core i9 14900HX (24-Core, 36MB L3 Cache, up to 5.8GHz Max Turbo Frequency) (16 E-Cores, and 8 P-Cores hyperthreaded = 32 V-Cores total)
64 GB: 2 x 32 GB, DDR5, 5200 MT/s, non-ECC, dual-channel
18" FHD+ (1920 x 1200) 480Hz, 3ms, ComfortView Plus, NVIDIA G-SYNC + DDS, 100% DCI-P3, FHD IR Camera
AlienFX RGB backlit Alienware CherryMX ultra low-profile mechanical keyboard
4 TB, M.2, PCIe NVMe, SSD
PLAYLISTS
Xona System 8: • Game Dev Engine #1. A New Beginning.
Voxel: • Voxel Engine #8 - Correct Peripheral ...
Nvidia 4090: • Nvidia GeForce 4090, 3D Sierpiński Ca...
Road: • Pseudo 3D Road #8 - infinite vegetati...
Wave Function: • A.I. Texture Generation, High Res (Wa...
Graph-All: • #1 Graph-All Equation Renderer - Mult...
Ray Cast: • 3D Ray Casting Engine: #4 (Global Gam...
Scroll Shmup: • The First Pixel: Devlog #9 - Enemies,...
Arena Shmup: • Arena Shmup Demo #3 - Object Pool Opt...
3D Polygon: • 3D Polygon Engine #9 - Multiple Mater...
GW-BASIC: • GW-BASIC - Escape From Monster Cavern...
WEBSITES
GitHub: https://github.com/JDoucette
Blog: http://thefirstpixel.com/
Studio: http://xona.com/