В обсуждении OpenGL 2.0 принимали участие множество людей. Я хочу поблагодарить своих коллеги друзей из ATI, SGI, NVIDIA, Intel, Microsoft, Evans & Sutherland, IBM, Sun Microsystems, Apple, Imagination Technologies, Dell, Compaq, HP, входящих в представительство ARB. В частности, Билл Лайси-Кейн из ATI возглавил рабочую группу ARB-GL2 с момента ее создания и привел ее к успеху за довольно короткое время. Билл, Эван Харт, Джереми Сендмел, Бенджамин Лип-чак, Гленн Ортнер из ATI тщательно анализировали документы языка шейдеров OpenGL и его API и комментировали их. Стив Гленвилл и Касс Эверитт из N VI DIA помогали проектировать язык шейдеров OpenGL, а Пат Браун (тоже из NVIDIA) принимал участие в разработке API.
Огромное спасибо всем разработчикам программ, которые переписывались по электронной почте или отвечали на анкету, размещенную на сайте http://opengl.org. Так как нашей целью было представить лучшее API для разработчиков графических программ, время, потраченное на изучение этой корреспонденции, поистине бесценно.
Особая благодарность создателям языков С, RenderMan и OpenGL. Возможно, язык шейдеров OpenGL будет следовать традиции успеха и отличного качества.
Мне очень помогли читатели черновиков этой книги. Спасибо Марку Олано, Бобу Куенну, Энди МакГоверну, Джеффри Галиновски, Славеку Килановски, Брэду Риттеру, Берту Фрейденбергу, Стиву Канниигему, Майку Вайблену, Бар-тольду Лихтенбельту, Джону Кэссеиичу, Терри Моррисону, Дэйву Хьюлтону, На Ли, Фолкеру Шемелю, Терезе Рости и двум неизвестным читателям.
Спасибо моим маленьким дочуркам Рашель и Ханне за то, что они находили время для игр с папой, за улыбки, смех и поцелуи, которые очень помогли мне. Маленький Закари боролся на этапе редактирования книги за мое внимание - и побеждал. И наконец, спасибо Терезе за поддержку в написании этой книги. Это были трудные времена, но ее терпение и сила очень мне помогли. Спасибо за помощь в рождении этой книги.
Обзор OpenGL
Эта глава содержит краткий обзор программного интерфейса OpenGL, который не претендует на полноту, а призван лишь познакомить читателя с фундаментальными понятиями, необходимыми для усвоения материала последующих глав. Читатель, хорошо знакомый с OpenGL, может сразу перейти к следующей главе. Тем же, кто знаком с другими графическими 3D API, эта глава поможет освоить OpenGL до такого уровня, чтобы начать программировать на языке шейдеров1 OpenGL.