This page has been robot translated, sorry for typos if any. Original content here.

DirectX - совокупность технологий, разработанных корпорацией Microsoft с целью превратить Windows в оптимальную платформу для мультимедийных приложений и компьютерных игр с полноцветной графикой, видео, трехмерной анимацией и объемным звуком. Технология DirectX станет составной частью будущих версий ОС корпорации Microsoft - Windows 98 и Windows NT 5.0, а также браузера Internet Explorer 4.0. Уже сегодня DirectX дает возможность разработчикам игровых программ и приложений мультимедиа создавать продукты, не привязанные жестко к тем или иным аппаратным средствам, пользователи же могут приобретать игры и программы мультимедиа для Windows, не беспокоясь о их несовместимости с аппаратурой своего компьютера.

До появления DirectX практически все игры для компьютеров PC реализовывались на платформе MS-DOS. Каждую программу разработчикам приходилось комплектовать множеством видео- и аудиодрайверов (с тем, чтобы охватить как можно больше установленных у пользователей аппаратных компонентов) и при этом применять расширители DOS для преодоления барьера в 640 Кбайт. Среда Windows, упростившая взаимодействие пользователей с ПК благодаря удобному графическому интерфейсу, не облегчила жизнь программистов: в Windows графические программы функционировали слишком медленно. Как ни пародоксально это звучит, Windows, являясь графической средой, не была приспособлена для выполнения быстрых графических операций.

Пытаясь поправить ситуацию, Microsoft разработала для создателей компьютерных игр и графических приложений технологию WinG, которая обеспечивала более быстрое выполнение графических операций, чем интерфейс GDI (Graphics Device Interface) Windows (см. врезку "WinG или DirectDraw?"). В то же время корпорация не ограничивалась только решением проблем производительности. Разработчики стремились к тому, чтобы программисты могли создавать игровые и прикладные программы, не задумываясь о том, какие аппаратные компоненты имеются у конкретного пользователя. Сама операционная среда должна была содержать все необходимые драйверы и взять на себя взаимодействие программы с аппаратурой ПК, такой как аудио-, видеоплаты и принтеры.

Между тем даже после выхода в свет ОС Windows 95 платформа Microsoft по-прежнему не соответствовала заявленным обещаниям. Только сегодня с появлением усовершенствованных технологий, получивших обобщенное название DirectX, положение начинает меняться.

Технология DirectX, теперь уже версии 5.0 (версия 6.0 проходит бета-тестирование), сменившая DirectX 3.0, позволяет программистам создавать в Windows 95 (и в будущих ОС Windows 98 и NT 5.0) приложения со встроенным доступом к аппаратным средствам. При этом им не нужно знать специфику аппаратной конфигурации определенного компьютера - явного программирования конкретной платы не требуется. Фактически DirectX выполняет роль промежуточного звена между программой и драйвером, преобразуя обобщенные команды в команды, специфические для того или иного устройства.

Если первоначально DirectX была ориентирована на превращение Windows 95 в полноценную платформу для компьютерных игр, всегда стимулировавших развитие аппаратных средств ПК, то по мере проникновения в массовые приложения технологий мультимедиа комплект программных интерфейсов DirectX становится важной частью операционной системы. Напомним, что в браузере Internet Explorer 4.0 применяется пять компонентов DirectX 5.0: DirectDraw, DirectSound, Direct3D, DirectShow и DirectAnimation.

Технология DirectX 6.0 станет неотъемлемой частью новых ОС Microsoft - Windows 98 и Windows NT 5.0, что позволит ей окончательно завоевать рынок массовых приложений.

Базовый слой DirectX

Базовый слой (DirectX Foundation) предоставляет разработчикам единый набор API-интерфейсов, обеспечивающих прямой доступ к аппаратным средствам - ускорителям 3D-графики, звуковым платам. Эти API выполняют так называемые функции нижнего уровня, в частности управление устройствами ввода (такими, как джойстики, мышь и клавиатура), микшированием и воспроизведением звука. Указанные функции поддерживаются четырьмя компонентами, составляющими DirectX Foundation: DirectDraw, Direct3D, DirectInput и DirectSound.

HAL и HEL

