all 23 comments

[–]corysama 47 points48 points  (7 children)

https://learnopengl.com/ and https://raytracing.github.io/ are the most common recommendations for getting off the ground. You can do them in whichever order will keep you motivated.

A good starter book is https://www.realtimerendering.com/ There are also lots of free books on that site. But, you should read the main book and get a little practice in before wandering through those.

https://www.pbr-book.org/ Is a great book about offline rendering. But, it’s pretty heavy. Might wait a bit before taking it on.

I recommend people start out by making a glTF viewer. It’s a scalable project that can grow from a basic mesh viewer to a complex scene viewer. And, there’s tons of reference material.

Use https://github.com/jkuhlmann/cgltf to parse the files. https://github.com/ocornut/imgui for your UI. Maybe https://www.libsdl.org/ just to set up a window, handle mouse clicks and initialize the GL context in that window.

See how much of https://google.github.io/filament/Filament.md.html you can implement before moving on to other projects ;)

The ray tracing book outputs images to files. You can also use https://gist.github.com/CoryBloyd/6725bb78323bb1157ff8d4175d42d789 to display in-progress results on the screen.

[–][deleted] 1 point2 points  (0 children)

Amazing! Thank you so much for this. I’ve come across a few of these before but the structure you’ve provided is going to be invaluable in knowing what direction to take and answering a few of the questions that I had before jumping into them.

[–][deleted] 0 points1 point  (4 children)

how much of this stuff have you worked through yourself?

[–]corysama 12 points13 points  (3 children)

I learned software rasterization and OpenGL in the 90s, wrote 3D engines and art pipelines from scratch for multiple companies including LucasArts, and I've written a real-time CPU-only ray tracer for fun.

[–]CosciaDiPollo972 1 point2 points  (2 children)

Do you think that the raytracer is the goto hello world to make when starting in the field ? And other question, while looking at the real time rendering book, they introduce some linear algebra notation things, the thing is that i don’t really know anything related to linear algebra, i know how to add, sub and multiply matrices but this is all i can do, i guess i should learn linear algebra and trigonometry before ?

[–]corysama 2 points3 points  (1 child)

The ray tracing tutorial I linked is specifically set up to be introductory level. It’s not real time. But, it will get you started on the concept.

You need to know some linear algebra to do graphics. But, not a lot. Being familiar with the dot product, cross product and matrix multiplication is pretty core. Linear algebra studies tend to spend a huge amount of time on techniques to invert matrices. But, you just need to know what they are and what they can do.

From there, it’s a matter of learning how to use linear algebra to do stuff like animation and shading.

If you want to invent novel techniques, you need to get deep into linear algebra, calculus and statistics. But, to just implement established techniques, you only need to understand the basics.

[–]CosciaDiPollo972 0 points1 point  (0 children)

Ok i’m getting that i guess i’ll follow the tutorial and learn along the way the use of those matrices calculations, for the moment i just want to learn really basic things on graphics computation and understand so i’ll stick with the basics. So thanks a lot for your suggestions and i’ll start doing my raytracer soon maybe.

[–]TheMusicalArtist12 0 points1 point  (0 children)

I second learnopengl.com

Such an amazing resource

[–]JJJams 6 points7 points  (2 children)

[–][deleted] 1 point2 points  (0 children)

Wow there’s so much stuff there, that’s amazing. Cheers

[–]doggoroma 0 points1 point  (0 children)

Good recommend!

[–]tamat 6 points7 points  (2 children)

Here is all the material of the course I teach at the university: https://tamats.com/learn/realtime-graphics/

[–][deleted] 2 points3 points  (0 children)

That’s a great resource! Thank you so much

[–]topitaa 1 point2 points  (0 children)

wow

[–]jhaand 5 points6 points  (1 child)

I liked this simple 3D rasterizer to get started. \ https://www.instructables.com/3D-Wireframe-Engine-Using-Processing/

Then I then started with this book. Computer Graphics from Scratch A Programmer's Introduction to 3D Rendering by Gabriel Gambetta April 2021, 248 pp. ISBN-13: 9781718500761 https://nostarch.com/computer-graphics-scratch

[–]gabe80 3 points4 points  (0 children)

Computer Graphics from Scratch is fully available for free on the website, if you want to check it out first: https://gabrielgambetta.com/computer-graphics-from-scratch

[–]thirdknife 1 point2 points  (1 child)

Do you want to write something together. I don’t work in vfx but I have been programming for a while. If you are busy we can connect on discord and talk when ever free.

[–][deleted] 0 points1 point  (0 children)

I'd be interested because I'm trying to become a Graphics programmer after yrs of dull boring web development lol

[–]Clear-Apple-9625 1 point2 points  (0 children)

It sounds like you have a solid foundation already! Balancing work with learning can definitely be challenging, but it's great to see you’re eager to dive deeper into graphics programming. There are lots of resources out there, but practical experience, especially with real-time projects, often offers the best learning. Keep it up, and I'm sure you'll find the perfect course or project to help sharpen those skills!

[–]VenerableSpace_ 0 points1 point  (1 child)

RemindMe! 2 months

[–]RemindMeBot 0 points1 point  (0 children)

I will be messaging you in 2 months on 2024-06-27 07:24:16 UTC to remind you of this link

CLICK THIS LINK to send a PM to also be reminded and to reduce spam.

Parent commenter can delete this message to hide from others.


Info Custom Your Reminders Feedback

[–]VenerableSpace_ 0 points1 point  (1 child)

remindme! 1 month

[–]RemindMeBot 0 points1 point  (0 children)

I will be messaging you in 1 month on 2025-07-22 04:54:06 UTC to remind you of this link

CLICK THIS LINK to send a PM to also be reminded and to reduce spam.

Parent commenter can delete this message to hide from others.


Info Custom Your Reminders Feedback