Showing posts with label Writing. Show all posts
Showing posts with label Writing. Show all posts

Monday, June 14, 2010

Announcing OpenGL ES 2.0 for iOS 4

Okay, it's finally time for me to announce Super Secret Project B, which is a new book I'm writing on OpenGL ES 2.0 for iPhone, iPad, and iPod touch.

Yes, I know I said I wouldn't be writing any books in 2010, but the nice folks at the Pragmatic Programmers approached me after I made that statement with an economically feasible way for me to write a book this year. I couldn't say no.

My original plan had been to take my OpenGL ES from the Ground Up blog posts, supplement them, and turn them into a book with step-by-step projects to reinforce the points of each posts. My week at WWDC has caused me to change that approach. I went to all the OpenGL ES sessions and spent a fair amount of time bending the ear of Allan Schaffer, Apple's Graphics and Games Evangelist, as well as a number of Apple engineers who work on or with OpenGL. After a lot of hard thought, I came to the conclusion that the approach needed to change. Although modern hardware supports the fixed pipeline, Apple has stopped making phones that require OpenGL ES 1.1. The iPhone 3GS, iPhone 4, and iPad all not only support OpenGL ES 2.0, but they all require it if you want to take full advantage of the hardware.

OpenGL ES from the Ground Up, however, focused on the OpenGL ES 1.1 fixed pipeline.

Since OpenGL ES doesn't maintain backward compatibility the way workstation OpenGL does, much of the material from the fixed pipeline, such as lights, the model view and projection matrix, and the stock functions for submitting vertex, texture, and normal data are all gone from OpenGL ES 2.0. Instead, you have to handle all that work manually when you write your shaders. Shaders add some complexity to the process, but give you a tremendous amount of power and the ability to write more efficient OpenGL code.

In the Desktop world, it still makes sense to learn immediate mode first, then regular fixed pipeline, and then finally the programmable pipeline, because workstation OpenGL maintains nearly 100% backwards compatibility across releases, and you can get up and running quickly. On Workstation OpenGL ES, you can even mix and match the different modes, accessing the model view matrix and lights from your shaders. That's not the case with OpenGL ES, so spending a few hundred pages teaching things that won't be applicable to the programmable pipeline seemed like a poor use of time, both mine, and my readers'.

But, for the new programmer, the programmable pipeline is really hard to grok. I've been banging my head this past week looking for a way to present that rather complex topic in a way that people without prior graphics or OpenGL ES experience will be able to understand.

Thanks to a lot of people willing to talk with me, I think I've come up with an approach that will work, and I'm really excited about it. So, if you find OpenGL ES confusing, especially if you find the programmable pipeline and shaders confusing, look out for OpenGL ES 2.0 for iOS4. I don't have a release date yet, but I will post here when I have updated information about the production schedule.

Monday, September 22, 2008

Book Update and Article

In addition to the iPhone book (which is about halfway through copy editing now, so darn close to done), Dave and I have been writing articles for Apple's developer web site. We don't get a byline, but the articles are fun to write and Apple's been really great to work with.

The first article we wrote for them went online Friday. You can find it here:

http://developer.apple.com/mac/articles/tools/unittestingwithxcode3.html

We've got another one in the can that should go live soon, and one really big article (might end up as a three-parter, but still waiting for Apple to weigh in on doing that) that's written, but hasn't been edited yet.

Still no word on when the book will be published. Like everybody else, we're hoping Apple will give us some hint about when or if the NDA will drop. It's very frustrating, this whole NDA thing. I understand that there are probably valid patent-filing reasons for it, but it's extremely frustrating. I've got many postings that I've wanted to do here, but couldn't because of the NDA, and the book is in quasi limbo, since it can't be published until the NDA is dropped.

Ah, well...

Sunday, July 6, 2008

Writing

I'm pretty swamped with writing work at the moment. The book project is going pretty well, and I'm fortunate to have a very experienced co-author. I am becoming a much better writer throughout the process thanks to a steady stream of feedback from someone who has written a dozen or so programming books. We've also gotten some other work as a team writing articles about the iPhone. Combine that writing work with the residual work for a few clients that I accepted before the book project came along, and you can probably see that I'm pretty busy, which explains the lack of posts lately.

I've had a few people e-mail me and ask me if they could read the articles I've mentioned or parts of the book we're writing, and I have to respectfully decline. These are all works for hire, which means I don't own them, and it's not my place to say who else can.

Writing for a traditional publisher is interesting. Besides my co-author, we have a dedicated technical reviewer, and we got a really great one. My co-author suggested him, and I was thrilled he was able to do it. We also have an editor who will edit the book after it goes through technical review. We don't have definitive word on who our editor will be, but they are discussing it with someone who comes very highly recommended. 

Before the manuscript ever goes to the technical reviewer, Dave and I have gone back and forth through around a half-dozen drafts, have spent literally hours hashing things out on the phone and over IM. I think this is going to be a really good book. I couldn't be happier about the people I'm getting to work with. 

Now I must get back to writing. Don't expect to see too many postings before the end of the month, although I probably will do at least one good technical posting once the NDA lifts just to get it out of my system. I've got a few topics that I'd like to write about that are too advanced for the books.