Проект Fahrenheit

В настоящее время разработчикам и пользователям доступны к использованию сразу несколько API. Среди них два имеют широкое распространение, это набор API DirectX от Microsoft и OpenGL, изначально разработанный Silicon Graphics. Кроме них существуют множество так называемых native API, это GLide от 3Dfx, RenderGL от Intergraph, Hiedi от Autodesk и другие. Наличие разных API, не совместимых между собой приводит к тому, что разработчикам приложений (в частности? игр) приходится либо писать код под каждый API, либо выбрать какой-то один. Некоторые API являются узкоспециализированными, рассчитанными на какое-то одно приложение и его расширения, некоторые работают только на одной платформе, например, под Unix. В общем такое многообразие не способствует поступательному развитию технологий в области графических приложений, включая игры и моделирование.

Теперь попробуем представить себе, на что будет похожа работа на персональных компьютерах, если миллионы разработчиков мультимедиа-приложений получат доступ к той же технологии, которая используется лучшими специалистами по спецэффектам из Голливуда (например, компанией Industrial Light and Magic, создавшая терминаторов)? Каким будет дизайн продуктов, если их разработчики с помощью обычных персональных компьютеров повсеместно получат доступ к таким же системам визуализации больших моделей и виртуальных прототипов, которые применялись для создания космического челнока и аэробуса Боинг747?

Компании Microsoft Corp (MS) и Silicon Graphics Inc. (SGI) поставили эти вопросы перед всем компьютерным миром, анонсировав свое совместное видение нового направления, по которому пойдут разработчики при создании графических приложений. Их совместный проект, получивший кодовое имя Fahrenheit (Фаренгейт), после реализации будет представлять из себя набор из трех новых API и должен будет избавить программистов от необходимости писать различные варианты драйверов и приложений для интерфейсов OpenGL и Direct3D или выбирать, какой API предпочесть. Иными словами, программисты должны будут избавиться от необходимости выбирать, какой способ оптимизации кода использовать — OpenGL Optimizer или Hewlett-Packard Direct Model, чтобы определить, для какого рынка готовится продукт.

О создании стратегического альянса между MS и SGI было объявлено 17 декабря 1997 года. Компании договорились совместно определять, разрабатывать и поставлять новые технологии, которые будут использованы в качестве основы проекта Fahrenheit. В результате реализации проекта Fahrenheit должно появится три новых API, которые будут применяться на системах с MS Windows и на платформах от SGI, основанных на UNIX. Fahrenheit совместит в себе возможности Direct3D и Direct Draw API компании MS с возможностями технологий от SGI, таких, как OpenGL, OpenGL Scene Graph и OpenGL Optimizer. Архитектура Fahrenheit должна стать основой для новейших разработок в области графики и визуализации, включая интернет, игры, деловую сферу, создание цифрового содержания, системы CAD/CAM, медицинские и научные приложения.

Этот альянс является логичным продолжением взаимоотношений между MS и SGI и позволит последней выйти на рынок систем визуализации в среде Windows, а фактически -- захватить часть сегмента систем начального уровня, что укрепит позиции SGI на рынке Hi-end графических систем. Компании договорились, что, параллельно с работами над проектом Fahrenheit, будут вестись совместные разработки приложений для профессионалов с использованием API OpenGL и приложений для обычных пользователей с использованием API Direct3D. Кстати, еще задолго до этого момента компании договорились совместно разрабатывать 3D Graphics Device Driver Kit (DDK — комплект разработчика драйверов устройств) для обеспечения поддержки интерфейса OpenGL под Windows9x и Windows NT.

Первый API из трех новых получил кодовое имя Fahrenheit Scene Graph. Ожидается, что этот интерфейс увидит свет в начале 1999 года и будет представлять собой прослойку, связывающую приложение и низкоуровневый графический API. Scene Graph изолирует приложение от аппаратной части и системных особенностей, которые достаточно определены и известны лишь в случае применения графического API низкого уровня. Обеспечивая такую изоляцию, Scene Graph обеспечивает разработчикам необходимую свободу, чтобы сосредоточиться на создании самого приложения, оставляя без внимания множество различных вопросов о том, как оптимальным образом использовать основные аппаратные и системные ресурсы. Немаловажен факт, что новый программируемый интерфейс приложений Scene Graph может в полной мере использовать возможности компьютеров c многопроцессорной конфигурацией. В качестве основы для нового API Fahrenheit Scene Graph была выбрана технология COM (common object model — обобщенная модель объектов) и существующий API Scene Graph от SGI. Интерфейс Fahrenheit Scene Graph предоставит более высокий уровень абстрактного программирования для разработчиков, создающих профессиональные и пользовательские приложения для сред операционных систем MS Windows и SGI IRIX.

