What does HackerNews think of tinyrenderer?

A brief computer graphics / rendering course

Language: C++

#3 in 3D
#1 in 3D
#8 in C++
#3 in C++
#2 in OpenGL
Cool use of Webassemly! See also the 500 line https://github.com/ssloy/tinyrenderer or the 100 line Python/numpy version https://github.com/rougier/tiny-renderer

Both cpu renderers with texture mapping and Wavefront obj import without further dependencies.

For basic 3d graphics rasterization concepts and implementation check out 500 lines C++ TinyRenderer and its wiki here: https://github.com/ssloy/tinyrenderer and the 100 lines Python version (only numpy dependency) here: https://github.com/rougier/tiny-renderer

Raytracing in a weekend is also useful: https://raytracing.github.io/

check out TinyRenderer, a 500 lines cpu renderer with some essential parts similar to OpenGL, such as z-buffer, vertex and pixel shaders, texture mapping, shadows etc, with articles explaining how things work:

https://github.com/ssloy/tinyrenderer

Linear algebra is really important for graphics programming, but there's really only a handful of concepts you need to get started (vectors, matrix operations (rotation, translation, scale)). This course is relatively short and should give you a good background on these topics: https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2x... . For me, I learned more from the course than my college level linear algebra class.

Other important things to learn are what Vector and Fragment shaders are. I think this course is a good intro for it: https://github.com/ssloy/tinyrenderer

Lastly, when you are ready to start writing real graphics code, you might want to consider using something like Metal if you are on macOS. I have found it to have a much better API than OpenGL. Here's a good book on the topic: https://gumroad.com/l/metalbyexample . I haven't used DirectX, but I imagine its probably much better than OpenGL too.

If you do want to use OpenGL, I found these to be good resources: https://open.gl and http://learnopengl.com/

So if someone is interested in these Computer Graphics resources, you might also like these links:

Computer Graphics from Scratch: https://www.gabrielgambetta.com/computer-graphics-from-scrat...

The tiny{raytracer,renderer,kaboom} series: https://github.com/ssloy/tinyraytracer & https://github.com/ssloy/tinyrenderer & https://github.com/ssloy/tinykaboom

Ray tracing a tiny procedural planet: https://casual-effects.com/research/McGuire2019ProcGen/McGui... with the video on https://youtu.be/JvfjYuz7q4I

Maybe this would be a good start! https://github.com/ssloy/tinyrenderer

It covers how graphics libraries like OpenGL go from triangles to screen coordinates, and how they "shade" pixels in those triangles to create an image.

This is awesome! As an enthusiast of 3D graphics, I appreciate how clean and easy to read the source is. We have very few examples of how the graphics pipeline works in code, tinyrenderer [1] by ssloy being one of the most famous and easy to follow. This should enter the awesome-graphics list as a must read code!

[1] - https://github.com/ssloy/tinyrenderer

"more abstraction"? It's just one to be cross platform, you can't use OpenGL without it.

No need to go full shit ape and creation of 3D images in bmp is excellent exercise you should try.

https://github.com/ssloy/tinyrenderer

Write your own software renderer, and learn how the principles of computer rendering work: https://github.com/ssloy/tinyrenderer

The wiki has lessons in detail: https://github.com/ssloy/tinyrenderer/wiki/Lesson-1:-Bresenh...

Tiny Renderer or how OpenGL works: software rendering in 500 lines of code

https://github.com/ssloy/tinyrenderer

And if you do want to try it, I recommend this as a starting point: https://github.com/ssloy/tinyrenderer/ - straightforward and satisfying to get a 3D model up on screen. It really helped me start building an understanding of how the a pipeline might be implemented.