
Show HN: An easy-to-use ray-tracer written from scratch in C++ - diegomacario
https://github.com/diegomacario/Super-Sunshine
======
diegomacario
Hi everyone!

This year I embarked on a quest to learn as much as I could about computer
graphics.

I initially focused on building small applications using OpenGL, but even
after completing a few of them, I still felt that I did not fully understand
how they worked. OpenGL was simply hiding too many details from me.

Hoping that building something from scratch would give me more insight, I
started working on this ray-tracer. The whole experience quickly devolved into
a ridiculous passion project. I built the ray-tracer from the ground up,
starting with the API used to perform operations with points, vectors, normals
and transformation matrices. I also read Scott Meyer’s “Effective C++” book
while I worked on it, which really helped me improve my C++ skills.

Once I finished it, I challenged myself to explain everything I had learned as
clearly as I could. For that purpose, I designed and generated all the images
and animations you see in the readme (except for the ones of the Stanford
Dragon and the human head). Most of the images started out on paper; I would
draw them, break them down into triangles, and figure out the coordinates of
each vertex. I found it very satisfying to generate images in such rudimentary
fashion. I feel that the constraints imposed by my ray-tracer just push one to
be more creative!

I now believe that building a ray-tracer is the best way to start learning
about computer graphics. The whole experience is simply illuminating.

I hope you enjoy the readme!

~~~
NotQuantum
AH! I took Ravi's class on Computer Graphics two years ago! I still refer to
his slides whenever I start a new openGL project. Thanks for sharing!

~~~
diegomacario
Wooo! I heard the course is being updated so that it covers more modern
OpenGL, so it might be worth it to revisit it soon. Thank you for your nice
comment!

------
Azuki
This is a funny project .

~~~
diegomacario
Hehehe thanks! I tried to make the captions of most images as ridiculous as
possible.