Второй новый API является расширением Scene Graph, его кодовое имя — Fahrenheit Large Model Visualization (интерфейс наглядного представления больших моделей). Этот интерфейс должен увидеть свет в начале 1999 года, вместе с Fahrenheit Scene Graph. API Fahrenheit Large Model Visualization должен обеспечить использование в полной мере всех преимуществ интерфейса Scene Graph таким приложениям, как пакеты для трехмерного моделирования (3D-CAD). В качестве основы для Fahrenheit Large Model Visualization были взяты интерфейсы Graphics OpenGL Optimizer от SGI и Direct Model от Hewlett-Packard и MS.

Интерфейс Fahrenheit Large Model Visualization включает в себя множество расширений и будет применяться с различными приложениями. Этот API может управлять невероятно большими и сложными наборами данных, включая десятки или сотни миллионов полигонов или треугольников, или, что более типично — сотни тысяч или миллионы математически сложных поверхностей. Применение нового интерфейса позволит, в частности, манипулировать большими трехмерными моделями в интерактивном режиме, например, моделью целого легкового автомобиля. Кроме этого, у разработчиков появится возможность упрощения моделирования при помощи применения множественных разрешений при отображении модели благодаря взаимодействию с невероятно огромной базой данных изображений. Кстати, новая технология разрабатывается с учетом того, чтобы уже существующие приложения могли использовать преимущества новой модели визуализации, т.е. вопросу преемственности и совместимости уделяется должное внимание.

Одной из основных технологий в этом расширении является способ представления функций, при котором перебор вариантов в математической форме происходит быстрее, чем в форме полигонов, что обеспечивает системе возможность динамического выбора "на лету" метода работы. Ожидается широкое применение этого расширения, однако оно изначально разрабатывается для решения специфических задач, связанных с созданием продуктов (например, прототипов автомобилей) и цифрового моделирования.

Третий новый API имеет кодовое имя Fahrenheit low level API (интерфейс низкого уровня). Его появление ожидается в середине 2000 года, а функционально он располагается над всей аппаратной частью и обеспечивает поддержку всех приложенй, от игр и развлекательных программ всех направлений до научных и высокотехнологичных приложений. В качестве основы для low-level API будут использованы технологии Direct3D и Direct Draw от Microsoft и технология OpenGL от SGI.

Fahrenheit low-level интерфейс будет иметь полную обратную совместимость с сегодняшним API DirectX 5.x, включая технологии Direct3D и Direct Draw. Для того, что-бы приложение в полной мере использовало все преимущества, предоставляемые новым низкоуровневым API, ему придется претерпеть несколько изменений, аналогичных тем, которые требовались при переходе от DirectX 1.0 до DirectX 5.x.

Fahrenheit low-level API будет основным графическим интерфейсом как для профессиональных, так и для пользовательских приложений в среде Windows. Этот API будет иметь полную обратную совместимость с приложениями и драйверами аппаратных средств, написанными для MS Direct3D, а также Fahrenheit low-level API, будет иметь функциональную совместимость с технологией OpenGL компании SGI.

Итак, в скором времени нас ждет новый универсальный набор API, а значит, многие native API исчезнут со сцены, разработчики станут уделять больше времени оптимизации кода, пользователи вправе ожидать появления новых приложений и игр, сделанных на более высоком уровне, не исключено, что интерфейс операционных систем станет полностью трехмерным. Благодаря наличию обратной совместимости все сегодняшние приложения будут функционировать, по крайней мере, не хуже, чем они работают сейчас. Зная возможности MS и учитывая наличие у SGI отличной команды разработчиков, имеющих большой успешный опыт создания высококачественных продуктов для обработки 2D/3D графики, можно с достаточной уверенностью прогнозировать успешное завершение проекта Fahrenheit.




26 июня 1998 Г.