До появления DirectX создателям приложений мультимедиа для платформы Windows приходилось настраивать свои продукты для работы на широком спектре устройств и конфигураций. DirectX Foundation предусматривает так называемый уровень абстрагирования аппаратных средств HAL (Hardware Abstraction Layer). HAL функционирует как промежуточное звено между программным обеспечением и аппаратурой, позволяя разработчикам обращаться к тем или иным компонентам, не зная их марки, модели и других деталей. В результате они получают возможность писать лишь одну версию приложения, взаимодействующую с DirectX.

Кроме того, DirectX Foundation предоставляет в распоряжение разработчиков инструментальные средства для достижения наивысшей производительности. Данный базовый слой определяет возможности аппаратуры компьютера и устанавливает соответствующие параметры приложения. Он обеспечивает также выполнение мультимедиа-приложений, использующих функции, не поддерживаемые в системе на аппаратном уровне. Это достигается за счет уровня HEL (Hardware Emulation Layer), с помощью которого DirectX программно эмулирует функции, не реализуемые самим устройством. Если аппаратное обеспечение не совместимо с запрашиваемым программой сервисом, уровень HEL пытается эмулировать его наилучшим возможным образом. Чаще всего эмулируются средства 3D-графики. Хотя эмуляция и не так эффективна, как аппаратная реализация, зато разработчику не приходится писать несколько версий одной и той же программы.

DirectDraw

Интерфейс DirectDraw предоставляет разработчикам средства более прямого доступа к аппаратным компонентам, чем это возможно в системе Windows 95 с ее виртуальными драйверами устройств, а это в свою очередь приводит к существенному ускорению графических операций. С появлением DirectDraw разработчики стали наконец рассматривать Windows 95 как серьезную платформу для компьютерных игр и других мультимедийных приложений. Многие средства DirectDraw прямо или косвенно применяются в Direct3D.

Именно DirectDraw - единственный компонент DirectX, взаимодействующий с HAL. Использующие DirectDraw приложения взаимодействуют только с DirectDraw и не могут обращаться непосредственно к HAL. Этот интерфейс повышает производительность приложений за счет поддержки функций 2D-графики, быстрого выполнения операций с растровыми изображениями, пересылки битовых блоков (blitting), прозрачного наложения объектов и управления несколькими слоями анимации.

По существу, DirectDraw представляет собой диспетчер видеопамяти. Он позволяет программисту хранить текстуры и манипулировать ими непосредственно в видеопамяти, используя преимущества пересылки блоков, реализованной на аппаратном уровне. Такая пересылка из одной области видеопамяти в другую осуществляется намного быстрее, чем передача из системной памяти в видеопамять (особенно в случае использования 64-разрядных видеоплат). К тому же данные операции выполняются независимо от ЦП. Тем самым процессор освобождается для иной работы. Кроме того, DirectDraw поддерживает другие механизмы аппаратного ускорения, реализуемые видеоплатой, такие как спрайты и Z-буферизация.

DirectDraw реализует интерфейс с видеопамятью, используя четыре объекта: DirectDraw, DirectDrawSurface, DirectDrawPalette и DirectDrawClipper. Объект DirectDraw, плата адаптера дисплея, является основным. Объект DirectDrawSurface представляет видеопамять, куда помещаются отображаемые данные. Обычно DirectDrawSurface используется следующим образом. В памяти создаются два буфера (для смены изображений). Отображаемые фрагменты записываются в первый буфер (а не выводятся на экране непосредственно), а те, что должны отображаться следующими - во второй. Затем происходит переключение буферов - второй буфер становится текущим, и изображение обновляется. Direct3D позволяет выполнять приложение в режиме полного экрана или в окне, а также оперативно настраивать в программе разрешение дисплея.

Объект DirectDrawPalette допускает применение для каждого фрагмента собственной палитры из 256 цветов или использование общих палитр, а DirectDrawClipper позволяет приложениям, выполняемым в окне, работать в обход GDI, уменьшая задержки при выводе графики и предоставляя прозрачный доступ к аппаратуре графических ускорителей.

Direct3D

Компонент Direct3D помогает интегрировать с приложениями Windows 3D-графику. Он применяется для разработки интерактивных приложений трехмерной графики и программ реального времени. Несомненными его достоинствами являются независимость от устройств, общая модель драйверов (гарантирующая поддержку минимального набора средств и возможностей), простота включения в приложения функций трехмерной графики. Созданные с помощью Direct3D прикладные системы могут работать на разных аппаратных платформах, поскольку все средства Direct3D реализуются "поверх" HAL. Кроме того, Direct3D предлагает разработчикам аппаратных средств спецификацию, помогающую создавать платы, изначально поддерживающие различные средства Direct3D.

Одним из наиболее важных качеств Direct3D является прозрачный доступ к графическим ускорителям. Если аппаратная платформа не поддерживает какой-то функции, Direct3D реализует ее эквивалент программным путем. В процессе своего исполнения приложение может определять наличие аппаратных компонентов и использовать их возможности. Кроме того, Direct3D реализует быстрый программно выполняемый рендеринг, для чего применяется полный конвейер рендеринга 3D-графики. При наличии соответствующей аппаратной поддержки часть операций такого рода осуществляется аппаратурой компьютера.

Пользователю средства Direct3D доступны через интерфейсы Retained Mode и Immediate Mode. Retained Mode базируется на Immediate Mode и некоторых средствах DirectDraw. Вместе с HAL эти интерфейсы по сути и образуют Direct3D. Direct3D Retained Mode (интерфейс отображения объектов Direct3D после их группирования) позволяет разработчикам комбинировать мультимедиа-информацию (например, графику и звук) для создания трехмерных сцен и управлять этими сценами в своих приложениях. Для корректного воспроизведения система файлов Direct3D хранит информацию, необходимую для трехмерного рендеринга, включая текстуры, порядок расположения объектов, маршрут анимации и другие детали.

Direct3D Immediate Mode (интерфейс непосредственного отображения объектов Direct3D) реализован на уровне DirectX Foundation и предоставляет разработчикам более прямой доступ к аппаратным средствам. Он обеспечивает повышенную скорость и гибкость, но в этом случае рендеринг сцены и управление ею должны осуществляться самим программистом. Кроме того, Direct3D работает совместно с HEL и реализует программную эмуляцию средств рендеринга 3D-графики, не поддерживаемых аппаратурой. Этот слой тесно интегрирован с DirectDraw HAL и драйверами GDI системы Win32, что помогает унифицировать модель драйверов для ускорения обработки трехмерной графики.

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

Компоненты DirectInput и DirectSound DirectInput реализует поддержку в приложениях таких периферийных устройств управления, как джойстики. Он позволяет разработчикам программировать взаимодействие с этими устройствами, используя уровень HAL или HEL. В то же время DirectInput не ограничивается игровыми контроллерами и реализует интерфейс ввода данных с таких устройств, как графические планшеты.

Компонент DirectSound выполняет роль интерфейса с аппаратурой, предназначенной для воспроизведения звука. Он обеспечивает проигрывание файлов .WAV и позволяет применять буферы разного типа (основные, вспомогательные, статические и потоковые). В основной буфер (используемый в данный момент компьютером) помещаются файлы из вспомогательных буферов (отведенных для каждого файла .WAV). Небольшие файлы для ускорения доступа можно помещать в статические буферы, а более длинные - циклически загружать в потоковые буферы по частям. Кроме того, DirectSound предоставляет микшер, управляющий различными параметрами воспроизведения (от громкости до эффектов объемного звучания, применяемых к вспомогательным буферам).

Мультимедийный слой DirectX

Над базовым уровнем DirectX (DirectX Foundation) расположен мультимедийный слой DirectX Media. Если DirectX Foundation реализует функции нижнего уровня, то DirectX Media предоставляет средства высокого уровня для поддержки анимации, потоков мультимедиа (просмотр и прослушивание видео- и аудиофайлов, загружаемых из Internet), а также интерактивных функций.

DirectX Media, как и DirectX Foundation, состоит из нескольких интегрированных компонентов: DirectShow, DirectModel, DirectAnimation, DirectPlay, Direct3D Retained Mode (иногда в него включают и поддержку VRML). В частности, DirectShow и DirectPlay встроены в последние версии Microsoft Internet Explorer. С помощью набора взаимосвязанных фильтров (взаимодействующих с потоком данных через диспетчер фильтров) DirectShow выполняет функции воспроизведения потоков аудио и видео в различных форматах (MPEG, QuickTime, AVI и WAV). Этот компонент является одним из примеров реализации встраивания в операционную систему тех средств, которые ранее предлагались в качестве интегрируемых модулей и программных дополнений, поставляемых независимыми разработчиками.

Другие компоненты мультимедийного слоя обеспечивают иные функции высокого уровня, каждая из которых помогает разработчикам полностью использовать возможности аппаратных средств мультимедиа. DirectModel реализует рендеринг и взаимодействие с крупными объектами 3D-графики. DirectAnimation позволяет разработчикам комбинировать звук с движением двух- и трехмерных изображений и связывать их с временными и инициируемыми пользователем событиями в целях создания сложных анимаций. Компонент DirectPlay спроектирован в основном для диалоговых игр с участием нескольких партнеров и приложений, в которых используются диалоговые коммуникации между пользователями сети. Он позволяет воспроизв одить мультимедиа при работе в сети, осуществляя обмен информацией о ходе игры и сообщениями между ее участниками. Язык моделирования виртуальной реальности VRML (Virtual Reality Modeling Language) использует DirectX для реализации трехмерных "виртуальных миров" в Web-браузерах, что существенно увеличивает скорость их отображения.

В целом мультимедийный слой DirectX помогает разработчикам решить одну из наиболее сложных задач, возникающих при создании высококачественных игровых программ для Windows и мультимедиа-приложений, - координировать различные типы мультимедийных эффектов. Это делается с помощью набора API-интерфейсов, синхронизирующих разные эффекты в рамках одного приложения. До появления DirectX в подобной ситуации приходилось использовать API-интерфейсы разных производителей (средств видео, аудио или анимации), что затрудняло объединение элементов. Слой DirectX Media помогает разработчикам также синхронизировать воспроизведение мультимедиа, привязывая его элементы к единой шкале времени.

Библиотека компонентов и другие элементы высокого уровня DirectX Foundation и DirectX Media предоставляют разработчикам еще одно важное средство - библиотеку компонентов, которую можно использовать для создания компьютерных игр и мультимедиа-приложений. Такая библиотека упрощает процесс разработки, поскольку позволяет программистам применять большое число стандартных интерфейсов и элементов. Кроме того, реализуемые DirectX Media операции высокого уровня используются в следующем, компонентном слое, состоящем из приложений, построенных на основе базового и мультимедийного слоев. Такими компонентами являются, в частности, ActiveMovie, NetMeeting и NetShow, входящие в состав IE 4, Windows 98 и Windows NT 5.0. DirectX дает возможность разрабатывать целую систему подобных компонентов, количество которых продолжает увеличиваться. Кроме того, компоненты, составляющие DirectX, предоставляют разработчикам гибкую платформу для использования самых современных технологий.

Заключение

Технология DirectX оказалась необходима вследствие открытости платформы PC, которая оснащается все новыми и более сложными мультимедийными периферийными устройствами разных производителей. Хотя при наличии соответствующих видео- и аудиостандартов разработчики могли бы создавать свои программы, ориентируясь непосредственно на аппаратное обеспечение и не пользуясь никакой прослойкой типа DirectX, это противоречило бы заложенному в основу платформы Windows и Windows NT принципу исключения прямого доступа к аппаратным ресурсам (для предотвращения отказов ОС из-за неправильно написанных приложений).

DirectX предоставляет разработчикам новые возможности для творчества: им не нужно беспокоиться о том, какой адаптер дисплея, звуковая плата или процессор ускорения трехмерной графики установлен на ПК пользователя. Поскольку технология DirectX изначально рассчитана на появление усовершенствований в программном и аппаратном обеспечении, разработчики и пользователи могут быть уверены, что их приложения будут оптимально использовать новые аппаратные технологии.

Ориентация DirectX на платформу Windows и полный контроль со стороны Microsoft далеко не у всех вызывают восторг. Однако, несомненно, этот продукт существенно упростит реализацию мультимедиа-приложений под Windows и обеспечит еще более широкое распространение данной платформы.

Как приобрести DirectX Получить в свое распоряжение DirectX можно, став подписчиком программы Microsoft Developer Network или приобретя одну из книг издательства Microsoft Press (таких, как "3D Graphics Programming for Windows 95") с компакт-диском, содержащим программное обеспечение DirectX, или загрузив его с Web-узла Microsoft (www.microsoft.com/directx).

WinG или DirectDraw?

До появления DirectX программисты для создания анимации в среде Windows использовали технологию WinG. Она гарантирует прямой доступ к растровому изображению в системной памяти, что позволяет применять для вывода растровой графики оптимизированные подпрограммы. WinG обеспечивает более высокую производительность, чем интерфейс GDI.

