Graphical frustration …

Ever try to learn something and find yourself banging your head against an invisible wall. Well that’s what happens every time I try to understand computer graphics. My oldest son seems to have figured it out, but I just haven’t heard an explanation that will get me started. I go for runs with my son and he can talk for hours about shaders and pipelines and various types of graphics related constructs and I just don’t get it.

It was very much like that for me with the programming language C. I just couldn’t understand why there had to be files with an h extension that said the same thing as the ones that held the code. Then I stumbled across a series of videos from Standford university on Objective-C. When I was done the lectures and had written my first few programs, I realized that it didn’t really matter. Java got me part way there and objective-C finished the job.

So what do I have to do to understand why it’s important for graphics cards to have hundreds of cores with gigabytes of memory? Usually I start with a trip to the source of all knowledge … Wikipedia.

“Shaders are simple programs that describe the traits of either a vertex or a pixel. Vertex shaders describe the traits (position, texture coordinates, colors, etc.) of a vertex, while pixel shaders describe the traits (color, z-depth and alpha value) of a pixel. A vertex shader is called for each vertex in a primitive (possibly after tessellation); thus one vertex in, one (updated) vertex out. Each vertex is then rendered as a series of pixels onto a surface (block of memory) that will eventually be sent to the screen.

Shaders replace a section of video hardware typically called the Fixed Function Pipeline (FFP) – so-called because it performs lighting and texture mapping in a hard-coded manner. Shaders provide a programmable alternative to this hard-coded approach”

What does that mean? There are lots of big words with links, but there has to be a better way to understand this technology. Tessellation? WTF? I clicked on the link but I can’t say that I feel enlightened. So where do you go next? YouTube…

http://www.youtube.com/watch?v=98SSgxDe-5A

I feel slightly more enlightened now but I will probably have to write a program or two before I really understand what is going on. Anyone out there have a suggestion for where to start. Or better yet, a simple description in the form of text or a link.

 

 

This entry was posted in General and tagged , , , , . Bookmark the permalink.

One Response to Graphical frustration …

  1. I lived this frustration as well.

    To get the ideas try http://www.learnopengles.com/. This has some good Android tutorials that had me using Android in a very short time. iPhone 3D has some great explanatory text – although the code is all C++.

    The really frustrating thing is you just cannot see what is going on in the GPU programs and simple errors result in black screens. The iOS OpenGL debugger (see http://developer.apple.com/library/ios/#recipes/xcode_help-debugger/articles/debugging_opengl_es_frame.html to get started) is unspeakably awesome. You can look at frames, uniforms, attributes, vertex and index buffers…this is what allowed to me to really see what the hell was going on.

Leave a Reply to Peter Musgrave Cancel reply

Your email address will not be published. Required fields are marked *