Проект Fahrenheit

Проект Fahrenheit

В настоящее время разработчикам и пользователям доступны к использованию сразу несколько API. Среди них два имеют широкое распространение, это набор API DirectX от Microsoft и OpenGL, изначально разработанный Silicon Graphics. Кроме них существуют множество так называемых native API, это GLide от 3Dfx, RenderGL от Intergraph, Hiedi от Autodesk и другие. Наличие разных API, не совместимых между собой приводит к тому, что разработчикам приложений (в частности? игр) приходится либо писать код под каждый API, либо выбрать какой-то один. Некоторые API являются узкоспециализированными, рассчитанными на какое-то одно приложение и его расширения, некоторые работают только на одной платформе, например, под Unix. В общем такое многообразие не способствует поступательному развитию технологий в области графических приложений, включая игры и моделирование.

Теперь попробуем представить себе, на что будет похожа работа на персональных компьютерах, если миллионы разработчиков мультимедиа-приложений получат доступ к той же технологии, которая используется лучшими специалистами по спецэффектам из Голливуда (например, компанией Industrial Light and Magic, создавшая терминаторов)? Каким будет дизайн продуктов, если их разработчики с помощью обычных персональных компьютеров повсеместно получат доступ к таким же системам визуализации больших моделей и виртуальных прототипов, которые применялись для создания космического челнока и аэробуса Боинг747?

Компании Microsoft Corp (MS) и Silicon Graphics Inc. (SGI) поставили эти вопросы перед всем компьютерным миром, анонсировав свое совместное видение нового направления, по которому пойдут разработчики при создании графических приложений. Их совместный проект, получивший кодовое имя Fahrenheit (Фаренгейт), после реализации будет представлять из себя набор из трех новых API и должен будет избавить программистов от необходимости писать различные варианты драйверов и приложений для интерфейсов OpenGL и Direct3D или выбирать, какой API предпочесть. Иными словами, программисты должны будут избавиться от необходимости выбирать, какой способ оптимизации кода использовать — OpenGL Optimizer или Hewlett-Packard Direct Model, чтобы определить, для какого рынка готовится продукт.

О создании стратегического альянса между MS и SGI было объявлено 17 декабря 1997 года. Компании договорились совместно определять, разрабатывать и поставлять новые технологии, которые будут использованы в качестве основы проекта Fahrenheit. В результате реализации проекта Fahrenheit должно появится три новых API, которые будут применяться на системах с MS Windows и на платформах от SGI, основанных на UNIX. Fahrenheit совместит в себе возможности Direct3D и Direct Draw API компании MS с возможностями технологий от SGI, таких, как OpenGL, OpenGL Scene Graph и OpenGL Optimizer. Архитектура Fahrenheit должна стать основой для новейших разработок в области графики и визуализации, включая интернет, игры, деловую сферу, создание цифрового содержания, системы CAD/CAM, медицинские и научные приложения.

Этот альянс является логичным продолжением взаимоотношений между MS и SGI и позволит последней выйти на рынок систем визуализации в среде Windows, а фактически -- захватить часть сегмента систем начального уровня, что укрепит позиции SGI на рынке Hi-end графических систем. Компании договорились, что, параллельно с работами над проектом Fahrenheit, будут вестись совместные разработки приложений для профессионалов с использованием API OpenGL и приложений для обычных пользователей с использованием API Direct3D. Кстати, еще задолго до этого момента компании договорились совместно разрабатывать 3D Graphics Device Driver Kit (DDK — комплект разработчика драйверов устройств) для обеспечения поддержки интерфейса OpenGL под Windows9x и Windows NT.

Первый API из трех новых получил кодовое имя Fahrenheit Scene Graph. Ожидается, что этот интерфейс увидит свет в начале 1999 года и будет представлять собой прослойку, связывающую приложение и низкоуровневый графический API. Scene Graph изолирует приложение от аппаратной части и системных особенностей, которые достаточно определены и известны лишь в случае применения графического API низкого уровня. Обеспечивая такую изоляцию, Scene Graph обеспечивает разработчикам необходимую свободу, чтобы сосредоточиться на создании самого приложения, оставляя без внимания множество различных вопросов о том, как оптимальным образом использовать основные аппаратные и системные ресурсы. Немаловажен факт, что новый программируемый интерфейс приложений Scene Graph может в полной мере использовать возможности компьютеров c многопроцессорной конфигурацией. В качестве основы для нового API Fahrenheit Scene Graph была выбрана технология COM (common object model — обобщенная модель объектов) и существующий API Scene Graph от SGI. Интерфейс Fahrenheit Scene Graph предоставит более высокий уровень абстрактного программирования для разработчиков, создающих профессиональные и пользовательские приложения для сред операционных систем MS Windows и SGI IRIX.

