Hi everyone!
So ever since I watched a few youtube videos of demos created by people from the demoscene, I have been fascinated by Graphics Programming. The way it allows us to express our creativity, artistic vision, and at the same time, showcase our programming prowess is something that have made a big impression on me.
However, knowing how ardous this road is, I was hoping if anyone who have taken the plunge into Graphics Programming could share some advice, or point me in the right direction ?
I have some programming experience (namely Python) though I wouldn't call myself a very 'experienced' programmer. In addition, I have done majority of the college level math classes in the past: calculus, linear algebra, discrete mathematics- though I'll have to admit, that's largely forgotten by now ^_^
From my understanding, I would need to:
1. Learn C++:
I will be picking up a book or two on the subject soon, but if anyone have any good suggestions of a book on C++ that they think would be perfect for a beginner please let me know!
I know that C++ is one of the more complex languages when it comes to programming and that one never stops learning when it comes to C++ because of the plethora of libraries it has, but for Graphics Programming, what are some of the key programming concepts or area of focus I should pay more attention to while learning C++? And just how much fluency I would need to acquire before I should even attempt to learn about Graphics Programming? (once I have the fundamentals down? once I have reached an intermediate level?)
2. Brush up on Linear Algebra and more specifically, have a solid understanding of the use and applications of Vectors and Matrices? (these seems to be the most important mathematical concepts when it comes to Graphics Programming right? as they are related to transformation and animation.
Are there anything else beside these two? Quaternions? Trigonometry?
3. Choose between DirectX or OpenGL
Personally I would probably pick OpenGL as it's crossplatform, so what comes next is understanding the entire openGL pipeline, its libraries, etc? glsl, shaders?
With so many things yet to learned, and how much depth Graphics Programming actually covers, it truly feels a little daunting.
If you were to advice a novice on how he should get started, what would be the step by step approach you would suggest? What would you recommend him to learn first, second, third.. etc. What learning materials would you recommend?