Hacker News new | past | comments | ask | show | jobs | submit login

This is awesome, very well done.

As someone with very little knowledge of computer graphics, are there any resources anyone would recommend in order to learn how to build something like this?




A smaller subproblem to get you started is to build a matrix multiplication library (with matrices, vectors, and the ability to multiply them).

Note that when you're building test cases, matrix multiplication is not commutative.

My high school teacher literally just pointed me at the Wikipedia article and said go:

https://en.wikipedia.org/wiki/Matrix_multiplication

The next step up from that is to then render meshes using some form of projection (isometric or perspective). You'll need to figure out how to actually map the drawing to the screen at that point. (In high school we just used the built-in 2D methods in Java. Some of my classmates then went on to shading and textures, but I didn't quite get that far.)


I'm not sure linear algebra is the best way to get into 3D graphics. I'd suggest, starting with old fashioned 3D renderers such as ray casters.

https://en.wikipedia.org/wiki/Ray_casting

Of course it has more to do with raytracing than with 3D projections (which is most often used for real time 3D rendering). If you want to learn about 3D projections, first you should understand what linear algebra has to do with projecting a 3D model on a 2D screen. This is probably a good start.

https://en.wikipedia.org/wiki/3D_projection

And then, learning about matrix multiplications makes sense.


You should DEFINITELY write your own matrix library to learn the underlying principles, but once you want your renderer to actually do something with reasonable speed you'll pretty quickly be replacing your homegrown matrix code with something like Eigen that handles SIMD for you.


For rendering at interactive rates, maybe check out "Real-time Rendering", currently on its 4th edition. https://www.realtimerendering.com/

For rendering at rates measured in seconds per frame, consider the "Physically Based Rendering Textbook", currently on its 3rd edition. https://www.pbrt.org/




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: