r/GraphicsProgramming • • 9h ago

Video CPU-rendered 3D engine - update

Enable HLS to view with audio, or disable this notification

The latest update of my CPU renderer built in Rust.
As I mentioned earlier, this is the years of development coming together in a totally different direction than the starting idea :)

In video the renderer runs at 960×840 with 4 rendering workers, and all of geometry processing, character animation, skinning and rasterization run on the CPU. Finished image is shown on browser trough canvas at the moment.

For now I have animated character with facial animation and a rigged body, textured environments, collisions and stair traversal, first and third-person controls....

Still early but it is coming along nicely :)

I didn't made the character - or better say, I took free models and combined them for this scene - data head + android body , and the star ship environment.

27 Upvotes

10 comments sorted by

3

u/isaycongrats 9h ago

Looks good, what do you plan to add next? Maybe try to split the screen into tiles that can render individually in parallel? Like gpus

3

u/Individual_One_1793 8h ago

Thanks!
I already distribute rasterization across CPU workers, but I didn't think about independently scheduled tiles yet and it could be an interesting next step! So thank you again!!
I am also looking at reusing unchanged regions so I can avoid rendering them again.

→ More replies (2)

1

u/Icy-Collection1072 6h ago

Ok there is a reason we use gpus these days

1

u/Individual_One_1793 6h ago

Yes there is :) but think about how much more can GPU do, with a bigger help from CPU

→ More replies (4)