Может показаться что попытки разработать собственный процессор в 80-е и создать свою технологию 3D-графики в 90-е – явления одного порядка. А в новом веке Apple наступила на те же грабли, но с совершенно другим результатом. Так ли это? На пресс-конференции по случаю открытия WWDC 2014 Apple представила Metal, скромно и почти оправдываясь: OpenGL мешает разработчикам игр для iOS реализовывать полет их фантазии, и вот – Metal. В ряде случаев он оказывается в 10 раз эффективнее чем OpenGL, он менее требователен к ресурсам, в iOS он и в самом деле уместнее чем OpenGL ES. И ни слова про QuickDraw 3D.
Я ни разу не эксперт по 3D-графике, но в начале нулевых в нескольких “эпизодах” одного из проектов живая трехмерная графика просто напрашивалась. Того же эффекта можно было добиться с помощью заранее нарисованных картинок – но их требовалось слишком много. И я попробовал.
В предисловии одного из учебников по регулярным выражениям (Regular Expressions, они же RegExp, а не то что некоторые могли бы подумать) было замечательное утверждение: “если вы не владеете RegExp и у вас проблема которую нужно решать с их помощью, то у вас уже две проблемы”.
Про OpenGL можно сказать то же самое. Как и про многие другие “палочки-выручалочки”. Проект завершился преждевременно, по независящем от разработчиков причинам, весь мой опыт в OpenGL – месяца полтора ученичества, в свободное от основной работы время. Что-то стало получаться, но экспертом я не стал.
Тогда же я обнаружил и “третью проблему” – Quesa. Проект с открытым исходным кодом, почти полностью повторяющий QD3D (это сокращение от QuickDraw 3D, если кто не понял), написанный той же командой что создавала его в Apple. “Доморощенная 3D-графика”, как ни странно, на фоне OpenGL смотрелась как Mac на фоне PC.
Quesa (как и QD3D) во многом уступала OpenGL, но не фатально – все это было устранимо и решаемо. А её достоинства были уникальны. Про QD3D обязательно надо вспомнить.
Это продолжение серии про WWDC 2014, предыдущие части здесь:
Первая часть: WWDC 2014: по версии Apple, 25-я WWDC.
Это был совершенно особенный год. В обозначении следующего после него года менялись все четыре цифры. Пустячок – но забавный.
На январском MacWorld 1999 года Apple официально и окончательно поставила крест на QuickDraw 3D и его низкоуровневой составляющей RAVE (это Renderer Acceleration Virtual Engine, что-то вроде OpenGL): в Mac OS X эти технологии не войдут.
“Используйте OpenGL” – сказал Стив.
Решение было встречено аплодисментами: программисты, особенно те кто писал игры, от QuickDraw 3D были не в восторге. OpenGL уже считался стандартом 3D-графики на всех заслуживающих внимания платформах, доля рынка у Apple Computer была ничтожной, и даже если бы возможности QD3D на игровом поле были сопоставимы с возможностями OpenGL, желающих изучать еще одну нетривиальную технологию было бы немного.
Для написания игр QD3D не подходил. Его техническое задание преследовало иные цели, необходимая для игр скорость отрисовки оказалась в самом конце списка приоритетов.
Разработчики QD3D были уволены, а их детище, в которое они вложили душу и лучшие годы жизни, остались собственностью Apple. Исходный код в том числе. Столько всего осталось нереализованным! Обычная история, увы.
Летом 1999 года на свет появился проект с открытым исходным кодом Quesa (есть такой город в Валенсии), организованный бывшими разработчиками QuickDraw 3D. В проекте не было ни единой строчки из запретного для них QuickDraw 3D, но оригиналу он ни в чем не уступал. Такое тоже случается, но очень нечасто. Значит, что-то во всем этом было.
Проект Quesa тихо скончался в 2008 году. Если у вас другие сведения – пишите.
Разработку QuickDraw 3D (тогда еще не имевшего названия) поручили подразделению QuickTime. Целью проекта было создание 3D-технологии, позволяющей промышленным программистам включать в программы для обычных компьютеров (не для рабочих станций) трехмерные интерфейсные элементы.
В группе продвинутых технологий (ATG) работали над концепцией 3-мерного интерфейса. О чем-то похожем писал в своих работах Джеф Раскин, идея носилась в воздухе – в ATG её попытались воплотить, и обнаружили что ни PHIGS (Programmer’s Hierarchical Interactive Graphics Standard), ни OpenGL (возможно, в то время еще Iris GL, разработка компании Silicon Graphics), с массовыми компьютерами начала 90-х несовместимы в принципе.
Когда-нибудь (например, с 4-ядерным RISC-процессором от Apple внутри) и у компьютеров для обычных Mac’овских пользователей появятся такие возможности, но мир нужно было поразить здесь и сейчас.
Кроме того, Apple Computer с восторгом тратила деньги. 3-мерный интерфейс – это очень впечатляюще. А нестандартно мыслящие и талантливые (что не одно и то же) инженеры вставали в очередь у дверей отдела кадров компании, и им было из кого выбирать. Так или иначе, на MacWorld 1995 года компания представила первую версию 3D-графики своей собственной разработки.
Как и убийству QuickDraw 3D в 1999 году, в 1995 его рождению устроили овацию.
Заслуживал ли этот проект случившегося с ним?
QuickDraw 3D состоял из двух частей, верхнего (собственно QD3D) и нижнего уровня (RAVE). QD3D – это объектно-ориентированные API, организованные эргономично и даже элегантно, написанные на “чистом” C. Вы считаете что на C это невозможно? Вы не совсем правы, но спорить не буду. Пусть API будут объектно-ориентированными “псевдо”.
Уступая по тактико-техническим данным главному конкуренту (в 1995 OpenGL уже стал этим “главным конкурентом”), QD3D на голову превосходил его по простоте и легкости использования. Хороший программист, без ущерба для сроков, мог использовать QD3D и добиваться впечатляющих результатов.
Забавно: OpenGL, хулиганский и бунтарский проект Silicon Graphics, уступал прежнему лидеру в области 3D-графики PHIGS именно в этом. В 1995 с победы OpenGL над PHIGS прошло всего года три, и об этом еще очень хорошо помнили.
В Apple на это незначительное обстоятельство не обратили внимания, что было первой из роковых ошибок в истории QD3D. Руководство Apple почему-то решило что технологии должны продвигать себя сами, своим качеством и превосходством.
Гордо – но глупо. Гордость и глупость гораздо чаще идут рука об руку, чем считается. Но не будем отвлекаться.
О том что QD3D – кросс-платформенный продукт, почти никто не знал. О том что несмотря на простую для понимания и достаточно удобную для применения внешность QD3D еще и бесконечно изменяем – тоже.
Кто-то что-то писал, в каких-то СМИ – но вот маркетинговая машина Apple участия в этом не принимала.
Между тем это было абсолютной правдой. Собственно QuickDraw 3D был интерфейсом к низкоуровневому движку RAVE. При переносе на другие платформы перерабатывать надо было только движок.
Все, чем прославился OpenGL (загадочность, сложность, отсутствие ограничений) в RAVE было. Расширения добавленные в RAVE становились доступны на “верхнем этаже”, легко и просто. Достаточно большие компании с повышенными 3-мерными требованиями запросто могли найти персонал способный работать с RAVE, но об этом мало кто догадывался.
Если бы на развитие RAVE был реальный спрос, даже больная на всю голову Apple (в 1995-96 компания была опасно больна, это факт) не могла не отреагировать на это.
Судьба QuickDraw 3D вполне могла быть иной.
Продолжение следует
Предлагаем подписаться на наш канал в «Яндекс.Дзен». Там вы сможете найти эксклюзивные материалы, которых нет на сайте.
Читайте также
Последние новости