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 WebGL 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 for the web browser.
WebGL enables talking to your GPU directly from your browser. It means accessing your graphics card hardware to create 3D graphics, VR applications and games.
This is my longest book, estimated 250 pages in length.
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 WebGL because it's so vast. Is it the right time to learn WebGL 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.
WebGL and also WebGL 2.0 are the web standards for rendering 3D graphics on canvas tag. It's a little different from regular HTML canvas graphics. You can display entire 3D worlds in a browser, without having to launch a desktop PC or Mac application.
Regular canvas can only do 2D graphics and render sprites. And that's great for small games. WebGL provides an easy way to render 3D graphics, loading 3D models and "look around" a 3D world with mouse and keyboard controls. It works on most desktop and mobile devices, except Opera browser.
This month I'm starting my new book WebGL 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.What will my WebGL Gems tutorial book teach you to do?
Click to open the Tree Blossom WebGL demo.
It's things like that. 3D interactive graphics. And my WebGL 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 WebGL 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.
WebGL graphics are "shaded" using programs called shaders. That's a whole topic my book describes in 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 WebGL 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 WebGL by rendering sprites. This gives us access to shaders. Traditional HTML canvas does not have that opportunity, but if you're into making 2D games this will show you how.
WebGL games can be installed as semi-native apps via the browser. It's a recent development on the web. These non-native (browser) apps look and feel exactly like native ones. And yes you can even send push alerts from them.
This means you can make a WebGL game and not have to publish it via iTunes, which have a strict content policy (what you can and cannot do in a game) and collect extra fees and everything of about $100 a year for the Apple developer's account.
Yet, WebGL games will work in most browsers and you can make mobile apps out of them for any device. It gives you creative freedom as a game developer and you can promote your game by simply giving away the URL to it, instead of having to go through installation process.
WebGL isn't an easy thing to learn, but if you are a game developer, it's one of the things you should definitely look into because it's becoming pretty popular. Primarily because of its accessibility. In the past we had to use "OpenGL" which was only available for desktop applications to make games.
WebGL is a limited version of OpenGL, but it's always improving. You can do great things with it.
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 WebGL by actually explaining why it works the way it does.
This is why, even if you're just a beginner programmer you will 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 WebGL for. WebGL 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 of your 2D canvas-based 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 WebGL games, and publish them on iTunes or Google Play store, since WebGL is supported by iPhone, iPad, Android and most tablets.