После подготовки сцены посредством WinG растровое изображение помещается в видеопамять и отображается на экране. В отличие от WinG, где для вывода изображения необходимо осуществить обмен между ОЗУ и видеопамятью, в DirectDraw для представления на экране сцена переписывается из одной области видеопамяти в другую, что существенно повышает производительность. Поскольку ресурсы видеопамяти ограничены, в сложных играх или приложениях технологии DirectDraw и WinG могут сосуществовать и использоваться совместно.

Что нового в DirectX 6.0

Недавно представленная бета-версия комплекта программных интерфейсов DirectX 6.0 (который, возможно, будет переименован в DirectX 98) представляет собой шестое поколение API семейства Direct корпорации Microsoft. Новая версия DirectX впервые будет реализована в ОС Windows 98 и NT 5.0. Появившиеся в ней средства ориентированы в основном на подготовку мультимедиа-презентаций и расширенную поддержку компьютерных игр. В DirectX 6.0 усовершенствованы API-интерфейсы Direct3D (для поддержки плат - ускорителей трехмерной графики, таких как ViRGE производства S3 и Permedia2 от 3Dlabs). Новый набор API - DirectMusic обеспечивает доступ из Windows-приложений к MIDI-файлам и другим форматам звучания музыкальных инструментов. В Direct3D включен более совершенный программный растеризатор, реализованы &# 1087;оддержка уплотненных форматов текстур, буферов шаблонов, а также многотекстурные эффекты, управление кэшированием текстур, экструзия, оптимизация DMA-доступа. Повышена производительность операций с многоугольниками. Предусматривается также усовершенствованная поддержка технологии DVD в компоненте DirectShow.

В следующих версиях Microsoft планирует повысить точность рендеринга, усовершенствовать рельефные преобразования и операции с трехмерной средой, добавить поддержку принтеров, которая важна для бизнес-приложений.

DirectX и OpenGL

OpenGL, некогда разработанный компанией Silicon Graphics, реализует интерфейс трехмерной графики, в основном в приложениях моделирования и рендеринга. Интерфейс OpenGL будет включен в Windows 98, Windows NT 5.0 и уже доступен в существующих версиях - Windows NT 4.0/3.51 и Windows 95 OSR2. В архитектуре Windows 98/NT 5.0 он находится на более высоком уровне, чем DirectX, и использует DirectX для оптимальной поддержки аппаратных средств. Функционально OpenGL аналогичен такому компоненту DirectX, как Direct3D, однако некоторые аналитики считают, что в OpenGL более продуманная архитектура. Microsoft продублировала в некоторых компонентах DirectX многие функции OpenGL. Разработчики не вполне понимают, для чего это нужно, но, по утверждениям Microsoft, Direct3D является важным дополнительным звеном между ПО и аппаратурой, обеспечивая со&# 1074;местимость с широким спектром устройств отображения.

Компоненты DirectX

DirectX - набор библиотек и интерфейсов для разработки приложений мультимедиа и компьютерных игр для Windows 95 и Windows NT, включающий пять базовых API-интерфейсов: DirectDraw, Direct3D, DirectSound, DirectInput и DirectPlay.

DirectDraw обеспечивает прямой побитовый доступ к видеопамяти, позволяет хранить фрагменты изображения непосредственно в ней, быстро выполнять перемещение битовых блоков и переключение страниц экранной памяти. Применяется для выполнения операций 2D-графики и используется прямо или косвенно компонентом Direct3D.

Direct3D - подсистема рендеринга трехмерной графики, предоставляющая API-интерфейс нижнего уровня с базовыми функциями рендеринга (Immediate Mode) и высокоуровневый API-интерфейс для поддержки сложных операций визуализации (Retained Mode).

DirectSound реализует аппаратно-независимый интерфейс для воспроизведения звука и позволяет приложениям в полной мере использовать возможности аудиоаппаратуры компьютера. Выполняет микширование и некоторые базовые операции, такие как управление громкостью и частотными характеристиками.

DirectInput фактически является частью Windows 95 и обеспечивает аппаратно-независимую систему ввода, реализуя интерфейс с существующими устройствами, в основном контроллерами игр, клавиатурой, мышью, джойстиками и другими средствами управления. Поддерживает до 16 джойстиков, 32 кнопок и манипуляторов с шестью степенями свободы.

DirectPlay позволяет создавать игровые программы, рассчитанные на несколько участников, компьютеры которых взаимодействуют через модем, кабель, локальные или другие сети (включая Internet). Во всех случаях используется один и тот же интерфейс, реализующий независимый протокол коммуникаций.

