logoalt Hacker News

Show HN: I wrote a C++ ray tracer from scratch without AI

133 pointsby martianotoday at 9:34 AM57 commentsview on HN

Comments

ssensseitoday at 2:12 PM

_" Btw this was initially coded without AI, but I've used it for the recent clean up and features. "_

???

show 2 replies
martianotoday at 9:34 AM

Hey HN,

5 years ago I was 17 and learning to code C/C++ in a coding bootcamp (42). One of the projects was a simple C ray tracer. I really enjoyed working on the project and always loved computer graphics, so I decided to create my own path tracer from scratch, in C++, without using any third-party libraries.

I ended up working on it consistently for over a year, then sporadically when CG excitement hit me again. Recently I polished it and completed some unfinished features and decided to make it public, finally. It's a C++20 Path Tracer with a CPU renderer. It is able to render good-looking images with reasonable performance and sample count.

Btw this was initially coded without AI, but I've used it for the recent clean up and features. This project is a personal favorite of mine, and it can improve a lot, so I'd love to hear your feedback.

show 8 replies
jasonjmcgheetoday at 3:23 PM

This is (or at least used to be) a right of passage in the graphics world.

I think many people go through the very popular https://raytracing.github.io/

There was a big influx of this when Sebastian Lague did his video series on building a ray tracer.

show 1 reply
evilturniptoday at 2:18 PM

Ray tracing is one of those problems that is conceptually so simple, yet continues to take so much mindshare because of all the challenges to implementation.

ivanjermakovtoday at 2:18 PM

Me too, but in TS/WebGPU: https://github.com/ivanjermakov/moonlight

Very fun! Packing data for GPU-side BVH was quite tricky.

show 1 reply
Phelinofisttoday at 1:42 PM

"Without AI" is the new "Written in Rust", SCNR

cultofmetatrontoday at 11:39 AM

for anybody else interested in this undertaking, I recommend this book https://pragprog.com/titles/jbtracer/the-ray-tracer-challeng...

elevententoday at 1:34 PM

A C++ ray tracer from scratch was the course project for my computer graphics class in 2016. I enjoyed the exercise immensely. Not nearly as robust as yours of course.

show 1 reply
Alifatisktoday at 1:05 PM

> without AI

Now this is how you catch attention

show 2 replies
sharpfuryztoday at 2:19 PM

Have you considered rewriting it in Rust? Not for any technical reason (I say it reflexively now)

show 1 reply
ddtaylortoday at 3:21 PM

HN ongoing support and disdain for AI is perplexing.

rajhphuyaltoday at 3:18 PM

Great work on such a technically challenging project.

brianolsontoday at 4:12 PM

yup. me too. once upon a time that was a 2 week assignment in graphics class in college

deadbabetoday at 5:16 PM

I think these kind of projects fail to impress these days, with or without AI.

You need a second order effect, like “I did X using this thing I built Y”, where X is the actual impressive part and the Y is just an implementation detail. Maybe like that Roman Empire Names thing.

throwpoastertoday at 4:36 PM

Nice, I once built a ray tracer without using an SQL database.

py93today at 3:05 PM

Very cool!

itsthecouriertoday at 1:57 PM

for the love of the game, very refreshing good ol' coding

tuinorizntoday at 2:46 PM

[dead]