I was just about to say Real Time Rendering. I'm reading it now. I'm not so sure it's a beginner's book although he starts out pretty much from the beginning and explains everything.
I just started reading it a week or so ago. In the first few chapters he's (there are actually multiple authors to this book) explaining subjects that I teach and I have no idea what he's talking about (Ok. That's a little bit of an exaggeration, but I barely understand what he's talking about on a subject I know well). It's the fact that he's explaining most things in high level mathematical equations. His intended audience is people with graduate degrees in mathematics apparently. I know how to do the math and can barely follow him(although I learned the math by doing game programming, not in school, and thus the notation is what is a hang up for me; I suppose after you've written a few thousand hyper dimensional imaginary numbers [quaternions] in school the notation comes naturally). I've written a fair amount of code that does what he's talking about, and I can barely follow him. I would just say it's not an easy read if you don't have a pretty serious mathematics background. In-spite of all that, I would still recommend it. I'm just a bit concerned that when I get to the parts of this book where he's explaining things I don't already know, it's going to be a real struggle to figure out what he's talking about since I'm struggling to understand what he's talking about in the parts of the book where he's explaining things I have extensive knowledge of. (It's kind of like someone explaining how to get to the grocery store using calculus equations.) Regardless, I'm reading it anyway because I think it's one of the most thorough works in the field covering the topic about as well as any single book out there.
I might also mention that this book is ancient. It was published in 2008 (third and I believe most recent edition). I have to assume there have been advancements in the field in the past decade. I'm wondering if they are going to publish a fourth edition. Still, I think this book was ahead of it's time and modern graphics may only be catching up in recent years.
I found "3D Graphics Programming" to be very helpful in understanding basic rendering and such. It covers a lot more than just rendering, but it doesn't go nearly as in-depth on the single subject of rendering. Still, I think what I learned from that book will give me a fairly solid foundation for trying to understand the "Advanced Shading" chapter of Real Time Rendering, which is why I'm reading Real Time Rendering right now. It is mostly about 3D graphics but includes chapters on curves and surface, animation, and physics.
For shaders - if you are new to the subject, I would recommend my video series on HLSL. There's a little bit of matrices and quite a bit of vectors in that series and so you may want to watch the videos on vectors and matrices first, if you are not familiar with them.