Hello! My name is Greg Sidelnikov, I am professional software developer. I started my career as a Jr. Level Web Designer at a live-streaming company called Kyte.tv in 2007.
I don't work at Google or Facebook. Although some of my past coworkers do. I've worked at several start up companies with them in San Francisco Bay Area.
Since then I followed the evolution of the web as it continued to unfold. Sometimes, I like to write about emerging libraries and share my knowledge with others.
Hopefully you will get my OpenGL book and like it as much as I enjoyed writing it. You can find me on Facebook or Twitter if you have any questions about the book! :-)
Greg SidelnikovThat's me!
Me being blown in the wind and listening to something at Ocean Beach in San Francisco Bay Area a while back.
That's the best pic I could find, haha. Not a picture person in general... but I had to do the whole "who is the author" thing for the book's release...
A book that starts with basics and
gradually delves into advanced principles
of programming 3D graphics with OpenGL.
OpenGL enables talking to your GPU directly from your computer program. It means accessing your graphics card hardware to create 3D graphics, VR applications and games.
This is probably my longest book (comparable in scope only to my WebGL book) at the estimated 250 pages in length. I am still writing it now, getting very close to the official release date.
It costs only $25 with this preorder, and you will save about $10 (or more) as this book is planned for paperback release on Amazon at the average OpenGL book cost in just a few weeks.
The book focuses on what you need to know to quickly get started, show you how to load 3D models, set up your camera view and learn how to move objects around. And a lot more...
Start with basics.
Then learn advanced principles.
There are many questions among web developers about OpenGL because it's so vast. Is it the right time to learn OpenGL today?
If you want to make games that work on all popular mobile devices without having to develop them more than once for each, then there couldn't be a better time.
OpenGL is the cross-platform and cross-language standard for rendering 3D graphics. Unlike Direct3D (or DirectX 12) you can display entire 3D worlds and games across a wide array of operating systems and mobile platforms.
This is a special book for me to write because I've been writing free online OpenGL tutorials since 2003. A lot has changed in the world of OpenGL since then, but fundamental principles of 3D graphics remain the same. This book explores them by using OpenGL example programs that demonstrate the vast capacity of modern graphics hardware.
This month I'm starting yet another book in Learning Curve series: It is this book, OpenGL Gems.
You can preorder it here. It's just a link to PayPal but it doesn't require a PayPal account.
You'll receive it in about 2 weeks by which time I'll be done finishing the second half of the book. The purpose of this preorder page is to give me a little more time to finish it up. Sort of like a self-made KickStarter for my work, distributed from my free tutorial site.What will my OpenGL Gems tutorial book teach you to do?
The following examples are rendered using WebGL, the sister-framework of OpenGL. But I wanted to use WebGL examples on this page, just to demonstrate live what OpenGL programs look like.
Click to open the Tree Blossom WebGL demo.
It's things like that. 3D interactive graphics. And my OpenGL book will teach you how to get started from scratch.
In 3D, all graphics are drawn using one common shape - the triangle. Just think about this. If you can draw a triangle in 3D space, you can draw as many of them as you want to create any shape you wish.
Even spheres in 3D graphics are composed of a series of triangles woven together in stripes and connected at the edges. In my book OpenGL Gems you will learn how to draw your first triangle on the screen.
Once we get our first triangle rollin', we can start writing algorithms that creates spheres. Or... we can load an entire 3D model created in free tools like Blender. If you have 3DSMax, Z-brush or 3D coat... even better.
After the models are loaded you can begin animating them, move them around your 3D world, which is also just a 3D model loaded into your program and designed in 3D software.
You can create a tank, and rotate its tower, individually of the rest of the model. You can also program "key frame" or "bone animation" to make realistic game characters that walk, run, jump and do all kinds of things.
You can also create light sources, create shadows cast from objects that move dynamically in real time. You can create realistic nature scenes and generally can achieve some pretty realistic results with rendering techniques.
OpenGL graphics are rendered using programs called shaders. That's a subject this book describes in full detail. A shader is basically a software program written in a "shading language" (usually GLSL.) You can have a shader that draws realistic water. Or a shader that renders a brick wall and makes it look realistic.
Shaders can also be used for rendering light effects like translucency, or a see-through candle effect, making the 3D model take on characteristics of a "material." You can have materials for rocks, glass, plastic and a variety of other surfaces. It depends on how the light reflects off of them.
Here is the picture of the demo featuring water refraction shaders.
In my OpenGL tutorial book which you can preorder here I will walk you through the process of creating your first triangle, writing your own shaders to create realistic effects, shadows and so on. By the end of the book you will be able to make a simple 3D game. But... that's not all.
The book will also cover how to make 2D games in OpenGL by rendering sprites. Two-dimensional games are often written in OpenGL, by eliminating the Z-axis. OpenGL has earned respect in this area of game development, as a cross-platform framework. You can write the core of your 2D or 3D game once and then semi-easily port it to Linux, Android, IOS and OSX Macs.
OpenGL is probably one of the hardest thing you will learn. If you are a game developer who is transitioning to 3D, it will challenge your understanding of graphics rendering and give you ability to create pretty impressive 3D worlds.
Many tutorials tell you how something was done but not why. Deep knowledge is rare because it requires an effective approach to education itself - not just the subject. This book is designed to help you become comfortable with OpenGL by actually explaining why it works the way it does.
This is why, even if you're just a beginner programmer you will (hopefully!) find this book valuable. As always, when we get to more advanced subjects, I try to keep explanations easy to understand.
3D graphics is not the only thing you can use OpenGL for. OpenGL gives you access to programmable shaders, which are programs running directly on your video card hardware. This gives you ability to create various special effects, and significantly increase performance and cross-platform availability of your 2D platformer games.
By rendering rectangles that are always facing the camera, it's possible to imitate 2D sprites. This is what gives you the ability to make fun 2D games that work on most mobile devices. You can create OpenGL games, and publish them on Steam, since OpenGL is one of the widely supported frameworks on it.