AppleInsider.ru
X
О проекте Реклама
Чат
с читателями
Присоединяйтесь
в Телеграме

WWDC 2014: Вспоминая QuickDraw 3D

Может показаться что попытки разработать собственный процессор в 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.

1999

Это был совершенно особенный год. В обозначении следующего после него года менялись все четыре цифры. Пустячок – но забавный.

На январском 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 году. Если у вас другие сведения – пишите.

1995

Разработку 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 вполне могла быть иной.

Продолжение следует

Предлагаем подписаться на наш канал в «Яндекс.Дзен». Там вы сможете найти эксклюзивные материалы, которых нет на сайте.

Новости партнеров
Полиция Австралии провела масштабную операцию против мошенников, использующих криптоматы
Полиция Австралии провела масштабную операцию против мошенников, использующих криптоматы
Xiaomi выпустила HyperOS 2.3 на Android 16. Что нового и кто может установить
Xiaomi выпустила HyperOS 2.3 на Android 16. Что нового и кто может установить
Почему нельзя катиться с горы на нейтралке — главный миф об экономии топлива
Почему нельзя катиться с горы на нейтралке — главный миф об экономии топлива