Pick one from each of these and work your way up.
1. CG Fundamentals
† these aren't OpenGL books, they just use OpenGL to teach rudimentary CG concepts
Of these, my personal favourites are the last two. More practical and hence engrossing for the beginner; the explanations aren't very cryptic, unlike the other, more academic books in the list.
Reason Real-Time Rendering is omitted is it's not a get your hands dirty book; it's a broad survey of techniques used in the industry than on fundamentals of CG; theory-heavy than workout-heavy: something beginners need to understand basics well. Even the theory covered is fairly high-level at many points.
2. Math Basics
To be proficient in computer graphics or even to understand the basics, a decent amount of mathematical concepts needs to be grasped; it requires one to be comfortable in using trigonometry and linear algebra. For this I recommend
- Vector Math for 3D Computer Graphics is by far the best beginner tutorial for vectors and matrices. It is also interactive in that at the end of each section there's a test question to verify and seal the understanding of that topic.
Out of these math books, the most intuitive is the first with lot of funny anecdotes in between, the last is for hard core math fanatics (if you're afraid of symbol vomit, steer clear of it), although it's a good book for experienced CG programmers who need a reference. The one in between is really good in that it details out somethings which the other two (or many books for that matter) omit, and in the spectrum of intuitiveness and hard core math it's in between.
Just reading doesn't seal the concepts so working out is definitely recommended. For that I found these tutorials very good; most give a decent explanation of the theory too.
Don't get too attached to a specific library or tool (e.g. OpenGL, Direct3D, Metal, Vulkan, WebGL, SDL, Quartz, etc.) Once you understand the basic concepts (math behind them), implementing them in any language, framework or library wouldn't be a big deal. Just syntax/compiler would change, but the techniques themselves remain the same.