Bruce's Vision for The Future [ᴛʜᴇ ᴠɪsɪᴏɴ ɪs sᴘʀᴇᴀᴅɪɴɢ]
MiningGodBruce MiningGodBruce
108K subscribers
2,857 views
415

 Published On Sep 1, 2024

Song: "U Popped My Eyes Out" by Sam Cooper
https://song.link/u-popped-my-eyes-out
https://oppasamuelstyle.bandcamp.com/...

I created this vid in 2 days using my new rendering engine, Acid Engine. I have been workin on acid engine for several months, it will be the basis for my next acid interstate vid. I don't have an ETA on that but God bless u.


–– Details ––
- Rendered at 2560x1440, 60fps and 64 samples-per-pixel
- Rendered using Acid Engine on a RTX 4090 laptop GPU
- Shader is a continuation of Octray and OctrayRewrite
- I used Vegas Pro and After Effects for a few edits
- Encoded with FFmpeg as always
- Shutter angle is 180°

This is a quick test sort of vid so I avoided re-recording any scenes or really trying to fix everything like I usually do. The only animation is the linear minecart movement because I din't write any camera animation yet.

After 7 years I have built up a lot of creative block and paralyzing expectations for the new acid vid. Despite that I have been having a lot of fun working on acid engine. It is by far the most interesting and technically impressive thing I ever did, and it finally realizes some use for the years of autistic rabbit-holing I did on voxel path tracing (see: Octray) and GPGPU algorithms.

Everything in acid engine is procedural generated on the fly, never saved to disk. It runs much faster than realtime because everything lives on the GPU. This video was rendered at the equivalent of 128 chunk Minecraft render distance, plus a 512 terrain height, and I can fly around with almost no lag as new border chunks are generated. I also have sparse chunk allocations so that empty chunks don't take memory. So far I have managed to get world volumes of 4096x2048x4096 before my computer exploded, so that is a pretty impressive 32 billion block render volume.

Acid engine also does voxel meshing on the GPU, but recently I have switched over to the fully raytraced rendering because meshing actually becomes the bottleneck for really large terrain volumes. I think meshing stops working around 4 billion blocks.

Whether or not to do meshing is complicated by the acid terrain deformations. Typically the deformations are applied to the vertex geometry, and if we just raytrace on a voxel volume you can't do that. But I found that some acid deformations are actually mathematically invertible, which means that you can apply the inverse deformation to a ray that's being traced through a fixed voxel grid to get the same effect. I've prototyped this so far but it doesn't look as good as rasterized deformations yet, so the jury is out for now whether I will end up rasterizing in the future.

Acid engine is currently about 4,000 lines of code, written in C++ and using OpenGL. I have been very fortunate in my software career to learn about the other graphics APIs like Vulkan and DirectX12 so that I know they would be a total disaster for this kind of project. OpenGL is very ideal for a single-developer no bullshit project like this (we need to kickstart OpenGL 5.0).

–– M Y S H I T ––
Xitter : / bruceknowshow
Patreon: / bruceknowshow

The prequel to this vid:
   • Heading Home  

show more

Share/Embed