Второй новый API является расширением Scene Graph, его кодовое имя — Fahrenheit Large Model Visualization (интерфейс наглядного представления больших моделей). Этот интерфейс должен увидеть свет в начале 1999 года, вместе с Fahrenheit Scene Graph. API Fahrenheit Large Model Visualization должен обеспечить использование в полной мере всех преимуществ интерфейса Scene Graph таким приложениям, как пакеты для трехмерного моделирования (3D-CAD). В качестве основы для Fahrenheit Large Model Visualization были взяты интерфейсы Graphics OpenGL Optimizer от SGI и Direct Model от Hewlett-Packard и MS.

Интерфейс Fahrenheit Large Model Visualization включает в себя множество расширений и будет применяться с различными приложениями. Этот API может управлять невероятно большими и сложными наборами данных, включая десятки или сотни миллионов полигонов или треугольников, или, что более типично — сотни тысяч или миллионы математически сложных поверхностей. Применение нового интерфейса позволит, в частности, манипулировать большими трехмерными моделями в интерактивном режиме, например, моделью целого легкового автомобиля. Кроме этого, у разработчиков появится возможность упрощения моделирования при помощи применения множественных разрешений при отображении модели благодаря взаимодействию с невероятно огромной базой данных изображений. Кстати, новая технология разрабатывается с учетом того, чтобы уже существующие приложения могли использовать преимущества новой модели визуализации, т.е. вопросу преемственности и совместимости уделяется должное внимание.

Одной из основных технологий в этом расширении является способ представления функций, при котором перебор вариантов в математической форме происходит быстрее, чем в форме полигонов, что обеспечивает системе возможность динамического выбора "на лету" метода работы. Ожидается широкое применение этого расширения, однако оно изначально разрабатывается для решения специфических задач, связанных с созданием продуктов (например, прототипов автомобилей) и цифрового моделирования.

Третий новый API имеет кодовое имя Fahrenheit low level API (интерфейс низкого уровня). Его появление ожидается в середине 2000 года, а функционально он располагается над всей аппаратной частью и обеспечивает поддержку всех приложенй, от игр и развлекательных программ всех направлений до научных и высокотехнологичных приложений. В качестве основы для low-level API будут использованы технологии Direct3D и Direct Draw от Microsoft и технология OpenGL от SGI.

Fahrenheit low-level интерфейс будет иметь полную обратную совместимость с сегодняшним API DirectX 5.x, включая технологии Direct3D и Direct Draw. Для того, что-бы приложение в полной мере использовало все преимущества, предоставляемые новым низкоуровневым API, ему придется претерпеть несколько изменений, аналогичных тем, которые требовались при переходе от DirectX 1.0 до DirectX 5.x.

Fahrenheit low-level API будет основным графическим интерфейсом как для профессиональных, так и для пользовательских приложений в среде Windows. Этот API будет иметь полную обратную совместимость с приложениями и драйверами аппаратных средств, написанными для MS Direct3D, а также Fahrenheit low-level API, будет иметь функциональную совместимость с технологией OpenGL компании SGI.

Итак, в скором времени нас ждет новый универсальный набор API, а значит, многие native API исчезнут со сцены, разработчики станут уделять больше времени оптимизации кода, пользователи вправе ожидать появления новых приложений и игр, сделанных на более высоком уровне, не исключено, что интерфейс операционных систем станет полностью трехмерным. Благодаря наличию обратной совместимости все сегодняшние приложения будут функционировать, по крайней мере, не хуже, чем они работают сейчас. Зная возможности MS и учитывая наличие у SGI отличной команды разработчиков, имеющих большой успешный опыт создания высококачественных продуктов для обработки 2D/3D графики, можно с достаточной уверенностью прогнозировать успешное завершение проекта Fahrenheit.