Программировать их было интересно, но иногда это совсем изводило. Я был далеко не единственным, кто прилагал большие усилия для написания низкоуровневого кода, который бы выполнялся над каждым пикселом. Другая группа разработчиков проекта Pixel-Planes разработала ассемблер для тендерного кода, позволявший упростить его написание, хотя создать хороший шейдср все равно было трудно. Шейдеры знакомы каждому, кто видел демонстрационные программы любого из последних графических программных продуктов, и он не будет удивлен, обнаружив варианты некоторых из них в этой книге: шейдеры для создания Об этой книге дерева, облаков, кирпичной стены, каменной поверхности, воды с отражением и волнами и, конечно же, набор фракталов Мандельброта.
Полученные результаты и трудности, проявившиеся при создании шейдеров Pixel-Planes 5, привели к тому, что некоторые модели и решения были заимствованы при.разработке следующей графической машины, PixelFlow. PixelFlow была спроектирована и реализована совместно университетом и компанией, сначала Division, потом Hewlett-Packard. В результате получилась первая интерактивная система, способная работать с процедурными шейдерами, скомпилированными из кода на высокоуровневом языке шейдеров. PixelFlow демонстрировалась на конференции SIGGRAPH в 1997 г. Несколько лет спустя, если бы вам повезло попасть в компанию UNC, вы могли бы писать процедурные шейдеры и запускать их в режиме реального времени, в то время как никто другой еще не мог этого делать. И, конечно же, это было единственное место, где их можно было увидеть в действии.
Я покинул UNC, перейдя в тендерный проект, начатый компанией SGT, в надежде участвовать в создании языка шейдеров, который поддерживался бы на коммерческом уровне и мог использоваться более чем на одном компьютере в одном вычислительном центре. Тем временем в Стэнфорде начались работы над еще одним исследовательским проектом языка шейдеров. Его целью было добиться того, чтобы язык шейдеров мог работать на графическом аппаратном обеспечении уровня персонального компьютера. Все производители аппаратного обеспечения для персональных компьютеров начали придавать своей продукции низкоуровневые возможности. Очень скоро любой мог написать какой-либо шейдерный код, очень похожий на тот, что вдохновил меня во время работы над Pixel-Planes 5. И неудивительно, что повсюду заговорили о необходимости разработки высокоуровневого языка для интерактивного рисования.