Пятая версия DirectX была дополнена компонентами DirectShow, DirectAnimation и DirectModel (для управления анимацией, видео, графикой и другими элементами интерактивного мультимедиа), а в шестой появится компонент DirectMusic.

Какую версию DirectX вы используете

Чтобы определить, какая версия DirectX установлена на вашем компьютере с ОС Windows 95, выполните следующие шаги:

Щелкните по кнопке Start (Пуск), выберите Find (Поиск) и Files (Файлы). В поле Named появившегося диалогового окна укажите Draw.dll, а в поле Look In наберите C: (или тот диск, где установлена система). Затем щелкните кнопку Find Now (Найти).

В результате поиска должен быть найден единственный файл Ddraw.dll (обычно он находится в папке C:WINDOWSSYSTEM). Если такой файл не обнаружен, то, вероятно, ПО DirectX в вашей системе не установлено.

Щелкните на файле Ddraw.dll правой кнопкой мыши и выберите в меню пункт Properties (Свойства). Перейдите на вкладку Version (Версия).

А теперь обратите внимание на номер версии: 4.02.0095 означает версию 1; 4.03.00.1096 - версию 2; 4.04.00.0068 - версию 3 или 3a, а любые другие значения указывают на то, что в системе инсталлирована пятая версия DirectX.

Информацию об обновлении DirectX можно найти на Web-узле корпорации Microsoft (www.microsoft.com/directx).

DirectDraw: что нужно для программирования?

В интерфейсе DirectX реализованы принципы модели COM (Component Object Model), что позволяет оформлять необходимые функции в виде компонентов или объектов. Значительное число API-интерфейсов DirectX представляет собой набор OLE-объектов. Все функции, поддерживаемые COM-объектом, можно использовать в качестве интерфейса при взаимодействии с этим объектом. Такой интерфейс представляет собой просто группу родственных функций, используемых для доступа к различным методам объекта. Применение COM-объектов в DLL-библиотеках дает ряд преимуществ перед экспортом обычных API-интерфейсов. Использовать указанные COM-объекты в приложении C++ или Object Pascal не труднее, чем любой другой API-интерфейс. Заголовочный файл DirectDraw описывает классы C++ &# 1076;ля различных объектов DirectX. Экземпляры этих классов создаются путем вызова соответствующих функций create. Естественно, создание Windows-приложений, использующих DirectX, требует навыков работы с инструментарием SDK или MFC.

Что же нужно для компиляции и компоновки программы, использующей DirectX? Прежде всего - комплект DirectX SDK. Он поставляется вместе со справочным файлом и полезными примерами программ. Кроме того, в системе должна быть установлена библиотека DDRAW.DLL. Для создания или импорта такой библиотеки можно воспользоваться утилитой IMPLIB.EXE. Поскольку DirectX представляет собой 32-разрядную технологию, необходим компилятор, способный генерировать приложения Win32 (такой, как Borland C++ 4.52 или C++ 5.0). Для выполнения программы в системе должны быть инсталлированы драйверы DirectX.

Рендеринг в Direct3D

Компонент Direct3D выполняет рендеринг 3D-графики с помощью модулей трансформации, просчета освещенности и растеризации.

Модуль трансформации осуществляет геометрические преобразования посредством трех матриц: преобразования представления, преобразования мировых координат и матрицы проекции. Модуль на основе этих матриц строит одну составную, которая и используется в вычислениях (в последних версиях Direct3D для ускорения вычислений применяется технология MMX).

Модуль просчета освещенности использует для работы данные, полученные от модуля трансформации. Он учитывает положение источников света, уровень рассеянной освещенности и оптические свойства материалов. При этом допускается реализация двух моделей: монохромной и RGB. В монохромной модели для каждого источника света учитывается только монохромная интенсивность и затем для данного участка вычисляется одно значение полутени. Цветовые компоненты светового потока игнорируются. Модель RGB помогает сделать сцену более реалистичной за счет учета цветовых характеристик источника света и материала освещаемого объекта.

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

Таким образом, механизм рендеринга сводится к следующему: точки трехмерной модели преобразуются модулем трансформации в эквивалентные двухмерные данные, которые передаются модулю, вычисляющему интенсивность падающего на них света, а затем направляются модулю растеризации, определяющему прозрачность и налагающему текстуры.


stop war in Ukraine

ukrTrident

stand with Ukraine