This is really the only book I have found that discusses game programming for C# using OpenGL. It has helped me immensely in understanding quite a few concepts that were foreign to me. First, there are a few things that people should understand: This is not for brand new programmers. Programming graphics is a level beyond a new programmers abilities, and throwing these concepts at a new programmer will essentially set them up for failure. You should understand the basic concepts of programming and OOP first. I would highly recommend the Wrox series for this task, as they do a fantastic job of breaking down code and how it works.
For those of you who have experience and wish to start making games/graphics programs with C#, this is a great starter for the concepts. This is the book I started off with, but ultimately this book alone will not be enough. Use this book as a baseline to start with a basic framework for how things operate. Although it does go to a very limited degree into 3D math, this is definitely not the book to study for familiarization with it. It covers the type of math you would need to research for game programming, and it is up to you to research it further to gain a better grasp.
There are a few thigns to note:
the TAO framework that is used in the book (although technically still downloadable and useable) is depreciated, and has for the most part turned into OpenTK [...] You will have to 'translate' the code to the new wrapper, because the structure is different, and things are called in different ways (OpenTK tries to clean up OpenGL a bit and fit it within the .net framework better). It is still very easy to do, and took me only a short time to figure out how it works. OpenTK.com has great examples and forums to help you start.
There are a few Windows APIs that are called within the examples of this book for core fundamental tasks. If you are looking to make something for linux or macs, you should either a)find a language more friendly for those systems (C# is technically cross-platform capable, but the support is spotty at best, although the mono project is changing that), or b)research the API equivalent for whatever system you are trying to code it for.
There were a couple areas where I got confused because the author made some logical jumps without fully ensuring the reader made that jump with him. They are few and far between, but there were a couple times where I didn't know either where a variable came from, or where it should be declared.
All in all, I can't complain because it's the only OpenGL book i've found for C# (most people use XNA, since C# is a Microsoft-produced language). I wanted to learn OpenGL over XNA (DirectX wrapper) because it is lower level, and affords more flexibility.
It would be nice if the author made an updated edition of this book to address at least the first point, since at first glance it may not seem that intuitive switching from TAO to OpenTK.
I would also very highly recommend the book "OpenGL SuperBible: Comprehensive Tutorial and Reference". It explains OpenGL in C++ (there is nothing like it for C# unfortunately), but it is great for understanding the concepts, what the OpenGL library does, how it does it, and why it does it. You will have to translate it from C++ GLUT OpenGL to C# OpenTK OpenGL, but it shouldn't be too difficult once you read the concepts of how thigns work.