does deprecation of the fixed function pipeline make GL harder to learn?
I want to ask this question of the GL community:
Does deprecation of the fixed function pipeline make GL harder to learn?
My answer is YES, but I want to know what other people think, since everyone learns in a different way.
To make my case, I am basing this on my personal experience from when I started with GL. I started learning OpenGL when I was in high school, back in 2000. Teaching myself from the internet, I went through a few critical stages:
-create a context, and clear to whatever clearcolor is
-draw a line / triangle/ something in orthogonal mode
-draw triangles in perspective
-move the camera
-apply a texture, add lights, fog, etc.
-switch from immediate mode to vertex arrays.
Then when shaders came out I was able to try them, and when something didn't work, I knew WHAT I broke.
But now, I see newcomers ask things like 'should I just start with 3.0 and not learn old opengl?', to which I see many seasoned programmers say, 'don't bother learning the old stuff, it's all deprecated and you will have to relearn everything the correct way later.'
Well to that, let me just say this: If I think back to how I was in high school, and try to imagine myself having to correctly set up a vertex array, vertex shader, AND fragment shader before I could even get the first triangle on the screen, I would have given up before I got anything on the screen! It seems with the new model, you need to know everything just to do the most basic task of drawing a single textured triangle!
To any newcomers who want to learn opengl, I would recommend this route:
1. start with fixed function, immediate mode
2. as soon as you get a grasp on how things work, switch to vertex arrays, the VBO
3. switch to vertex shaders
4. switch to fragment shaders
5. Now you are drawing in a 'modern' way with VBO's, and shaders, and you didn't kill yourself trying to learn everything all at once!
I don't think there's anything wrong with having people start off using fixed function or immediate mode. Like you said, it's too daunting to learn everything the proper way. They are still learning lots of valuable skills and concepts even if they are doing it "wrong" by using fixed function.
A similar example, if you read any intro to C++, one of the first example programs they have you write usually involves getting input with std::cin. To all the professional C++ users out there, have you *ever* written a real program that uses std::cin?
When I was a kid, the first graphical program I wrote had a freaking turtle that would move around the screen and poop out pixels. Even at the time I knew that no professional would ever draw graphics with a turtle. But I still learned a lot about 2d coordinate spaces and geometry and whatnot, with the help of the turtle.
A similar example, if you read any intro to C++, one of the first example programs they have you write usually involves getting input with std::cin. To all the professional C++ users out there, have you *ever* written a real program that uses std::cin?
When I was a kid, the first graphical program I wrote had a freaking turtle that would move around the screen and poop out pixels. Even at the time I knew that no professional would ever draw graphics with a turtle. But I still learned a lot about 2d coordinate spaces and geometry and whatnot, with the help of the turtle.
Quote:Original post by pinacolada
A similar example, if you read any intro to C++, one of the first example programs they have you write usually involves getting input with std::cin. To all the professional C++ users out there, have you *ever* written a real program that uses std::cin?
Not me but there are a lot of command line tools and you have to get input one way or another.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement