Пользователи и DirectX 10. Разговор с Microsoft, ATI, NVIDIA и Разработчиками ИГР.
реклама
В данном цикле статей мы ознакомим вас с информацией, связанной с новой версией DirectX. Информация получена от лиц, которые к данному вопросу имеют самое прямое отношение. Первая статья посвящена соображениям самой компании-разработчика API – Microsoft. Предлагаем вашему вниманию интервью с Дэвидом Блайсом и Крисом Донахью…
[b]ExtremeTech: Быть может, каждый из вам расскажет о своей роли в разработке и адаптации DirectX 10.
Блайс: Моя основная работа – диалог с разработчиками игр и компьютерных устройств о тех проблемах, которые мы пытаемся решить. Затем мы создаем архитектуру так, чтобы решить максимальное количество проблем. После этого мы переходим к более детальному обсуждению архитектуры и готовим спецификацию, затем передаем ее команде разработчиков, которая готовит модели, работающие с драйвером, который написан независимым вендором IHV (прим. Independent hardware vendor). Дальше работает с командой SDK, готовим сэмплы и демо, которые показывают, как работает система.
Донахью: Дэвид упомянул про работу с IHV и ISV (прим. Independent Software vendor)…существует комиссия экспертов по вопросу графики и графических устройств, в которую входят самые яркие умы индустрии. Дэвид и многие члены команды DirectX и группы Graphics Platform Unit тратят уйму времени на то, чтобы создать новое поколение графического API. Но все эти разговоры выливаются не только в актуальный код API, но также и в реальные компьютерные устройства. Это действительно беспрецедентное сотрудничество команды разработчиков Microsoft, различных ISV, которые являются непосредственными потребителями API и создателями приложений, реализующих преимущества данного API, и создателями устройств.
ExtremeTech: DirectX, безусловно, больше, чем просто графика. Это и DirectSound, DirectInput и т.д. Насколько значительно изменятся эти элементы под воздействием DirectX 10 и изменяться ли вообще?
Донахью: На самом деле, не так заметно. Если вы хотите реальный пример, то возьмем контроллер. Контроллер Xbox 360 и вся периферия должны работать в Windows. Чтобы реализовать это, мы берем XInput, используемый для Xbox, конвертируем или модифицируем его так, чтобы он работал в Windows. Поэтому XInput для нас является наиболее предпочтительным API, если мы хотим реализовать преимущества всех органов управления и компонентов, относящихся к периферийным устройствам. Что касается DSound – да, мы обновили его чтобы компонент оставался актуальным, но мы более не хотим в него вкладывать свои усилия. В разработке находятся другие аудио-компоненты низкого и высокого уровня, но пока, к сожалению, не могу сообщить подробности.
ExtremeTech: Какие изменения и улучшения по сравнению с предыдущей – девятой – версией несет нам DirectX 10?
Блайс: Это достаточно сложный вопрос, потому как слишком многое изменилось. Могу сказать, что нашей основной задачей было увеличение эффективности DirectX. Изменений также коснулись принципы работы API." Таким образом, приложения могут реализовать более материальные изменения – изменения в описании геометрии. Тем не менее, это совсем не значит, что в API появятся функции типа "включите и получите прирост производительности".
Также изменения коснулись согласованности функций с точки зрения аппаратной реализации, которая упростит разработчикам создание кроссплатформенных систем. Это позволит определить универсальный набор функций, который будет присутствовать в каждом устройстве.
Затем, если углубиться в отдельные характеристики, мы добавили набор целочисленных инструкций и геометрические шейдеры. Также были внесены изменения в конвейер - мы пытались переложить часть операций с центрального процессора на графический. Таким образом, повторяющиеся операции теперь будут выполняться GPU без необходимости сортировки возвращенных данных с CPU, обрабатываться на конвейере и возвращаться.
ExtremeTech: Вы же вряд ли посмотрели на скриншот и сказали: "Вау, смотри, сколько инструкций на том скриншоте!", ведь так?
Блайс: Так. Но глядя на другие реализованные задачи, как добавленные геометрические шейдеры, можно перенаправить выходные данные в память, вернуть и использовать участок памяти в качестве вертексного буфера. Это позволит более просто реализовать такие элементы, как системы частиц. Конечно же, более просто по сравнению с предыдущим поколением API.
ExtremeTech: Часть сказанного вами о увеличенной эффективности основана на новой модели WDDM (прим. WDDM – Windows Display Driver Model), правда?
Блайс: Верно.
ExtremeTech: Многие с сожалением говорят: "Ох, ну почему же нет DirectX 10 для Windows XP?!". Но есть ведь тому грамотное техническое объяснение, почему нельзя применить DX10 в модели драйверов Windows XP.
Блайс: Как я уже говорил, мы хотим объединить приложения, API и аппаратное обеспечение. В течение ближайших пяти лет мы планируем многое сделать и пока будет преждевременно сказать: "будет версия и для Windows XP" – пока такая задача не стоит. Это будет аналогично тому, если спросить нас, хотим ли мы вообще усовершенствования API?
ExtremeTech: Даст ли новая модель ощутимый прирост производительности всей графической системы?
Блайс: Скорей всего, да. Но с точки зрения API, вы не увидите внезапных изменений в производительности, которые мы хотели бы видеть в ближайшие годы.
Донахью: Есть много других преимуществ в новой модели. Не только производительность и графические компоненты. В любом случае, все это имеет отношение к графике. Но стабильность и другие компоненты, которые принесет новая модель, также являются огромным преимуществом.
ExtremeTech: Можно чуточку поподробнее? То есть это имеет мало общего с загрузкой драйвера непосредственно в ядро, так?
Блайс: Одной из основных причин для создания новой модели драйверов было не просто увеличение производительности DirectX 10, но увеличение стабильности системы. Первое, что было сделано для этого – это согласование работы видеокарты и действий модели драйвера, которая должна соответствовать быстро меняющимся поколениям устройств, сама оставаясь без возможности изменений. Часть этих изменений подразумевает перенаправление вычислений с ядра в область, отведенную пользователю, что теоретически поможет снизить количество BSOD, вызванными проблемами с ядром. Таким образом, если в драйвере есть ошибка, это не навредит всей системе.
Мы хотим виртуализировать приложения таким образом, чтобы ресурсы графического устройства были доступны максимальному количеству «потребителей». Эти сродни эволюции CPU, работающих в режиме разделения времени, когда есть возможность одноврeменного запуска нескольких приложений, которые делят между собой процессорное время. В тоже время память становится виртуализированной так, что приложениям выглядят так, что им доступные все ресурсы памяти. Тоже самое мы хотим сделать и для графической стороны приложения. Короче говоря, новая модель драйверов создана, чтобы воплотить наши идеи.
ExtremeTech: Всем известно, что рабочий стол в Vista прорисовывается с помощью DirectX 9. Что произойдет, если у вас карта с поддержкой DirectX 10? Будет ли рабочий стол прорисовываться с помощью DX9 или все-таки DX10?
Блайс: Нет, рабочий стол будет также, как и сегодня использовать DirectX 9. Становится сложным совместно создавать низкоуровневую технологию и что-то, что располагается над ней. Желательно, чтобы между ними была временная задержка. В тоже время мы внесли несколько незначительных изменений в DirectX 9 с целью снабдить API новыми функциями, необходимыми для прорисовки рабочего стола. Для нас лучшим вариантом является единая согласованная платформа. Даже если мы представим преимущества, который получит рабочий стол от использования DX10, пока нам проще исправить недоработки DX9. По прошествии некоторого времени, когда у нас будет обкатанная аппаратная платформа для DX10, мы подготовим следующий релиз, в котором, быть может, переведем весь рабочий стол на 10-ую версию DX.
ExtremeTech: Вы упоминали о новых геометрических шейдерах. Быть может, вы поведаете нам, что такое геометрические шейдеры? Мы знаем о пиксельных шейдерах, слышали о вертексных (прим. вертексные шейдеры также известны, как вершинные шейдеры), но многие спросят: "А что такое геометрические шейдеры?"
Блайс: Традиционная модель такова: вершины, расположенные в начале конвейера, трансформируются и перегруппировываются в треугольники. Затем происходит растеризация, после чего треугольник снова раскладывается на фрагменты, которые потом индивидуально обрабатываются пиксельным шейдером.
Геометрический шейдер находится как раз между этими двумя этапами и он имеет доступ к вершинам треугольников, причем сразу же после этапа его сборки. Геометрический шейдер может выполнять две различные задачи: может увеличивать число треугольников так, чтобы взять их вершины и создать новый набор треугольников. Или просто может создавать новый набор точек, или набор линий, чтобы затем транслировать ее в растеризатор для генерации пиксельных фрагментов. Мы можем взять точку и сгенерировать набор треугольников вокруг этой точки и расширить до спрайта. Или можно разобрать треугольник на еще меньшие треугольники так, чтобы это выглядело как мозаика. Или можно вывернуть грани треугольника.
Одна из существующих проблем - это необходимость получения достаточного количества информации графическим процессором от CPU. Теперь, когда мы можем генерировать информацию непосредственно на графическом процессоре, эффект «горлышка бутылки» исчез (прим. эффект «горлышка бутылки» в компьютерном мире, как правило, вызван ограниченной пропускной способностью шины, а не ограниченными ресурсами устройства).
(кликните по картинке для увеличения)
ExtremeTech: Теперь стало возможным переложить часть задач процессора на видеокарту: обнаружение пересечений или вычисление затененных поверхностей. У разработчиков появилась возможность использования геометрических шейдеров при грамотном распределении системных ресурсов.
Блайс: Да, это делает систему действительно интересной. Эта возможность дает разработчикам большую гибкость, позволяет делать такие вещи, о которых раньше нельзя было и мечтать, которые было позволено делать исключительно на CPU. Но постоянный обмен огромными по современных меркам объемами информации между центральными и графическими процессорами идет не в пользу производительности в той или иной игре.
ExtremeTech: Многие восхищаются, сравнивая DX10 с тем, что мы видим в новом поколении консолей. Конечно, PlayStation 3 и Xbox 360 используют графику поколения DirectX 9. В случае PS3 это особенно очевидно, потому как в качестве графического ускорителя используется GPU из линейки GeForce 7. Пример Xbox 360 несколько отличается и в ней есть некоторые черты DX10. Не могли бы вы точнее объяснить, чем DX10 будет отличатся от того, что мы видим в новых консолях?
Блайс: То, над чем мы бьемся, - это более эффективное генерирование информации в рамках конвейера. Тем не менее, на консолях следующего поколения этого нельзя добиться, даже несмотря на то, что у них имеются свои уникальные возможности. Есть и вещи как набор целочисленных инструкций, который также недоступен для консолей. Возможно имитировать этот набор путем использования операций с плавающей точкой, но это крайне сложная задача и многие считают, что на ее решение потребуется слишком много времени. С другой стороны, набор целочисленных инструкций позволяет осуществлять намного более интересные адресные вычисления, упаковку и распаковку битов информации. Эти вещи не являются функциями в себе до тех пор, пока это не связано с каким-либо эффектом визуализации. Это позволит выполнять более интеллектуальные инструкции непосредственно на графическом процессоре.
Донахью: Хотя Crysis недавно показал, что мы не все знаем о DirectX 9.
ExtremeTech: Да уж. Пользователей сбивает с толку этот пример и они говорят: "О, выглядит, как DirectX 10". Но насколько я знаю, это были скриншоты DX9, просто они выглядят настолько поражающе, что люди смущаются и называют это DX10.
Донахью: Да уж. Это один из финтов, выполненных парнями из Crytek. Это действительно скриншоты, они ведь не художники, а разработчики. Мы очень тесно сотрудничаем с ними и другими разработчиками, которые хотят, чтобы на коробках с их играми красовался логотип DX10. И как сказал Дэвид, это даст возможность генерирования большего количества информации на самом конвейере. Уровень сложности растет не столько для того, чтобы позволить объектам двигаться более реально, сколько для того, чтобы увеличить число одновременно двигающихся объектов. Думаю, что DirectX 10 как нельзя лучше подходит для этой цели.
ExtremeTech: Не всегда физика компьютерных игр близка к физике реального мира. Что нам покажет DirectX 10 в плане физики, конечно же, по сравнению с DX9?
Блайс: Вы знаете, DX10 позиционируется как API для обыкновенных задач. Но что касается физики – DX10 отлично подходит для этой цели. Но его преимущества не кончаются лишь физикой – они касаются всех графических вычислений. Все, кто увидят графику DX10, не смогут оторвать глаз.
ExtremeTech: Видео – это другая область, смотря на которую не перестаешь удивляться, насколько много усилий вкладывают производители в свои решения. Сможет ли DX10 сделать современные GPU более производительными в этом отношении?
Блайс: Безусловно. В данной сфере наши партнеры среди разработчиков аппаратного обеспечения продолжают внедрять инновации. На столь широком рынке существует много задач, которые нужно выполнить. В частности это касается видео-процессинга и более продуманной обработки изображений. Те нововведения, которые появятся в DX10, дадут производителям непаханое поле возможностей.
ExtremeTech: Расскажите, пожалуйста, о том, над чем конкретно сегодня работают ваши сотрудники. Очевидно, что вам не позволено называть имена или делать какие-либо заявления, но прошу вас описать некоторые новые эффекты – в общем, разницу. Если бы сегодня я играл в DX10-игру, что бы я увидел, что радикально отличает эту игру от DX9-игры?
Блайс: Крис уже начал говорить об этом. Наиболее очевидной станет серьезно возросшая сложность и детализация игр, причем это может принимать различные формы. Листья, трава, скалы, деревья. Можно подумать, что это не суть как важно, но именно это позволяет сделать текущий игровой ландшафт богаче. Кроме того, теперь элементы ландшафта, к примеру, листья выглядят по-разному, а не как размноженные копии. Благодаря DX10 у нас появилась возможность добавить новые эффекты затенения, мы можем моментально менять геометрию объектов – это, безусловно, добавляет сцене сложности.
Чтобы создать более качественных персонажей, мы обратили свои взоры на техники типа displacement mapping (прим. процесс создания карт смещения). Это также добавляет сложность силуэтам персонажей. Появились новые виды освещения, тени. Мы находимся в поиске улучшенных техник мягких теней, которые могут быть использованы геометрическими шейдерами.
ExtremeTech: Вычислительная мощь GPU быстро растет, а пропускная способность памяти - нет. Она медленно-медленно двигается в верном направлении, но не удваивается и не утраивается вместе с мощью графических процессоров. Насколько я знаю, вы тесно сотрудничаете с независимыми поставщиками комплектующих. Работаете ли вы над более эффективным использованием полосы пропускания памяти?
Блайс: В последнее время это стало насущной проблемой. В частности, как вы отметили, играм требуется более широкая полоса пропускания памяти, так как растет количество информации о текстурах. Нельзя не заметить рост разрешения мониторов, что накладывает определенные условия на детализацию видео-информации. Поэтому в DX10 мы увеличили максимальные размеры текстур: по сравнению с размерами, используемыми в DX9 - 2048x2048 или 4096x4096, максимальный размер текстуры в DX10 равен 8192x8192. Если в линейке графических ускорителей существует постоянный набор функций, то разработчикам игр будет необходимо сконцентрироваться на производительности (а не на функциях) и только менять разрешение. Вместе с игрой разработчики должны предоставить на выбор все возможные разрешения, а при установке DX10 сможет выбрать подходящее для используемой видеокарты разрешение.
(кликните по картинке для увеличения)
ExtremeTech: DirectX 9 вносил путаницу, так как для одних целей требовались пиксельные шейдеры версии 2.0, а для другой - версии 3.0. Это причиняло лишнюю головную боль для разработчиков, но также и для покупателей, потому что покупатели, покупая «Графическую карту DirectX 9», не знали, что они действительно покупают. Но производителей комплектующих такая ситуация радовала, потому что им нравится отличаться. Им нравится добавлять новые функции. Как Microsoft сможет обеспечить в DirectX 10 баланс между возможностью добавлять новые функции у производителей видеокарт и пользователями с разработчиками, которые хотят получить унифицированный набор возможностей?
Блайс: Мы внимательно относимся ко мнению разработчиком игр, потому как сами хотим получить постоянный набор функций. В DirectX 10 существует весьма ограниченное количество дополнительных возможностей. Есть поддержка различных видов мультисэмплиногового антиальясинга (прим. multisample antialiasing). Есть возможность фильтрации 32-битных текстур. Действительно важным является возможность выполнения 32-битных операций с плавающей запятой внутри блока разработки текстур или блока блендинга (прим. blending – смешивание), хотя за это приходится расплачиваться аппаратными ресурсами. Поэтому не каждый производитель графических решений желает использовать такой вариант.
Среди перечисленных трех вещей мультисэплинг – одна из технологий, которой мы хотим уделить особое внимание, но это планы на будущее. В нынешней ситуации оказывается, что 32-битное смешивание и фильтрация текстур находятся не на первом месте приоритетов разработчиков игр.
ExtremeTech: Будет ли справедливо сказать, что в DX10 необходимость в иных требованиях отпадает, то есть остается всего три?
Блайс: Это правда.
ExtremeTech: И если действительно этих требований три, то разработчикам не о чем волноваться.
Блайс: Я не хочу давать никаких обещаний, что их всегда будет три. Мы все-таки надеемся (смеется), что с течением времени появятся новые версии DirectX , которые обзаведутся новыми наборами функций.
ExtremeTech: Мы успели познакомится с несколькими реинкарнациями DirectX 9, которые хотя и были поколения "DX9", но имели отличные друг от друга возможности. Произойдет ли тоже самое и с DirectX 10 или вы можете сказать: "До выхода DirectX 11 никаких изменений в текущую версию внесено не будет"? Каждый год, когда появляется новая серия графических процессоров, производители графических решений хотят новых возможностей DirectX, чтобы сказать: "Мы первые, кто поддерживает эти возможности".
Блайс: Мы чутко относимся к сообществу разработчиков, причем это относится как к разработчикам приложений, так и к производителям устройств. Поэтому если у них появятся новые потребности, то мы найдем способ их реализовать так быстро, как это только возможно. Не буду делать никаких анонсов или говорит о каких-либо сроках, но пока нам проще выпускать, скажем, обновления и критические обновления нашего API. И так как DX10 является достаточно серьезным обновлением API, то ничто не мешает нам не вносить маленькие изменения и делать твики. Можете рассматривать их в качестве оплошностей наших разработчиков или запоздалым переосмыслением, но мы оставляем за собой возможность выпускать периодичные обновления нашего API.
ExtremeTech: Готов ли у вас роадмэп преемника DirectX 10?
Блайс: Скажем так, мы много об этом думали.
ExtremeTech: Не раскрывая секретных планов компании на это время, не могли бы вы вкратце обрисовать общую картину ?
Блайс: Есть парочка проблем, которые нас беспокоят. Одна из них состоит в следующем: есть задача создать более богатое и более сложное наполнение в играх и мы действительно беспокоимся о том, сколько потребуется временных и трудовых затрат разработчикам игр, чтобы добиться реализации этой задачи. Сколько часов потребуется дизайнерам, чтобы создать красивый эффект пыли в конкретной сцене? И как хранить эту информацию в памяти, ведь если графика высокого разрешения, то ей потребуется огромное количество пространства?
Наша обеспокоенность также связана с ограниченностью полосы пропускания памяти, которая никак не соответствует скорости вычислений. По этой причине мы стремимся возложить большую часть сложных вычислений на графический процессор. Что касается персонажей, то можно улучшить их силуэты и увеличить количество деталей. Мы видим заметное увеличение реализма теней, но мы хотим добиться и реальной геометрической сложности всех объектов. Один из способов реализовать эту идею – усложнить конвейер так, чтобы максимальное количество операций выполнялось видеокартой. Такой способ можно использовать для расчета поверхностей высокого порядка, к примеру, поверхностей Кэтмулла-Кларка, и их смешивания с картами смещения. Вот именно над этим мы и ломаем головы в течение достаточно продолжительного времени.
ExtremeTech: Хотите ли вы сказать, что преемник DirectX 10 подарит нам графику кинематографического уровня, а у разработчиков игр просто не будут к этому готовы? Так как же максимально удачно согласовать аппаратные возможности с созданием и обработкой графической информации?
Блайс: Насчет качества вы праве. Но все зависит от того, как скоро появятся игры такого качества и когда будет решена проблема с эффектом «горлышка бутылки».
ExtremeTech: Но наличие унифицированных пиксельных и вертексных (и геометрических) шейдеров на уровне API совсем не означает их наличия на аппаратном уровне. То есть DirectX 10-совместимая карта с раздельными блоками вертексных и пиксельных шейдеров в порядке вещей, так?
Блайс: Это верно. Это вопрос производителям видеокарт. Для них это хорошая возможность, потому как спецификация тут не диктует конкретной реализации.
ExtremeTech: По-вашему, с аппаратной точки зрения наиболее эффективны унифицированные пиксельные и вертексные шейдеры?
Блайс: Думаю, что это тенденция отрасли и мы движемся в правильном направлении. Графический процессор представляет собой некий набор параллельно работающих блоков, которые занимаются выполнением параллельных вычислений. А сверху находится слой, выполняющий графические вычисления, которые обеспечивают логическую абстракцию вершинных, пиксельных и геометрических шейдеров.
ExtremeTech: Что не попадет в спецификации DX10? Я имею ввиду, что вы хотели воплотить, но пока вам не удалось внедрить это в API.
Блайс: В самом начале нам хотелось научить DX10 работать с плоскостями высокого порядка. Позднее мы решили, что такая задача весьма нетривиальна, поэтому отложили ее на следующую версию. У нас, на самом деле, не хватает человеческих ресурсов, чтобы правильно решить такую задачу и мы решили, что пока у нас есть и более значимые задачи, которым и уделили все внимание наших разработчиков. У нас было много хороших идей, которые действительны хороши, но после того, как мы углубились в их изучение, мы столкнулись с очень сложными проблемами. В качестве примера можно привести желание сделать интерфейс компонента сбора информации о вертексах более программируемым. На сегодняшний день оказалось, что игра не стоит свеч – потенциальные доходы от нашей идеи не стоят требуемых затрат времени.
ExtremeTech: После появления нового DirectX разработчикам требуется некоторое время, чтобы реализовать новые возможности в играх и еще больше времени на то, чтобы привести их к общему знаменателю. Как вы считаете, будет ли переход на DirectX 10 быстрее по сравнению с предыдущими версиями API?
Донахью: Часть ответа на поставленный вопрос кроется в маркетинговой политике. Вряд ли сразу же после появления DX10-карт появятся игры, но с течением времени они появятся, а их количество будет расти в геометрической прогрессии. Если обратиться к истории и взглянуть на ситуацию с миграцией с DX8 на DX9, это произошло достаточно быстро . Предполагаю, что ситуация с DX10 повторится. Но думаю, что в ближайшее время – не могу сказать, как быстро – мы увидим заголовки игр, которые будут предназначены исключительно для DirectX 10.
ExtremeTech: Игры достаточно быстро адаптировались к DirectX 9 и воспользовались его преимуществами, но до того момента, как DX9 стал обязательным условием, прошло продолжительное время. Что в данном вопросе готовит нам DirectX 10?
Донахью: Трудно сказать. Все ведь зависит от производителей графических акселераторов и разработчиков игр. Если кто-то решит создать мультиплатформенную игру, которая будет работать и на консолях, им в любом случае придется использовать конвейер типа используемого в DX9. С этой точки зрения, мне известны многие компании, которые, скорей всего, воспользуются этой возможностью.
Думаю, что в ближайшие два года мы увидим игры, предназначенные исключительно для DX10. Но повторюсь, это зависит от базы аппаратного обеспечения, совместимого с DirectX 10. Так что ждем.
ExtremeTech: Когда появятся графические решения с поддержкой DirectX 10?
Донахью: Отличная попытка! Эти вопросы не ко мне, а скорее к производителям устройств.
В первой части статьи Пользователи и DirectX 10, мы говорили о новой графическом API с Дэвидом Блайсом и Крисом Донахью из компании Microsoft. Мы обсудили новые возможности API, какими будут игры поколения DX10, почему данный API предназначен исключительно для Vista и многое другое…
Пришло время переключить внимание с программной части на аппаратное исполнение. Во второй и третьей статье нашего цикла мы поговорим с техническим директором компании ATI – Бобом Дребином и Тони Тамаси, вице-президентом компании Nvidia по техническому маркетингу.
Мы задали одинаковые вопросы Бобу Дребину из ATI и Тони Тамаси из Nvidia.
Extremetech: DirectX 10 добавляет несколько значительных преимуществ в графику: геометрические шейдеры, унифицированный шейдерный интерфейс, усовершенствованный конвейер, набор целочисленных инструкций и многое другое. Что вы считаете наиболее важным и почему?
Боб Дребин (ATI): Наиболее значительным преимуществом DirectX 10 является снятие ограничений, с которыми сталкиваются разработчики сегодня. Это позволит перешагнуть порог простой визуализации и перейти на новый уровень игровых развлечений. С DirectX 10 появляется больше путей для доступа, обработки и обмена данными. DirectX 10 позволит приложениям визуализировать не просто пиксель, но и вектора и геометрические фигуры. Такая гибкость заметно упрощает вычисления. Это также позволит разработчикам снизить оверхеды (прим. overhead – служебная информация, сопутствующая непосредственно полезной), что внедрить в игровые сцены большее число объектов, а это сделает сцену гораздо насыщеннее и богаче. Именно к этому мы стремимся.
(кликните по картинке для увеличения)
Тони Тамаси (Nvidia): DX10 убирает множество препятствий с дороги разработчиков, что несомненно является основной заслугой нового API. Появилось много заслуживающих восхищения функций, которые в результате обеспечат более живую картинку на мониторе, более богатую в различных смыслах этого слова. С точки зрения разработчика «этими заслуживающими восхищения функциями» являются геометрические шейдеры, перенаправление и набор целочисленных инструкций. Для разработчиков это значит, что теперь они могут сосредоточиться на создании игры, а не на моделировании специального поведения для конкретной аппаратной реализации.
Усовершенствование в DX10 позволит наполнить миры новыми объектами. Где раньше было невозможно (или нецелесообразно) рисовать стебельки травы или отдельные листья, теперь возможно. Армии высококачественных персонажей, физика их движений и взаимодействие между персонажами – с DX10 все это становится реальностью.
Я думаю, что с точки зрения "живости" картинки в ближайшее время мы увидим больше физики. GPU Physics – еще одна утилита из джентльменского набора разработчика, которая позволяет создавать динамические имитации, выглядящие реальнее, чем когда бы то ни было. Тысячи твердых тел, объемный и динамический дым или туман, миллионы сталкивающихся частиц, текущая вода, бьющееся стекло—все это становится реальностью для разработчиков, а стало быть и для всех геймеров.
Безусловно, вещи типа геометрических шейдеров обеспечат новый уровень реалистичности в анимации персонажей, более эффектное использование теней, более детализированный и динамические пейзажи и т.д. И как это было при миграции с DX8 до DX9, при переходе от DX9 к DX10 планка снова поднимется, причем не только визуально, но также и с точки зрения погружения в компьютерный мир.
Extremetech: Мы знаем, что DX10 подразумевает унифицированные на уровне API пиксельные, вершинные и геометрические шейдеры, но это никоим образом не диктует аппаратной реализации. Возможно ли, что ваши DX10-карты будут иметь раздельные пиксельные и вершинные/геометрические шейдеры. Или прошло время объединить их, или есть преимущества от разделенных на аппаратном уровне шейдеров?
Боб Дребин (ATI): В современных играх мы видим, что количество пиксельных и вертексных вычислений даже внутри одного фрейма может сильно отличаться. Что-то типа облаков или объекта, который расположен близко к камере, может увеличить число пиксельных шейдеров, хотя в том же самом фрейме любой персонаж может состоять из большого числа полигонов и небольшого количества пикселей, что увеличивает число вертексных шейдеров. Сегодня с этим приходится мириться.
(кликните по картинке для увеличения)
С DirectX 10 разработчики получают в свое распоряжение геометрические шейдеры, что еще больше увеличивает объем работ. С унифицированной архитектурой разработчики получают свободу в создании сцен и могут сфокусировать свое внимание на пиксельных, вершинных и геометрических вычислениях, так как теперь не нужно высчитывать соотношение между числом различных типов шейдеров, как это было в раздельной схеме шейдеров. Теперь разработчики не ограничены ни пикселями, ни вершинами – есть ограничение по вычислительной мощи, свойственной конкретной реализации GPU. Разработчики уже сегодня воочию видят преимущества унифицированной архитектуры в Xbox360 и мы уверены, что разработчики, которые однажды вкусят унифицированную архитектуру, никогда не захотят вернуться в прежним вариантам.
Тони Тамаси (Nvidia): У каждого из подхода есть как преимущества, так и недостатки. Унифицированная модель, конечно же, интересной с точки зрения своей новизны и отличий от привычной модели, а кроме того, такая модель расширяема.
Откровенно говоря, индустрия графических решений добилась больших успехов при «извлечении» мощи из пиксельной/шейдерной архитектуры. Поэтому сейчас соревнование идет за создание принципиально новой – эволюционировавшей и крайне эффективной архитектуры. Первое правило любого нового GPU (прим. graphic processor unit – графический процессор) – быть лучше предыдущего. Любые компромиссы могут увести в сторону от поставленной задачи. Если оглядеть существующие архитектуры современных GPU, можно увидеть серьезные отличия в плане эффективности архитектуры, которые, как правило, были не унифицированными. Можно обнаружить серьезную (почти в 2 раза) разницу в производительности на единицу площади кристалла.
Существует множество примеров архитектур, которые выглядели ново и на бумаге были практически идеальными, но исполнение очень сильно страдало от первого закона GPU, по которому каждое новое поколение должно быть лучше предыдущего; лучше в единицах, которые характеризовали предыдущую архитектуру GPU. Унификация обязательно произойдет, но только после того, как унификация даст повышенную производительность, архитектурную и энергетическую (в смысле потребления электропитания) эффективность.
Extremetech: Графические процессоры – это крайне сложные системы. Количество транзисторов в них достигло 300-400 миллионов. DX10 требует значительных в плане технической реализации изменений. Перевалит ли число транзисторов за полмиллиарда в картах DX10? Усложнят ли требования DX10 производство недорогих видеокарт или производство карт с низким потреблением электропитания, к примеру, для мобильных приложений?
Боб Дребин (ATI): Хотя мы пока не обсуждали технические детали грядущих DX10-совместимых карт, я могу сказать, что ATI разрабатывает чипы, предназначенные для различных сегментов рынка. Такая направленность выражается в наборе функций и производительность каждой серии видеокарт. Вы правы, что новые возможности DirectX 10 должны усложнить существующие графические чипы, но это усложнение может вылиться в прирост производительности. К примеру, новые функции, реализованные в DX10, могут потребовать меньшее количество шейдерных инструкций, необходимых в DirectX 9.
(кликните по картинке для увеличения)
Тони Тамаси (Nvidia): Nvidia усердно трудится над архитектурной эффективностью одновременно на нескольких фронтах – с точки зрения стоимости и параметров электропитания. Это, в первую очередь, вызвано потребностями пользователей, в частности мобильных пользователей. Если вы посмотрите на сегодняшнее поколение GPU и сравните графические решения Nvidia с решениями наших конкурентов, вы увидите, что наши решения обеспечивают большую эффективность вкупе с эффективным дизайном. Мы будем придерживаться такой философии и при переходе на DX10.
Extremetech: Когда мы, наконец-то, увидим первые игры с поддержкой DX10 (такие как Crysis или Flight Simulator X), в чем, по-вашему, будут их основные отличия от DX9-игр? Другими словами, что нам принесет DX10?
Боб Дребин (ATI): Как вы понимаете, я не могу от лица разработчиков игр сказать, когда появятся первые игры. Думаю, что будет логичным сказать, что они появятся не раньше выхода самого DirectX 10 API. Что касается разницы между играми поколения DirectX 9 и DirectX 10, то я подозреваю, что первые игры на базе DirectX 10 будут использовать API для преодоления ограничений, вызванными спецификациями DirectX 9. К примеру, возможности перенаправления, имеющиеся у геометрических шейдеров, позволят ускорить такие игровые вычисления, как физику, и выполнять их непосредственно на GPU.
(кликните по картинке для увеличения)
Тони Тамаси (Nvidia): Сегодня существует множество ограничений, продиктованных DX9. Это делает многие функции API неприменимыми на практике с точки зрения производительность и эффективности. Например, если из-за API или поведения аппаратной реализации было неэффективно рисовать множество стебельков травы, это значило, что разработчику приходилось идти на множество компромиссов, таких как ухудшение качества травы или качества чего-то другого в сцене, потому что прорисовка высококачественной травы требует огромных ресурсов GPU (или, как было раньше, CPU). Поэтому при использовании нового API и архитектуры некоторые вещи, которые ранее были нецелесообразны с точки зрения производительности, перешли в разряд весьма практичных, что выльется в более высокое качество изображений и более реалистичные сцены.
(кликните по картинке для увеличения)
Что касается скорости, в DX10 есть много нового, что позволит создавать более эффективные устройства. Вещи типа геометрических шейдеров позволят пересмотреть существующие алгоритмы, чтобы возложить графические вычисления непосредственно на графический процессор, а иные функции позволят делать с GPU такое, что ранее было просто невозможно. Как результат, мы получим улучшенное качество изображений и по моим соображениям – более богатые, более детальные и более живые миры. DX10 принесет закономерное улучшение качества графики, причем как с точки зрения функциональности API (благодаря геометрическим шейдерам), так и с точки зрения определенности поведения функций типа фильтрации текстур, антиальясинга и прозрачности, которые несомненно станут достоинствами первого поколения DX10-игр.
Extremetech: Что можно сказать о том, как будут выглядеть будущее игры?
Боб Дребин (ATI): Благодаря тому, что основные вычисления могут проводится графическим процессором, мы, наверняка, увидим более динамичные и насыщенные сцены. Поэтому игры будут более приятны глазу, потому как в сценах будет присутствовать множество сложных объектов, более детальное окружение. Визуальная сложность, совмещенная с физикой, позволит создать небывало реальные окружения, как вода, ветер, качающий деревья и траву – они станут более интерактивными. Как результат – более реальная и приятная игровая атмосфера.
(кликните по картинке для увеличения)
Тони Тамаси (Nvidia): Используйте прошлый опыт для предсказания будущего. Для этого можно взять первое поколение DX9-игр, к примеру, Half Life 2, которая выглядела достаточно качественно для своего времени, и сравнить его со вторым поколением DX9-игр, к примеру, Unreal Engine 3 – разница заметна. В первом случае использовались десятки шейдерных инструкций, во втором - сотни. Усложнение шейдерных инструкций может выражаться в действительно поражающих улучшениях. Предполагаю, что ситуация повторится с играми для DX10, в частности благодаря появлению геометрических шейдеров.
(кликните по картинке для увеличения)
Даже не сомневаюсь, что возросшая сложность DX10 предстанет игрокам в высокой детализации персонажей и реальной динамичности миров. Миры, физические аналогичные реальному, где вода действительно течет и реагирует на персонажей, которые взаимодействуют с ней; пуля, пролетающая сквозь туман и оставляющая за собой след; снег, который кружится и реагирует на направление ветра.
Extremetech: Есть ли возможности, которые вы хотели, но не увидели в DX10? Чего вы ждете от будущих ревизий DirectX?
Боб Дребин (ATI): Нам очень понравилась функция под названием MemExport, которая используется в XBox360, но вырезана из DirectX 10. MemExport – это функция распределения памяти, которая позволяет шейдеру записывать информацию в произвольные ячейки памяти. Это очень помогает в задачах типа сортировки или построения гистограмм.
Тони Тамаси (Nvidia): Всегда есть что-то, что хочется добавить, причем это касается не только индустрии компьютерной графики. Могу сказать, что мы все еще далеко от идеального набора функций. Среди функций, к которым разработчики продолжают чувствовать устойчивый интерес, более интеллектуальные способы составления мозаики и реализации прозрачности.
Extremetech: Графические вычисления общего назначения, включая (но не ограничиваясь) физику и обработку видео, приобретают новый смысл. Что смогут предложить DX10-карты и DX10 API для создания быстрых и надежных GP-GPU приложений?
Боб Дребин (ATI): DirectX 10 увеличивает точность и совместимость шейдерных программ, позволяя более широкому диапазону кодов выполняться на GPU. Кроме того, есть новая функция перенаправления, которая позволяет обрабатывать вектора в виде векторов и не требует их конвертации в пиксели. Это, в свою очередь, позволяет возложить основные вычисления на GPU, освободив ресурсы центрального процессора.
Тони Тамаси (Nvidia): Перенаправление вычислений является огромным преимуществом для программирования потока данных с GPU, собственно как и целочисленные операции. Геометрические шейдеры позволяют миграцию множества функций, которые ранее использовались в процессорно-ориентированной модели, на GPU, причем это касается как графических, так и неграфических алгоритмов. Конечно же, для GP-GPU является огромным преимуществом и заметно увеличенная вычислительная мощь при операциях с плавающей точкой.
Extremetech: Может, лучше исключить функции GP-GPU из графического API и просто позволить разработчикам самим программировать GPU?
Боб Дребин (ATI): Некоторые GP-GPU приложения могут выиграть от низкоуровневого доступа к GPU, в то время как другие могут выиграть только от успехов DirectX или OpenGL. Компания ATI желает приблизить программистов к железу – позволить им низкоуровневый доступ к своим GPU.
Тони Тамаси (Nvidia): И да, и нет. Графические API создавались с целью позволить разработчикам извлечь максимальную мощь из графических процессоров. Поэтому графические API быстры по своей природе. Тем не менее, графические API неудобны для решения неграфических проблем, так что разработчики сталкивались с постоянной битвой всеобщей применимости против производительности. Кроме того, вызов программированию GP-GPU был вызван не столько API (несмотря на то, что это является частью самого API), но скорее алгоритмами «параллелизации» вычислений. Программы, созданные для последовательного типа вычислений современных CPU, оптимизированы именно для этого типа вычислений. Со своей стороны разработчики не имели практического опыта создания и оптимизации приложений для высокопараллельной архитектуры. По этой причине была проделана фантастическая работа по разработке высокоуровневых языков программирования, созданных для разработки неграфических приложений GPU. Это также сделало программирование GPU более доступным. Хорошим примером является Brooke, созданный в Стэнфорде. И хотя этот язык заметно упростил программирование GP-GPU, некоторые из его приложений и абстракций требуют огромной производительности систем.
Хороший интерфейс GP-GPU может довольно таки заметно отличаться от графического API и может скрыть некоторые специфичные стороны программирования GPU от программистов, реализующих неграфические приложения. Но в итоге снова возникнет баланс между программированием широкого спектра приложений на GPU и получением максимальной производительности от операций с плавающей точкой. То, как должен выглядеть такой интерфейс, является объектом исследования множества организаций, к примеру Университета Северной Каролины, Стэнфорда, подразделения Microsoft Research, Университета Ватерлоо и многих других.
Extremetech: Несколько огорчает, что Vista появится только в начале будущего года. Это, по-моему, также задержит выпуск DX10-совместимых карт, так? Обеспечат ли первые DX10-карты высокую производительность в DX9-играх?
Боб Дребин (ATI): ATI не привязывает выход своих DirectX10-продуктов к финальному релизу Vista. И хотя, вероятнее всего, DirectX 10-совместимые игры появятся сразу же после выхода Vista, наши видеокарты с поддержкой DirectX10, в первую очередь, созданы для того, чтобы обеспечить максимальную производительность в DirectX 9-играх, работающих на компьютерах под управлением Windows XP.
Тони Тамаси (Nvidia): Да, безусловно. Каждое новое поколение графических процессоров должно быть лучше предыдущих. История изобилует различными архитектурами и компаниями, которые занимались разработкой графических процессоров, но которые не были успешны в работе с существующими приложениями и API.
Extremetech: Есть ли что-то, что вы хотели бы добавить? Ну не знаю, какое-то сообщение о DX10 (или готовящихся DX10-картах) для наших читателей.
Боб Дребин (ATI): Я, как и любой геймер, безумно рад появлению DirectX 10. Да, это дает новую свободу разработчикам, но ведь появление нового DirectX 10 API и конкретных аппаратных реализаций DirectX 10 означает новую эру в компьютерной графике. Мы являемся свидетелями перехода от игровой визуализации к игровым вычислениям. Унифицированные возможности шейдеров в API вкупе с нашей унифицированной шейдерной архитектурой позволит разработчикам извлечь максимальную пользу из компьютерных ресурсов так, чтобы представить пользователям невиданное ранее качество. Сложно быть настоящим геймером и не восхищаться DX10.
Тони Тамаси (Nvidia): Мы поражены возможностями, предложенными DX10. Это откроет разработчикам новые горизонты, заметно упростив работу. Стоит сказать, что Nvidia работает над реализацией DX10 уже в течение нескольких лет. Я же со своей стороны надеюсь, что с выходом DX10 мы станем лидерами, как это было после появления третьей версией шейдеров.
В первой части статьи Пользователи и DirectX 10, мы говорили о новой графическом API с Дэвидом Блайсом и Крисом Донахью из компании Microsoft. Мы обсудили новые возможности API, какими будут игры поколения DX10, почему данный API предназначен исключительно для Vista и многое другое…
Во второй и третьей частях мы побеседовали с Бобом Дребином, техническим директором компании ATI и Тони Тамаси, вице-президентом Nvidia по техническому маркетингу, чтобы определить, что новый DirectX значит для производителей графических карт. Они рассказали нам, чего ожидать от нового поколения GPU и что это будет значить для геймеров.
Сегодня мы перейдем к последней части головоломки – разработчикам игр. Без поддержки со стороны сообщества разработчиков игр, DirectX 10 никогда не проявит своих реальных возможностей. Мы встречались с несколькими разработчиками, создающими первые игры, которые будут созданы на основе DirectX 10, с целью определить, насколько отличными будут DX10-совместимые игры и что новый API значит для них.
Тайлер Томпсон – технологический директор компании Flagship Studios (основана Биллом Ропером, одним из бывших руководителей Blizzard), в которой трудятся над созданием онлайновой игрой в стиле action/RPG - Hellgate: London. Судя по скриншотам, игра удастся на славу. Но какой будет доля DX10 в успехе новой игры?
ExtremeTech: Что стало возможным в Hellgate: London благодаря использованию DX10, что раньше было невозможно даже на мощной DX9-карте?
Томпсон: DirectX 10 меняет правила игры. Разработчикам необходимо переосмыслить практически каждую часть своих графических движков, ну конечно же, при условии, что они вообще намерены иметь дело с видеокартами поколения DirectX 10 (прим. переводчика – а куда они денутся?). Что мы можем сделать в такой ситуации? У нас есть пара специфичных идей о том, как можно заставить игру прорисовываться быстрее, но у нас также есть некоторые мысли насчет того, как использовать геометрические шейдеры для создания эффектов, которые казались нереальными на картах поколения DirectX 9.
(кликните по картинке для увеличения)
ExtremeTech: Создается впечатление, что ни у кого из производителей нет рабочих образцов нового DX10-совместимых видеокарт. Используете ли вы в разработке DX10-игр инструменты типа растеризатора? Если да, тогда что конкретно вы используете для разработки под DX10?
Томпсон: Пока мы находится в самом начале интегрирования DirectX 10 в наш графический движок. Мы работаем с Ref и будем продолжать до того, как появится рабочие образцы нового оборудования. Да, Ref позволяет делать нам некоторые вещи, но он не позволяет нам узнать, какие из наших бредовых идей осуществимы, а какие нет.
(кликните по картинке для увеличения)
ExtremeTech: Hellgate – это онлайн-игра, в которой могут принимать участие множество игроков. Таким образом, это налагает определенные условия, так? При использовании DX10 вы не можете, например, удвоить максимальное количество игроков, присутствующих в сцене, потому что то количество должно согласоваться с количеством персонажей у игроков, использующих DX9. Каким образом вы планируете решить проблему?
Томпсон: Да, Hellgate: London, как и большинство современных игр, имеет несколько режимов игры: single-player и multiplayer. Так как мы будем мириться с фактом, что пользователи, использующие действительно старые карты, играют бок о бок с теми, кто использует DX10-карту? Тот, кто использует старую видеокарту, будет видеть меньше, на меньшем разрешении и с несколько худшими эффектами освещения. На старых картах мы попытаемся отобразить столько, сколько это позволит сама карта, но в любом случае придется срезать некоторые углы, использовать персонажей с меньшим уровнем детализации. Мы не хотим давать преимущества в геймплее владельцам исключительно современных видеокарт, хотя на современных видеокартах сама игра будет радикально отличаться от того, что мы привыкли видеть в DX9-играх.
(кликните по картинке для увеличения)
ExtremeTech: Какие возможности DX10 восхищают вас больше всего и почему? Столкнулись ли вы с возможностями, которые нереализуемы конкретно в Hellgate?
Томпсон: Без реальных графических решений очень сложно оценить, какие из имеющихся функций DX10 окажут серьезное влияние на производительность. Геометрические шейдеры потенциально очень привлекательны. Становится возможным запись в буфер из любого шейдера, а затем прочитать их оттуда и записать в другой шейдер. Массивы текстур обеспечат больший предел нашим счетчикам пакетов, что теоретически приведет к увеличению частоты кадров. С этой точки зрения DX10 похож на красивую игрушку на витрине магазина: очень хочется ее получить, но никогда не знаешь, что эта игрушка умеет.
ExtremeTech: Каким образом вы реализуете поддержку DX10 в Hellgate: будет ли поддержка изначальной или позднее добавлена с помощью патча?
Томпсон: В Hellgate: London поддержка DX10 будет реализована изначально.
(кликните по картинке для увеличения)
ExtremeTech: Как по-вашему, должен ли волновать геймеров вопрос DX10 и почему им стоить тратить свои кровные на новые карты DX10, когда те появятся?
Томпсон: Новые карты на базе DirectX10 несомненно являются технологическим шагом вперед по сравнению с предыдущим поколением карт. Не только из-за увеличения числа полигонов и увеличения скорости заполнения пикселей – они дают разработчикам много, много других возможностей. Думаю, что в большинстве игр разница будет видна невооруженным глазом.
Севат Йерли является президентом компании Crytek, чье дебютное творение, Far Cry, заслуженно считается одной из самых технически совершенных игр своего времени. Новое творение, которое будет издано компанией Electronic Arts - Crysis – уже сегодня показывает чудеса графики, причем, по словам разработчиков, эти «чудеса» созданы исключительно с помощью DirectX 9. Тогда чего нам ждать от DX10-версии нашумевшей Crysis?
(кликните по картинке для увеличения)
ExtremeTech: Crysis уже сегодня показывает чудеса графики. Что стало возможным в Crysis благодаря использованию DX10, что раньше было невозможно даже на мощной DX9-карте?
Йерли: После появления второй версии шейдеров для разработчиков практически все стало возможным, но появился вопрос грамотного использования ресурсов компьютера – данная версия требовала недюжей производительности графического процессора. В некоторых ситуациях эта проблема, безусловно, решаема (к примеру, в технических демонстрациях), но не в реальном игровом мире. Анонсированные возможности DX10-устройств дали нам повод надеяться на решение проблемы.
ExtremeTech: Создается впечатление, что ни у кого из производителей нет рабочих образцов нового DX10-совместимых видеокарт. Делаете ли вы большую часть работы с помощью растеризатора? Или просто создаете более сложные шейдеры в DX9? Или используете инструмент типа "Render to spec" в приложениях 3ds Max и Maya? Какие методы вы используете на данном этапе программирования?
Йерли: Если нет рабочих образцов, приходится пользоваться программной эмуляцией, но из-за известной «производительности» ее не так приятно использовать. С другой стороны, использование первых альфа-версий устройств (кстати сказать, весьма некачественных и сбойных) тоже малоприятно. Мы не можем разрабатывать техники отдельно для DX9 и DX10, поэтому мы создаем, тестируем уровень графики с DX9, а затем скорректируем код под DX10. К сожалению, я не могу рассказать о процессе разработки DX10, потому как подписал соглашение о неразглашении информации.
(кликните по картинке для увеличения)
ExtremeTech: Каким образом вы реализуете поддержку DX10 в Crysis? Надеетесь ли вы реализовать ее изначально (независимо от того, выйдет ли до этого Vista или нет)? Или выпустить сначала игру, а затем DX10-патч? Для Far Cry вы предложили графические обновления в виде патчей, но пользователи слишком долго их ждали.
Йерли: Мы планируем выпустить Crysis с полной поддержкой DX10.
ExtremeTech: К тому времени, как появятся продукты с поддержкой DX10, ваши игры будут практически завершены. Очевидно, что в ваших играх поначалу удастся реализовать не все возможности DX10. Есть ли у вас планы выпустить, к примеру, Crysisexpansion pack или нам придется ждать будущих игр от Crytek, в которых возможности DX10 будут реализованы по максимуму?
Йерли: Crysis будет обладать функциями, которые эксклюзивны в DX10. Тем не менее, у нас в планах разработка более элегантных решений – у нас есть некоторые соображения на этот счет, но пока их невозможно реализовать с помощью DX9. После выхода Crysis мы намерены выпустить ряд патчей, которые помогут реализовать максимальное количество возможностей DX10, но это при условии, если новые графические решения смогут переключить фокус с DX9 на DX10. Возможно, для этого потребуется около года.
(кликните по картинке для увеличения)
ExtremeTech: DX10 привнесет много новых функций и изменений в API (и системные требования к компьютеру)—это может фундаментально изменить способ создания игр. Какие из функции наиболее значимы для вас?
Йерли: Геометрические шейдеры плюс массивы текстур могут значительно упростить некоторые операции типа render-to-texture. Это, в свою очередь, ускорит процесс расчета теней, отражений и преломлений.
ExtremeTech: Как по-вашему, должен ли волновать геймеров вопрос DX10 и почему им стоить тратить свои кровные на новые карты DX10, когда те появятся?
Йерли: Мы приложим все свои усилия на то, чтобы сделать Crysis идеальным шутером и, чтобы на момент появления первых DX10-устройств, Crysis обеспечил максимальный уровень качества.
Карл Эдлунд является менеджером отдела программирование в ACES Studio, отделением Microsoft Games, занимающемся созданием известной серии Flight Simulator. Flight Simulator X должна появится примерно в тоже время, что и новая ОС Windows Vista, поэтому игра должна стать чем-то вроде демонстрацией возможностей новой ОС. Кстати, DirectX 10 выйдет в составе этой ОС.
(кликните по картинке для увеличения)
ExtremeTech: Что стало возможным в Flight Simulator X благодаря использованию DX10, что раньше было невозможно даже на мощной DX9-карте?
Эдлунд: DirectX10 не только позволяет получить более совершенную графику и высокую производительность, но DX10, кроме того, является частью Unified Driver Model (универсальной модели драйверов), Memory Manager (диспетчера памяти) и Scheduler (планировщика задач), входящих в состав Windows Vista. Игры поколения DX10 смогут обеспечить открытие нескольких 3D-окон при производительности, сравнимой с таковой при открытии одного DX9-окна. Сдвиг в сторону задач графических вычислений позволяет использовать CPU для других задач, которые обеспечивают геймплей, среди которых улучшение AI (artificial intelligence – искусственный интеллект) и более реалистичная физика в игровых мирах.
ExtremeTech: Создается впечатление, что ни у кого из производителей нет рабочих образцов нового DX10-совместимых видеокарт. Делаете ли вы большую часть работы с помощью растеризатора? Или просто создаете более сложные шейдеры в DX9? Или используете инструмент типа "Render to spec" в приложениях 3ds Max и Maya? Какие методы вы используете на данном этапе программирования?
Эдлунд: С этой точки зрения мы выверяем, что абстрактный слой между игрой и графикой чист и что мы можем изменить конвейер DirectX 10 с минимальным влиянием на движок самой игры. Мы значительно поработали с DirectX 10 SDK, командой разработчиков DirectX 10 и производителями графических решений, чтобы в итоге создать детальный план того, преимущества каких функций мы будем реализовывать и каким образом мы сможем интегрировать новый код в графический конвейер.
(кликните по картинке для увеличения)
ExtremeTech: Недавно появилась информация, что Flight Simulator X выйдет с изначальной поддержкой DX9, а затем появится патч, в котором будет реализована поддержка DX10. Насколько быстро после январского релиза Vista появится такой патч?
Эдлунд: Да, таков наш план. Сейчас мы полируем и настраиваем наш DX9-конвейер, чтобы обеспечить максимально детализированную и гладкую графику. Когда появятся решения на базе DirectX 10, мы займемся портированием наших реализаций DirectX 10. Мы все еще надеемся, что это произойдет одновременно с выходом Windows Vista.
ExtremeTech: DX10 появилась слишком поздно для вашего проекта и остается не так много возможностей реализовать поддержку API. Обсуждали ли вы возможные варианты использования DX10 в следующих версиях игры?
Эдлунд: Интеграция DirectX 10 в наши приложения обеспечит создание более богатых и детализованных миров, которые будут визуализироваться с аналогичной частотой, что и сегодняшние – менее детальные. В будущих релизах мы продолжим увеличение уровня реализма детализации миров и объектов в них, динамичных теней, погодных условий и расширим возможности участия в физических процессах самого пользователя.
(кликните по картинке для увеличения)
ExtremeTech: Как по-вашему, должен ли волновать геймеров вопрос DX10 и почему им стоить тратить свои кровные на новые карты DX10, когда те появятся?
Эдлунд: Производительность и растущая визуальная детализация должны основной причиной покупки новых видеокарт. Разработчикам же будет дана большая свобода, чем при использовании возможностей DirectX 9, будет гораздо проще создать более реалистичные окружения и объекты – не только демонстрации, а реальные игровые объекты. Поддержка новой архитектуры драйверов завершит дни синих экранов и сбоев, прерывающих вашу игру. Освобождение ресурсов центрального процессора позволит повысить уровень интеллекта игровых персонажей, улучшить физику, обеспечить взаимодействие пользователя и игрового мира, вывести реализм на новый уровень, недоступный в прежних поколениях игр.
Гот Годагер является руководителем разработки Age of Conan. Игра представляет собой онлайновую игру в жанре action/RPG, которая является часть миров воинов и магов, созданных Роберт Ховардом. Одни из первых DX9-скриншотов удивили многих, но разработчики обещают бОльшее после выхода Windows Vista и DX10 в ее составе. Годагер рассказал нам как и почему.
ExtremeTech: Что стало возможным в Age of Conan благодаря использованию DX10, что раньше было невозможно даже на мощной DX9-карте?
Годагер: Из-за иной архитектуры DX10 я думаю, что основным отличием явится богатство миров. Будет больше объектов, больше персонажей, больше частиц, дистанции просмотра станут протяженнее, будет больше травы и листьев.
ExtremeTech: Создается впечатление, что ни у кого из производителей нет рабочих образцов нового DX10-совместимых видеокарт. Делаете ли вы большую часть работы с помощью растеризатора?
Годагер: Да, это правда. В основном мы пользуемся растеризатором. Думаю, что ближе к концу осени должны появится рабочие образцы DX10-устройств. Наш собственный движок «встроен» в 3ds Max, поэтому именно это приложение наиболее широко используется в нашей работе. Как только у нас в наличии будут образцы графических решений, так сразу же опробуем наш движок, а затем и оптимизируем его. Но пока нам достаточно и растеризатора, который, кстати говоря, оказался на удивление шустрым.
ExtremeTech: Не меняет ли тот факт, что Age of Conan является онлайн-игрой, область приложения DX10? Вам не удастся кардинально изменить геймплей при помощи DX10, потому что в игру, скорей всего, будут играть как владельцы DX10-карт, так и DX9-карт. К примеру, вам не удастся реализовать в одной сцене огромные толпы, больше поддерживаемых картами DX9, ведь так?
Годагер: Да, существует ограничение, что игра должна быть динамичной в зависимости от имеющегося у геймера оборудования. Даже среди графических карт поколения DX10 будет существовать огромная разница в производительности и пользователям придется мириться с тем визуальным представлением, на которое способна конкретная модель карты. Если пользователь сократит видимую дистанцию в игре, то его более «высокопроизводительные» соперники, конечно же, будят видеть дальше. Опять же, изменения произойдут только в производительности, но не в геймплее.
ExtremeTech: Вы планируете выпустить игру еще в 2006 году, а DX10 появится вместе с Vista в январе 2007 года (если ее снова не отложат). Планируете ли вы обеспечить в игре изначальную поддержку DX10 так, чтобы пользователи, решившие обновить свою ОС до Vista и приобрести DX10-совместимую видеокарту, смогли получить все преимущества нового API? Или поддержка DX10 будет обеспечена патчем?
Годагер: Уже сегодня игра обладает частичной поддержкой DX10. Думаю, что окончательную поддержку игра получит примерно в срок выхода Vista: поддержка DX10 до того, как появилась платформа для апробации данного API, кажется весьма рискованным занятием. По этой причине мы несколько повременим до официального релиза Vista, а затем выпустим патч. Так как мы позиционируем Age of Conan в качестве демонстрации возможностей Vista, это тоже является значимым фактором.
ExtremeTech: Считает ли ваша команда, что использовать DX10 проще, чем DX9?
Годагер: Многие операции сильно упрощаются с появлением DX10. Теперь мы можем снять некоторые задачи с CPU и передать их GPU; геометрические шейдеры также помогут сохранить полосу пропускания шины. И вообще, DX10 – это более эффективный API. Все это, добавленное к движку, даст разработчикам больше свободы в тех вещах, которые их занимают. Мы крайне рады, что являемся передовиками разработки игр поколения DX10 и надеемся, что это позволит нам обеспечить более богатое, более полное погружение в игровой мир.
ExtremeTech: Как по-вашему, должен ли волновать геймеров вопрос DX10 и почему им стоить тратить свои кровные на новые карты DX10, когда те появятся?
Годагер: DX10 – более, чем просто последовательное развитие платформы DX. Мое личное мнение, что Microsoft многое узнала при разработке Xbox и стала больше понимать нужды игр и геймеров. Смещение фокуса на простоту и эффективность плюс появление новых функций являются неоспоримым преимуществом для геймеров.
Ссылки на оригинальные статьи.
http://www.thevista.ru/
Пользователи и DirectX 10. Часть первая: Microsoft
Пользователи и DirectX 10. Часть вторая: ATI Боб Дребин
Пользователи и DirectX 10. Часть третья: Nvidia Тони Тамаси
Пользователи и DirectX 10. Часть четвертая: Разработчики игр
http://www.extremetech.com/
The People Behind DirectX 10—Part 1: Microsoft
The People Behind DirectX 10: Part 2 – ATI's Bob Drebin
The People Behind DirectX 10: Part 3—Nvidia's Tony Tamasi
The People Behind DirectX 10: Part 4—Game Developers
реклама
Лента материалов
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Сейчас обсуждают