RSS

Компьютерная терминология    1_9  A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z  .....  A  Б  В  Г  Д  Ж  З  И  К  Л  М  Н  О  П  Р  С  Т  У  Ф  Х  Ц  Ч


Direct X

  
  • AGP
  • Accelerator
  • Algorithm
  • Algorithmic Procedure Texturing
  • Alpha-Blending
  • Anisotrophic Filtering
  • Anti-aliasing
  • API
  • API Extension
  • Aspect Ratio
  • Auto Texture Compression
  • Bilinear Filtering
  • Bitmap
  • Bitmapping
  • Blocky Filtering
  • Bump-Mapping
  • Bump-Maps
  • Clock Cycle
  • Collision Detection
  • Color Convergence
  • Colored Lighting
  • Composite
  • Daughter Card
  • Dedicated Frame Buffer
  • DirectSound
  • DirectSound3D
  • Direct3D
  • SIMD
  • Software Rendering
  • Specular highlight
  • Sprite
  • Texel
  • Texture
  • Texture Compression
  • Texture Mapping
  • Texture Memory
  • 3D Positional Sound
  • Trilinear Filtering
  • Volumetric Fogging
  • Z-Buffer
  • AC-3
  • Displacement Map, карта смещения
  • Distortion, искажение, дисторция
  • Dithering, сглаживание переходов между цветами
  • Doppler Effecting
  • Environment-mapping
  • Fill Rate
  • Filtering
  • Flat shading
  • Floating-Point
  • FMV
  • Fogging
  • FPS (Frames per Second)
  • Frame
  • Frame Buffer
  • Gamma Correction
  • Glide3D (Glide)
  • Gouraud Shading
  • Graphic Aperture Size
  • Graphics Pipeline
  • Internal Rendering
  • Lighting Effects
  • Low-Frequency Response
  • miniGL
  • Mip-Mapping
  • Multitexture
  • Obstruction Effects
  • OpenGL
  • OpenGL ICD
  • Per-Pixel Mip-Mapping
  • Perspective Correction
  • Phong shading
  • Pipeline
  • Pixel
  • Pixelation
  • Point sampling
  • Polygon
  • Raytrace
  • Reflective Mapping
  • Wavetracing

  • И вот зимой 1995 года (спустя полгода после выхода Windows 95) произошло событие, последствия которого мы ощущаем и до сих пор. В феврале 1995 года фирма Miсrosoft приобрела небольшую британскую компанию RenderMorfics. Эта компания, занимавшаяся средствами визуализации трехмерной графики под общим названием Reality Lab, обладая великолепным штатом программистов, добилась потрясающих результатов в области 2-D и 3-D, чем и привлекла к себе внимание гиганта. Став владельцем RenderMorfics, Miсrosoft немедленно приступила к конвертированию библиотек Reality Lab под Windows 95. Сроки поджимали, интерес к новой платформе без приложений стремительно падал. Спеша выдать хоть что нибудь, Miсrosoft выпускает хоть и недоделанный, но совершенно революционный по сути, комплект библиотек, названный дядюшкой Гейтсом Game SDK. Несмотря на то, что в этом комплекте отсутствовал главнейший на сегодняшний день компонент - Direct3D, выпуск этого продукта, сопровождаемый обильными потоками рекламы, всколыхнул околокомпьютерный мир. Первоначально, выход Game SDK, не вызвал большого восторга в среде программистов - мнение о том, то на платформе Win95 быстрые и красивые игры не живут (хотя Miсrosoft утверждала это про вирусы, а не про игры), слишком прочно утвердилось в головах разработчиков. Но выход Virtual Fighter - первой по настоящему быстрой, красивой и реалистичной игры под Win95 буквально поставил всех программистов на уши. Впервые компьютер с Win95 на борту на равных состязался с игровыми приставками (Virtual Fighter - это порт игры с 32-битной приставки SEGA Saturn). И это без Direct3D!
    Приковав, таким образом, всеобщее внимание к Win95 и продемонстрировав дальнейшие перспективы данной операционной системы, Miсrosoft на этом не остановилась и в 1996 году выпускает продолжение Game SDK под уже привычным для нас названием DirectX 2. Главное изменение в этом комплекте - добавление Direct3D. Именно тогда DirectX обрел привычные для нас очертания.
    Что же такое DirectX? Это прежде всего набор из нескольких API (application programming interface - интерфейс программирования приложений), позволяющих разработчикам игр и создателям красивых 3D приложений (demo making, visual plugin), аудио проигрывателей и других приложений под Windows95, получать доступ к особым функциям аппаратного обеспечения, без необходимости написания аппаратно-зависимого программного кода (проще - говоря, если в железе нет каких либо возможностей, то они эмулируются) . DirectX основан на наборе интерфейсов COM (Component Object Model - Компонентная Модель Объектов - спецификация интерфейса, в котором функции вызываются через указатели). Интерфейс COM используется не только в DirectX, но и на уровне операционной системы в качестве модели объектов и является сердцем одной из самой широко применяемой технологии -- OLE (Objects Linking and Embedding - связывание и встраивание объектов).
    Библиотеки DirectX:
    DirectDraw - отвечает за быстрый вывод, перемещение и масштабирование двухмерной графики, установку видеорежимов, выбор видеодрайверов. Непосредственный наследник WinG, но в отличие от последнего поддерживает практически любые видеорежимы и разрешения.
    DirectSound - отвечает за вывод и микширование звука. Достаточно прост и удобен в использовании. Используется в подавляющем большинстве DirectX игр. Отличительною особенностью является наличие wave-эмуляции, которая позволяет даже при отсутствии драйвера звуковой карты, выводить через нее звук.
    DirectInput - отвечает за аппаратно независимый ввод данных в систему в режиме реального времени через клавиатуру, мышку и джойстик.
    DirectPlay - независимый протокол для осуществления связи между компьютерами. Применятся для многопользовательских игр, связь в которых осуществляется через Интернет, локальную сеть или прямое последовательное соединение с помощью кабеля.
    Direct3D - отвечает за создание трехмерных графических изображений в режиме реального времени. Теснейшим образом связана с DirectDraw. Ближайший конкурент OpenGL. Состоит из API низкого уровня, который обеспечивает несколько базовых возможностей создания изображения, и API высокого уровня, который осуществляет комплекс операций, образующих изображение. В настоящее время активно продвигается Microsoft.
    Но под DirectX 2 так и не было выпущено ни одной игры, так как очень быстро вышел DirectX 3 и разработчики быстро переориентировались на новинку. Вот именно с этой версии началась эра DirectX!
    Напомню, что DirectX 3 поставлялся не только как Runtime компоненты, но и был встроен в долгожданную, исправленную и дополненную Windows 95 OSR2, которую многие заочно называли Windows 97, настолько эта версия и по стабильности и по удобности превосходила первый билд Windows 95 (OSR1 прошел мимо России, так как распространялся только в среде ОЕМ - партнеров Microsoft). А дальше новые версии DirectX полетели со свистом.
    Не выпустив по каким-то субъективным причинам DirectX 4, Microsoft радует нас сразу пятой версией. В этой версии основные изменения коснулись DirectDraw - там появился новый интерфейс IDirectDraw3. Остальные компоненты были оптимизированы и в них была включена поддержка технологических новинок вышедших за последнее время (в частности 3Dsound).
    Именно эта версия DirectX порадовала нас (и Microsoft) многочисленными играми под Windows 95: Fallout, Age of Empiers, Final Fantasy VII, Quake 2, Might & Magic VI, многочисленные стратегии, гонки, симмуляторы, имитаторы, шутеры, да всех и не упомнишь. Это был бум игр использующих DirectX, который продолжается и до сих пор.
    Спустя достаточно долгое время Microsoft выпускает новую шестую версию DirectX. На сей раз ее уже ждут с нетерпением. На этом чувстве ожидания сыграли компьютерные пираты, включившие первые бета версии DirectX 6 во все популярные сборники с софтом. Эти сборники брали охотнее, чем аналогичные, но без DirectX 6. Вышедшая Windows 98 имела эту версию в своем составе. В DirectX6 был включен еще один компонент - DirectMusic, который существенно улучшал звучание midi - инструментов, но за счет большей загрузки процессора. Насколько мне известно ни одна игра не использует эту библиотеку (а ведь прошло уже больше года с момента ее появления), поэтому непонятно, зачем она вообще нужна.
    В DirectX 6.1 произошло изменение библиотеки Direct3D, которая была опять оптимизирована (сколько ж можно) и в ней была добавлена поддержка рельефного текстурирования - bumpmaping. Опять таки, эту возможность практически никто не использует, так как тогда железной поддержки практически не было, а программная эмуляция очень замедлена.
    Начиная с DirectX 7 Microsoft похоже решила забросить все остальные модули, сосредоточив свое внимание только на Direct3D. По крайне мере главные изменения сосредоточены именно в этой библиотеке. И самое главное изменение, безусловно - это поддержка аппаратного T&L (правда немного кривая) и аппаратной компрессии текстур - DXTC (бывшая в девичестве S3TC), которая была лицензирована у компании S3.
    DirectX 7 включены в Windows 98 SE и Windows 2000.
    Самая последняя на данный момент полная версия DirectX версия 7.0а rus. Так же компания Microsoft распространяет тестовую бета-версию DirectX 8.
    Проект Fahrenheit
    Вот и все о прошлом и настоящем DirectX. Давайте теперь поговорим о дальнейших радужных перспективах этого продукта, которые нам рисует его создатель - скромная фирма Microsoft.
    А эта компания - труженик хочет ни много ни мало, а всего на всего возможность создания спецэффектов подобных творениям компании Industrial Light and Magic (та что создала терминаторов), причем на твоей машине, уважаемый пользователь. А ведь именно это, по утвеждению компании Microsoft и Silicon Graphics Inc. (SGI), будет способен делать их новый (хотя уже старый, раз они его в 1997 году затеяли) совместный проект Fahrenheit (Фаренгейт).
    О создании стратегического альянса между MS и SGI было объявлено, как уже говорилось, 17 декабря 1997 года. Проект Fahrenheit, после реализации (когда ж это будет, в DirectX8 его, похоже, еще нет) будет представлять из себя набор из аж трех новых API и должен будет избавить программистов от необходимости писать различные варианты драйверов и приложений для интерфейсов OpenGL и Direct3D или выбирать, какой API предпочесть. За них все решат милые дядьки из Microsoft и SGI.
    Но свои собственные проекты никто бросать не собирается. Параллельно с работами над проектом Fahrenheit, будут вестись совместные разработки приложений для профессионалов, использующие API OpenGL, и приложений для обычных пользователей, использующие API Direct3D.
    Первый API, из трех новых, получил кодовое имя Fahrenheit Scene Graph. Он будет представлять собой прослойку, связывающую собой приложение и низкоуровневый графический API, с изоляцией приложения от аппаратной части и системных особенностей, правда, лишь в случае применения графического API низкого уровня. Обеспечивая такую изоляцию, Scene Graph облегчает жизнь разработчикам, т.к теперь им можно сосредоточиться на создании самого приложения, оставляя без внимания множество различных факторов (типа, как оптимальным образом использовать основные аппаратные и системные ресурсы?). Scene Graph может использовать возможности компьютеров c многопроцессорной конфигурацией. В этом я вижу опасность. Когда Microsoft говорит "может", то это как-то само собой вскоре превращается в "должен", а на многопроцессорные системы вряд ли у кого сейчас (да и в скором будущем) найдутся деньги. В качестве основы для нового 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 (интерфейс наглядного представления больших моделей), которое будет использоваться для создания таких приложенияй, как пакеты для трехмерного моделирования (3D-CAD). Основа для Fahrenheit Large Model Visualization - интерфейсы Graphics OpenGL Optimizer от SGI (известное и распространенное расширение OpenGL) и Direct Model от Hewlett-Packard и MS.
    Ясно, что рядовым пользователям, с обычными машинами от этого API ничего не светит. Этот API может управлять невероятно большими и сложными наборами данных, включая десятки или сотни миллионов полигонов или треугольников, или, что более типично - сотни тысяч или миллионы математически сложных поверхностей, и, разумеется его не потянет любимый Pentium I, II, !!!.
    Третий, наиболее интересный нам, рядовым смертным новый API имеет кодовое имя Fahrenheit low level API (интерфейс низкого уровня). Его появление ожидается в середине 2000 года, а функционально он располагается над всей аппаратной частью и обеспечивает поддержку всех приложениям, начиная от игр и развлекательных программ всех направлений до научных и высокотехнологичных приложений. Основой для low-level API будут технологии Direct3D и Direct Draw от Microsoft и технология OpenGL от SGI.
    Fahrenheit low-level интерфейс будет иметь полную обратную совместимость с сегодняшним API DirectX (отлично!), и функциональную совместимость с технологией OpenGL компании SGI. Fahrenheit low-level API будет основным графическим интерфейсом как для профессиональных, так и для пользовательских приложений в среде Windows.
    Как ожидается, проект Fahrenheit вышвырнет со сцены так называемые native API ( Glide от 3DFX, MeTaL от S3 и т.д.) и наконец-то положит конец царящей на рынке 3D ускорителей анархии, положив начало единому общему стандарту.
    –-
    DirectX8. Взгляд изнутри 08.09.2001
    Небольшое введение и немного истории
    Можно сказать с уверенностью, что для Windows платформы наиболее известным инструментарием разработчика игр и мультимедиа программ является DirectX от корпорации Microsoft. Многие скажут, что есть еще и другие, и они мол лучше. Но по моему мнению и мнению огромного количества разработчиков игр, профессиональных и не очень, это удобный и полный инструмент, с которым достаточно просто и удобно работать, в этом мы постараемся убедиться. Посудите сами, DirectX покрывает все аспекты разработки игр и мультимедиа программ. В нем есть средства для программирования современной трехмерной графики, и для пользовательского ввода, без которого в играх никак не обойтись, и возможности для воспроизведения звука и музыки, и даже трехмерного, также имеются средства для разработки сетевых многопользовательских игр. Все это, при возможности используется с аппаратным ускорением и позволяет программисту не задумываться об внутреннем устройстве той или иной видео или аудио карты, и вообще любого устройства. И поэтому, используя эти кирпичики можно построить очень красивые, яркие, звучные и запоминающиеся миры, и при этом не тратить уйму времени и средств для разработки нового инструментария для вывода графики, звука, или сетевого взаимодействия, как это было в DOS эпоху.
    DirectX на данный момент имеет за своими плечами уже семь модификаций, но в его названии сейчас пишется цифра 8. Первоначально, когда Widows только появился, многие разработчики игр не хотели переходить из мира DOS в мир Windows. Тогда то Microsoft и выпустила так называемый GameSDK, который принято считать прародителем и первой версией DirectX. Позже, с периодичностью примерно в год, появились и вторая и третья версии этого замечательного инструмента. Уже тогда большинство разработчиков заметили его и начали использовать для своих игр. В ноябре 2000 года была выпущена восьмая версия DirectX (по каким то причинам не вышла четвертая версия DirectX, поэтому, хотя сейчас DirectX имеет в названии цифру 8, было выпущено всего семь версий).
    DirectX, как интерфейс, организованный снизу вверх, делается максимально приближенным к аппаратуре. При этом DirectX старается по возможности использовать минимальную прослойку программной абстракции между аппаратурой и программами. Вот поэтому он постоянно периодически должен изменяться, чтобы охватывать большинство возможностей современной аппаратуры. В очередной, восьмой версии, в нем добавилось множество новых функций, для обеспечения работы последних версий аппаратного обеспечения, и кроме того, произошло множество глобальных изменений на уровне архитектуры DirectX. Было произведено слияние некоторых уже существующих блоков, а также появились несколько, совершенно новых возможностей.
    Что же сейчас входит в DirectX и какие новшества в целом предлагаются разработчикам?
    На данный момент DirectX состоит из нижеследующих компонентов :
    DirectX Graphics - данный компонент совмещает в себе два компонента, которые в предыдущей версии DirectX были самостоятельными - Microsoft DirectDraw® и Microsoft Direct3D®. Данный компонент используют теперь для всего программирования, которое связано с графической частью. Также этот компонент содержит в себе библиотеку утилит Direct3DX, которая позволяет облегчить многие задачи при программирования графики.
    DirectX Audio - новый компонент образованный слиянием Microsoft DirectSound® и Microsoft DirectMusic®, и предоставляет средства для программирования всей аудио части (музыка, звуки, шумы, трехмерное звучание).
    Microsoft DirectInput® - предоставляет возможности для работы с пользовательским вводом и его обработкой. Позволяет работать с большим количеством устройств ввода, включая и полную поддержку устройств с технологии обратной связи (force-feedback).
    Microsoft DirectPlay® - предоставляет возможности для реализации многопользовательских сетевых игр. Его внутренне устройство было полностью переработано по сравнению с предыдущими версиями DirectX.
    Microsoft DirectShow® - этот интерфейс, до сих пор фактически существовавший отдельно от DirectX и называвшийся DirectX Media (хотя формально и считалось, что существует DirectX Media и DirectX Foundation, составляющие вместе DirectX 5, 6, 7) в DirectX 8 будет включен в дистрибутив. DirectShow отвечает за высококачественного захват (capture) и проигрывание аудио и видео потоков (видео, аудио, mp3, DVD) с возможной их обработкой различными фильтрами.
    Что же нового дает нам в руки Microsoft? Рассмотрим все компоненты по порядку и узнаем, какие новшества в них появились и как это поможет разработчикам игр.
    DirectX Graphics - новое слово в современной графике
    Microsoft Direct3D был специально разработан для возможности создания игр мирового уровня и интерактивной трехмерной графики на платформе Microsoft Windows. Он представляет собой интерфейс для работы с графикой, который предоставляет возможности зависимого от аппаратуры доступа к устройствам отображения трехмерной графики на независимый манер. Если проще, то это будет так - в принципе, при программировании, вы не задумываетесь, под какую видео карту пишите вашу программу, но на уровне драйверов для каждой карты существуют свои методы работы с трехмерной графикой, и для каждой пишется своя версия драйверов. Direct3D это низкоуровневый API трехмерной графики, который идеально подходит для разработчиков, которым необходимо разрабатывать или портировать игры и другие высоко качественные мультимедиа приложения для операционной системы Windows. Direct3D предоставляет для приложений независимой от аппаратуры способ доступа и работы с видео акселераторами на низком уровне. Direct3D представляет собой программный интерфейс, дающий возможности прямого доступа к видео устройствам, поддерживая при этом совместимость с Графическим интерфейсом устройств (graphics device interface - GDI) Windows, который предоставляет аппаратно зависимый способ для игроков и программному обеспечению подсистемы Windows, такие как пакеты работы с трехмерной графикой (например 3D Max), для получения доступа к специфическим возможностям графического адаптера. Direct3D обеспечивает превосходную игровую графику на платформах серии Win9X, или Win2K.

    Direct3D позволяет вам разрабатывать приложения, которые с легкостью превзойдут стандартные, разработанные для Windows GDI приложения, или даже приложения под MS-DOS. Манипулирование миром в Direct3D основано на вершинах (vertices), полигонах (polygons), и командах для управления ими. Это дает непосредственный доступ к трехмерному графическому конвейеру трансформации, освещения и растеризации. Если же отсутствует аппаратура для ускорения рендеринга, то Direct3D позволяет воспользоваться программной эмуляцией. Direct3D предоставляет простые и открытые методы для обеспечения настройки и рендеринга трехмерных сцен. Ключевые методы рендеринга связаны с методом DrawPrimitive. Он позволяет приложению отрисовывать (рендерить) один и более объектов в сцене всего одним вызовом. Direct3D позволяет работать с аппаратурой трехмерной (3-D) графики с наименьшими издержками. Это как бы является оплатой за простоту и предоставляемые возможности. Только вы можете решать, как вам работать с преобразованиями, вы должны предоставлять все необходимые материалы, и вы же должны определять, какие видео устройства установлены и какими они обладают возможностями.

    Давайте теперь посмотрим, какие новые возможности появились с выходом восьмой версии DirectX. Конечно же (это технология COM) DirectX 8.0 поддерживает обратную совместимость с предыдущими версиями DirectX. Но помимо того, что было уже в предыдущих версиях, в восьмой были добавлено множество новых возможностей и улучшена общая производительность:

    Полная интеграция DirectDraw и Direct3D

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

    Это изменение упрощает инициализацию и управление ядром Direct3D, и делает эти операции более прямолинейными. Уже давно DirectDraw и Direct3D были переплетены между собой, а их разделение на два обособленных интерфейса становилось все более похожим на искусственное, а не естественное разделение двух- и трехмерной графики. Еще одной причиной объединения интерфейсов является то, что DirectDraw фактически прекратил свое развитие, и изменения в этом интерфейсе как в DirectX 6, так и в DirectX 7 были более косметическими, чем реальными.

    Еще одна особенность нового интерфейса - это ограничение доступа к итоговым изображениям, получаемым при рендеринге, и к так называемому переднему буферу (front buffer). Это делается и со стороны разработчиков аппаратуры, для реализации различных оптимизаций работы с кадровым буфером, и со стороны разработчиков ОС, для того, чтобы программы рисовали каждая в свое окно, а не могли, как сейчас, произвольно рисовать в любом месте на рабочем столе. Это должно позволить ОС более эффективно управлять отображением окон программ на рабочем столе. Для этих целей был, для управления выводом итоговых изображений на экран, предложен новый Presentation API.

    Дальнейшее развитие получила библиотека Direct3DX, впервые появившаяся в DirectX7. Как и в предыдущей версии ее основное предназначение - упрощение использования DirectX Graphics (Direct3D). Причем в новой версии эта библиотека не только содержит различные математические функции, процедуры упрощающие инициализацию DirectX Graphics, загрузку изображений. Теперь эта библиотека позволяют загружать модели в формате X-файлов, поддерживает модели с изменяемым уровнем детализации (LOD) и модели содержащие кривые поверхности. Также Direct3DX теперь позволяет выводить шрифты без использования GDI, генерировать трехмерные модели надписей.

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

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

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

    Наборы команд, являющихся стандартными для шейдеров DirectX 8, оптимизированы для данных и алгоритмов, используемых соответственно в вершинных (vertex) и пиксельных (pixel) шейдерах. Т.е. у вершинных шейдеров операции производятся над векторами, и набор команд достаточно похож на SSE и 3DNow! инструкции процессоров. В случае пиксельных шейдеров, оперирующих над целыми числами, набор команд напоминает MMX инструкции.

    Разработчики DirectX видят следующие преимущества новой программной модели интерфейса на базе шейдеров:

    В случае шейдеров конкретная операция, производимая над вершиной или пикселем, зависит всего лишь от нескольких параметров, которые определены здесь же, в теле шейдера. В отличие от стандартных моделей интерфейсов, в которых с вводом новых возможностей зависимость конкретной операции от множества различных флагов увеличивается в геометрической прогрессии. Отладка и тестирование программ и драйверов, взаимодействующих по такой схеме, в дальнейшем может превратиться в кошмар для программистов.
    Применение шейдеров помогает более полно реализовать потенциал уже существующей аппаратуры. Это могут быть различные операции, которые поддерживаются текущим интерфейсом, но их реализация либо сложна, либо имеет ограничения, примером такой операции является смешение вершин (vertex blending) в DirectX 7.
    При применении шейдеров упрощается расширение DirectX новыми функциями аппаратуры. Например, 3dfx придумает какой-нибудь супер-дупер environment mapping и добавит новую операцию в свою спецификацию шейдеров. После чего программы могут использовать эту новую функцию, а ядро DirectX об этом даже не будет догадываться.
    Последним и, пожалуй, наиболее действенным аргументом является то, что подобной идеологией обладают программы генерации фотореалистичной графики, такие как RenderMan и MentalRay, используемые для производства голливудских фильмов (Парк Юрского периода, Жизнь Жуков, Игрушечная История 2 и многих других).

    Гибкость как вершинных, так и пиксельных шейдеров в DirectX 8 позволят при их помощи делать тоже самое, что позволяли делать предыдущие версии DirectX с фиксированными интерфейсами, соответственно трансформации и освещения вершин и мультитекстурирования. Это показано на схеме нового конвейера Direct3D. Но истинная цель их ввода - программистам предоставляется возможность добавления новых операций, выходящих за рамки предопределенного набора.
                                                        

    DirectX8. Взгляд изнутри  08.09.2001


    DirectX Graphics - новое слово в современной графике
    Microsoft Direct3D был специально разработан для возможности
    создания игр мирового уровня и интерактивной трехмерной графики на платформе Microsoft Windows. Он представляет собой интерфейс для работы с графикой, который предоставляет возможности зависимого от аппаратуры доступа к устройствам отображения трехмерной графики на независимый манер. Если проще, то это будет так - в принципе, при программировании, вы не задумываетесь, под какую видео карту пишите вашу программу, но на уровне драйверов для каждой карты существуют свои методы работы с трехмерной графикой, и для каждой пишется своя версия драйверов. Direct3D это низкоуровневый API трехмерной графики, который идеально подходит для разработчиков, которым необходимо разрабатывать или портировать игры и другие высоко качественные мультимедиа приложения для операционной системы Windows. Direct3D предоставляет для приложений независимой от аппаратуры способ доступа и работы с видео акселераторами на низком уровне. Direct3D представляет собой программный интерфейс, дающий возможности прямого доступа к видео устройствам, поддерживая при этом совместимость с Графическим интерфейсом устройств (graphics device interface - GDI) Windows, который предоставляет аппаратно зависимый способ для игроков и программному обеспечению подсистемы Windows, такие как пакеты работы с трехмерной графикой (например 3D Max), для получения доступа к специфическим возможностям графического адаптера. Direct3D обеспечивает превосходную игровую графику на платформах серии Windows 9X, или Windows 2000.
    Direct3D позволяет вам разрабатывать приложения, которые с легкостью превзойдут стандартные, разработанные для Windows GDI приложения, или даже приложения под MS-DOS. Манипулирование миром в Direct3D основано на вершинах (vertices), полигонах (polygons), и командах для управления ими. Это дает непосредственный доступ к трехмерному графическому конвейеру трансформации, освещения и растеризации. Если же отсутствует аппаратура для ускорения рендеринга, то Direct3D позволяет воспользоваться программной эмуляцией. Direct3D предоставляет простые и открытые методы для обеспечения настройки и рендеринга трехмерных сцен. Ключевые методы рендеринга связаны с методом DrawPrimitive. Он позволяет приложению отрисовывать (рендерить) один и более объектов в сцене всего одним вызовом. Direct3D позволяет работать с аппаратурой трехмерной (3-D) графики с наименьшими издержками. Это как бы является оплатой за простоту и предоставляемые возможности. Только вы можете решать, как вам работать с преобразованиями, вы должны предоставлять все необходимые материалы, и вы же должны определять, какие видео устройства установлены и какими они обладают возможностями.

    Давайте теперь посмотрим, какие новые возможности появились с выходом восьмой версии DirectX. Конечно же (это технология COM) DirectX 8.0 поддерживает обратную совместимость с предыдущими версиями DirectX. Но помимо того, что было уже в предыдущих версиях, в восьмой были добавлено множество новых возможностей и улучшена общая производительность:

    Полная интеграция DirectDraw и Direct3D

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

    Это изменение упрощает инициализацию и управление ядром Direct3D, и делает эти операции более прямолинейными. Уже давно DirectDraw и Direct3D были переплетены между собой, а их разделение на два обособленных интерфейса становилось все более похожим на искусственное, а не естественное разделение двух- и трехмерной графики. Еще одной причиной объединения интерфейсов является то, что DirectDraw фактически прекратил свое развитие, и изменения в этом интерфейсе как в DirectX 6, так и в DirectX 7 были более косметическими, чем реальными.

    Еще одна особенность нового интерфейса - это ограничение доступа к итоговым изображениям, получаемым при рендеринге, и к так называемому переднему буферу (front buffer). Это делается и со стороны разработчиков аппаратуры, для реализации различных оптимизаций работы с кадровым буфером, и со стороны разработчиков ОС, для того, чтобы программы рисовали каждая в свое окно, а не могли, как сейчас, произвольно рисовать в любом месте на рабочем столе. Это должно позволить ОС более эффективно управлять отображением окон программ на рабочем столе. Для этих целей был, для управления выводом итоговых изображений на экран, предложен новый Presentation API.

    Дальнейшее развитие получила библиотека Direct3DX, впервые появившаяся в DirectX7. Как и в предыдущей версии ее основное предназначение - упрощение использования DirectX Graphics (Direct3D). Причем в новой версии эта библиотека не только содержит различные математические функции, процедуры упрощающие инициализацию DirectX Graphics, загрузку изображений. Теперь эта библиотека позволяют загружать модели в формате X-файлов, поддерживает модели с изменяемым уровнем детализации (LOD) и модели содержащие кривые поверхности. Также Direct3DX теперь позволяет выводить шрифты без использования GDI, генерировать трехмерные модели надписей.

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

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

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

    Наборы команд, являющихся стандартными для шейдеров DirectX 8, оптимизированы для данных и алгоритмов, используемых соответственно в вершинных (vertex) и пиксельных (pixel) шейдерах. Т.е. у вершинных шейдеров операции производятся над векторами, и набор команд достаточно похож на SSE и 3DNow! инструкции процессоров. В случае пиксельных шейдеров, оперирующих над целыми числами, набор команд напоминает MMX инструкции.

    Разработчики DirectX видят следующие преимущества новой программной модели интерфейса на базе шейдеров:

    В случае шейдеров конкретная операция, производимая над вершиной или пикселем, зависит всего лишь от нескольких параметров, которые определены здесь же, в теле шейдера. В отличие от стандартных моделей интерфейсов, в которых с вводом новых возможностей зависимость конкретной операции от множества различных флагов увеличивается в геометрической прогрессии. Отладка и тестирование программ и драйверов, взаимодействующих по такой схеме, в дальнейшем может превратиться в кошмар для программистов.
    Применение шейдеров помогает более полно реализовать потенциал уже существующей аппаратуры. Это могут быть различные операции, которые поддерживаются текущим интерфейсом, но их реализация либо сложна, либо имеет ограничения, примером такой операции является смешение вершин (vertex blending) в DirectX 7.
    При применении шейдеров упрощается расширение DirectX новыми функциями аппаратуры. Например, 3dfx придумает какой-нибудь супер-дупер environment mapping и добавит новую операцию в свою спецификацию шейдеров. После чего программы могут использовать эту новую функцию, а ядро DirectX об этом даже не будет догадываться.
    Последним и, пожалуй, наиболее действенным аргументом является то, что подобной идеологией обладают программы генерации фотореалистичной графики, такие как RenderMan и MentalRay, используемые для производства голливудских фильмов (Парк Юрского периода, Жизнь Жуков, Игрушечная История 2 и многих других).

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

    Теперь рассмотрим разные типы шейдеров по отдельности.

    Vertex Shaders

    Вершинные шейдеры при проектировании DirectX рассчитывались на использование для:

    key frame interpolation - межкадровой интерполяции вершин, являющейся возможностью чипа ATI Radeon;
    vertex blending'а с использованием более чем четырех матриц преобразования (как разрешено в DirectX 7) - представляет собой простую модель для использования скелетной анимации комплексных моделей, без их разбиения на несколько частей
    использования процедурной геометрии - когда сетка вершин, передаваемая программой для отрисовки на экран может искажаться каким-либо параметрическим объектом - это могут быть перекатывающиеся под кожей мускулы у персонажей или поверхность воды, искажаемая ветром, также разнообразные формы displacement mapping
    реализация более сложных моделей освещения, чем используемые в DirectX - это могут быть различные модели, более точно учитывающие материал освещаемых объектов. Например, кожа и металлы по-разному изменяют коэффициент рассеивания света в зависимости от угла падения; стекло также не вписывается в общеупотребительную модель отражения.

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

    Pixel Shaders
    Пиксельные шейдеры в DirectX 8 подменяют интерфейс, отвечавший за мультитекстурирование в версиях DirectX 6 и 7. В последующих версиях DirectX спецификация пиксельные шейдеров может быть расширена для включения поддержки наложения пиксельного тумана и т.д.

    Преимущества пиксельных шейдеров:

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

    Кроме введения технологии шейдеров Microsoft порадовала нас еще несколькими новыми возможностями:

    Поддержка рендеринга мультивыборок (Multisampling)

    Multisamplе rendering представляет собой своеобразную адаптацию идеологии T-buffer от 3dfx в DirectX. Эта новая возможность DirectX позволяет создавать все типы эффектов, возможные при использовании T-buffer'а. При этом за счет новой идеологии отображения готовых кадров на экран, все эти эффекты возможно реализовать в новой версии DirectX на любой видеокарте, при соответствующем изменении в драйверах. Единственным ограничением будет лишь достаточная скорость заполнения карт, хотя специальная адаптация чипов не помешает. Мультисэмплинг представляет собой возможность при рендеринге выводить изображение в несколько кадров одновременно вместо одного. В конце процесса вывода эти несколько кадров комбинируются в одно итоговое изображение, которое и выводится на экран. При этом в процессе вывода данных программа может разрешать или запрещать рендеринг в каждый из временных кадров, что и показано на рисунке ниже. А также, при одновременном выводе изображения в несколько кадров, получаемые изображения могут несколько отличаться друг от друга.

    Эта технология позволяет воспроизводить в играх эффекты следующего типа:

    различные типы полноэкранного антиалиасинга
    Motion Blur - размытие объектов в движении
    эффекты глубины зрения (depth-of-field - то что ближе - видится четче, нежели то, что находится дальше

    Трехмерные объемные текстуры (3-D volumetric textures)

    Предоставляет возможности для глубинного распределения (range- attenuation) при попиксельном освещении и для объемных атмосферных эффектов, и может быть применена для достижения более сложной геометрии. Теперь три "объемные" координаты могут использоваться и для адресации треугольника (обычного плоского треугольника) внутри объемной (кубической) текстуры, который в дальнейшем и используется в качестве текстуры. Такие текстуры могут использоваться для отображения в играх различных "объемных" эффектов: объемного тумана, объемного освещения и т.д.

    Точечные спрайты (Point sprites)

    Дает возможность высокопроизводительного рендеринга при помощи систем частиц таких эффектов, как взрывы, искры, дождь, снег, дым и так далее.

    Поддержка примитивов высокого порядка (Higher-order primitive)

    Позволяет работать с очень высоко детализированными, и следствие - содержащим очень большое количество полигонов, примитивами. Или же позволяет из достаточно низкополигонольной модели получить высоко полигональную, путем процесса разделения единичного полигона на более мелкие (тесселяция). В качестве функций, по которым будут тесселироваться модели могут быть: кривые Безье, B-сплайны, триангуляция и интерполяция вершин.
    Это позволяет малым количеством данных создавать очень гладкие и "прилизанные" модели.
                                            
    Все это вместе дает в руки разработчиков множество возможностей для создания трехмерной графики. Использование шейдеров позволяет программировать практически любые эффекты применимые для вершин и пикселей. Новые способы для работы с системами частиц предоставляют легкий способ имитации дождя, снега, фонтанов, огня дыма и других эффектов. Данные нововведения предназначены для облегчения разработки и для возможности достижения высокоуровневой, высоко детализированной, трехмерной компьютерной графики для игр.

    Новое в DirectInput

    DirectInput предназначен для работы с устройствами ввода, такими как клавиатура, манипулятор типа мышь или джойстик. Также DirectInput позволяет работать с многими типами устройств ввода, даже такими как устройства с обратной связью (force feedback). В отличие от сервисов предоставляемых для устройств не поддерживаемых Microsoft Win32 API, Microsoft DirectInput дает более быстрый и лучший доступ к вводимым данным, используя при этом напрямую к драйверам устройств ввода, нежели через систему сообщений Microsoft Windows. DirectInput позволяет приложению получать данные с устройств ввода даже если приложение находится в фоновом режиме. С использованием новой технологии соответствия действиям (action mapping), приложение может получать вводимые данные без необходимости знать, какого типа устройство их сгенерировало. Благодаря этим особенностям и улучшенной производительности, DirectInput становится ценным инструментом для игр, симуляторов, и других приложений работающих в реальном времени на платформе Windows.

    Что же нового ввела Microsoft в восьмой версии DirectInput?

    Самое главное - соответствие действиям (Action mapping)
    Microsoft DirectInput для Microsoft DirectX 8.0 представляет самую главную новую возможность - соответствие действиям. Данная возможность позволяет вам установить связь между действиями ввода и устройствами ввода, что позволяет не зависеть от существования конкретного устройства ввода. Если проще, этот интерфейс позволяет программам реагировать не на нажатие клавиш или движение мыши как таковые, а на акции, независимые от устройства ввода. Это позволяет упростить цикл ввода и уменьшить затраты на разработку драйверов устройств для конкретной игры, профилирование конкретных устройств, и конкретной конфигурации интерфейса пользователя (при настройке свойств ввода) для игр.
                                       
    В DirectInput, заранее предопределен набор стандартных действий для различных жанров: FPS, стратегий, гонок, RPG и т.д. Программы также могут вводить свои действия, которых им не хватает среди заранее определенных в DirectInput для выбранного жанра. Все это позволяет пользователю иметь уже предопределенные - удобные именно ему - клавиши управления для всех игр жанров, которые он предпочитает.

    Новые возможности для объектов DirectInput
    Кроме всего прочего объект DirectInput теперь представляется интерфейсом IDirectInput8. Новая вспомогательная функция - DirectInput8Create, создает этот объект и получает его интерфейс. IDirectInput8 имеет новый идентификатор (CLSID) и не может быть получен через вызов QueryInterface, как это было сделано в предыдущих версиях DirectX. Было добавлено два новых свойства для: DIPROP_KEYNAME - для получения локализированного имени клавиши, и DIPROP_SCANCODE - для получения скэнкода. Это позволяет программистом не строить длинные цепочки распознавания кнопок и сопоставления им необходимых знаков, особенно это удобно при любом виде набора текста.

    Но DirectInput не дает никакого выигрыша для приложений, которым требуется ввод текста с клавиатуры или мышки для навигации. Так как DirectInput работает напрямую с драйверами устройств, он не принимает во внимание, подавляет или игнорирует, сообщения Windows для мышки и клавиатуры. Он также игнорирует установки для мыши и клавиатуры, сделанные пользователем в Контрольной Панели (Control Panel), но, тем не менее, это не относится к установкам калибровки джойстиков или других игровых контроллеров.

    Звук и музыка - теперь это DirectX Audio

    Аудио часть DirectX, ранее состоявшая из двух интерфейсов: DirectSound и DirectMusic, теперь будет называться DirectX Audio. Но изменения затронули не только название, но и позволили добавить множество новых возможностей. Начиная с DirectX Audio 8 звуковые wav файлы и синтезируемая музыка равноправны и могут проигрываться через единый механизм. Благодаря поддержке стандарта DLS2 (Downloadable Sounds Level 2) появилась возможность накладывать эффекты, рассчитанные изначально на синтезированную (MIDI) музыку, на стандартные звуковые wav файлы.

    Новая, более гибкая модель прохождения данных (audio path), позволяет например обрабатывать разные части одного MIDI файла разными фильтрами и с разными установками 3D окружения. Интеграция DirectSound и DirectMusic позволяет обрабатывать синтезированные музыкальные фрагменты, как обычные аудио дорожки. Это дает возможность накладывать эффекты типа ревербрации как на синтезированные мелодии, так и на обычные аудио дорожки. В DirectX 8 возможно сначала синтезировать звук и свести его с обычными аудио дорожками, а после обработать эту одну сведенную дорожку в 3D части аудио интерфейса.

    Особняком от этих нововведений стоит Audio Scripting - поддержка скриптов при реализации аудио части игр. Скрипты позволяют разделить программирование игр и реализацию музыкального сопровождения событий в игре. Поведение музыкального сопровождения в таком случае будет контролироваться значениями внутренних (для игры) переменных.

    Кроме всех этих нововведений есть еще некоторые:

    Поддержка вывода текстов песен по принципу караоке.
    Возможность предварительного микширования нескольких аудио потоков в один перед 3D обработкой.
    Упрощенная загрузка/выгрузка музыкальных инструментов (bands).

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

    Голосовое сообщение через DirectPlay

    Инструментарий программиста Microsoft DirectPlay API предоставляет разработчику средства для разработки многопользовательских приложений, таких как игры или чат клиенты (для простоты в документации по DirectX8 SDK все его применения названы "играми"). Многопользовательские приложения характеризуются двумя основными типами:

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

    DirectPlay представляет собой прослойку, которая очень сильно изолирует ваше приложение от основ построения и работы компьютерных сетей, и позволяет скрывает различия между различными сетевыми средами и протоколами будь то Интернет или прямое соединение по модему. В большинстве случаев, ваше приложение может использовать DirectPlay API, и позволить DirectPlay самому детально оперировать с сетевыми соединениями. DirectPlay предоставляет множество возможностей, которые облегчают применение многих аспектов многопользовательских приложений, такие как:

    Создание и управление равноправных или клиент/серверных соединений
    Управление пользователями и группами внутри сессии
    Управление сообщениями между членами сессий, соединенных через различные сетевые связи и при изменяющихся состояниях сети
    Позволяет приложениям взаимодействовать по средством лобби (lobbies)
    Позволяет пользователям общаться друг с другом путем передачи голосовых

    Основное нововведение - была добавлена возможность передачи голосовых данных.

    DirectPlay Voice - как следует из его названия, позволяет игрокам общаться голосом в многопользовательских играх. Причем требуемая для передачи голоса ширина канала может варьироваться от 1.2 Кбит/с до 64 Кбит/с (соответственно с изменением качества сжатия). В качестве воспроизводящих и записывающих устройств используются DirectSound и DirectSound Capture устройства. Данные интерфейсы определены в заголовочном файле Dvoice.h :

    Кроме всего этого было введено еще несколько новых возможностей и свойств, как то:

    Основные интерфейсы были полностью переписаны.
    Лоббинг (lobbying) теперь является независимым от остального DirectPlay.
    Реализованы еще большая масштабируемость и улучшенное управление памятью.
    Адресная информация "переехала" из данных основанных на GUID в формат данных основанный на URL.
    Обеспечена лучшая поддержка для брандмауэров (Firewalls) и Трансляторов Сетевых Адресов (Network Address Translators - NAT).

    Мультимедиа средства DirectShow

    Начиная с восьмой версии, Direct Show будет поставляться в составе дистрибутива DirectX. Этот интерфейс позволяет проигрывать и записывать различные аудио и видео потоки, с возможностью их обработки в реальном времени. Это обеспечивает дальнейшие возможности по интеграции аудио и видео потоков в стандартные интерфейсы Direct3D и Direct Audio. Direct Show 8 представляет собой первое обновление интерфейса, со времен выпуска DirectX 6.1. Теперь приложения Direct Show могут изменять т.н. graph - путь, по которому происходит обработка информации. Это позволяет в реальном времени изменять количество входящих аудио и видео потоков, а также запускать и останавливать промежуточные фильтры обработки без каких-либо разрывов в воспроизведении. Новая версия обеспечивает улучшенную синхронизацию аудио и видео потоков. Например, стандартный аудио поток может быть синхронизирован с внешними часами, что позволяет устранить разницу в отсчете времени на аудио картах и платах захвата видео. Список поддерживаемых DirectShow форматов включает в себя AVI, MPEG, ASF (advanced streaming format), WAV, MP3 и другие. В новой версии добавлен интерфейс высшего уровня для управления низкоуровневыми функциями Direct Show - Direct Show Editing Services. Что можно перевести как средства редактирования Direct Show. Эти новые средства обеспечивают Microsoft ядром нового высокоуровневого API для нелинейного редактирования и управления шкалой времени (timeline) в подобных системах, открывая при этом доступ к низкоуровневым функциям Direct Show.

    В заключение

    Очередная версия DirectX, как обычно включает в себя поддержку новых веяний в игровой аппаратуре, также в ней сделаны большие шаги по упрощению использования DirectX. В отношении всех этих изменений можно сказать, что Direct3D при использовании ее для написания игр сравнялась по возможностям и простоте использования с OpenGL. А библиотека Direct3DX по значимости становится своеобразным аналогом GLUT библиотеки OpenGL для DirectX Graphics. Но изменения в DirectX 8 не столько эволюционны, сколько революционны. Это видно и по изменениям в Direct3D, которые являются наиболее существенными со времен появления пятой версии DirectX. Имеется ввиду добавление новой идеологии обработки данных: шейдеров. Также как и графическая часть DirectX, остальные части DirectX не отстают в своем развитии. Все эти новшества и возможности дают в руки разработчиков очень мощный инструмент и позволяют работать со всеми необходимыми составляющими современных игр, используя при этом последние технологии, как в трехмерной графике, так и в использовании аудио данных, пользовательского ввода, или построении многопользовательских онлайновых миров.

    Глоссарий современных 3D терминов
    A3D (Aureal3D) - API, создающий 3D позиционирование звука и эффект Доплера с использованием только двух колонок. Другие реализации 3D звука (аппаратные или программные) работают с четырьмя или более колонками. Довольно интересен тот факт, что A3D был создан с помощью разработанных NASA алгоритмов. Для чего они были разработаны изначально остается только догадываться. Какова же практическая ценность A3D для пользователя? Как правило, поддержка A3D подразумевает программную реализацию звука в играх и программах. Причем технология не только позволяет ощутить местоположение источника звука в пространстве (3D позиционирование) но и оценить удаленность источника от слушателя (эффект Доплера). Например, когда вы приближаетесь к источнику звука в 3D игре, звук становится громче, когда же вы удаляетесь - тише. В реальной жизни такой эффект обусловлен расхождением звуковых волн при удалении от источника.

    AC-3 - технический термин, принятый в стандарте объемного звука Dolby Digital 5.1 Surround Sound. AC-3 является алгоритмом, раскладывающим звуковой поток на пять отдельных каналов, каждый канал посылается на свою колонку. Чем полезен AC-3? Когда вы смотрите фильм на большом экране, именно AC-3 делает звук объемным. Например, в фильме "Скорость" можно почувствовать, как автобус выезжает откуда-то сзади. На самом деле, звук движущегося автобуса постепенно перемещается с задних колонок на передние. Алгоритм является еще одним способом создания 3D звука. Технология Aureal3D предлагает тот же самый эффект, но с использованием меньшего оборудования. В общем, "Dolby Surround" и есть AC-3.

    Accelerated Graphics Port (AGP), ускоренный графический порт - шина расширения, разработанная Intel для подключения видеокарты. Современные видеокарты чаще всего используют именно этот разъем. Хотя до сих пор выпускаются и PCI варианты. В чем состоит различие между шинами PCI и AGP? Если судить по скорости, AGP может посылать центральному процессору информацию в четыре раза быстрее, чем PCI. Частота 4X AGP составляет 266 МГц, мегагерца. Хотя многие современные карты умеют работать с AGP только на 2X скорости (133 МГц), большинство материнских плат уже оснащаются 4X портом. Большинство видеокарт и видеоускорителей выпускаются для двух шин - AGP и PCI. AGP быстрее чем PCI, что положительно влияет на производительность.

    Accelerator, ускоритель, акселератор - это карта или плата, расширяющая возможности компьютера. Обычно она является аппаратным решением, самостоятельно обрабатывающим какую-либо информацию. При этом освобождаются ресурсы центрального процессора. Примером такой информации можно считать обработку видео, звука или декодирование DVD. Хотя для нормальной работы акселератора он должен задействовать некоторые ресурсы центрального процессора, все же происходит ощутимое повышение скорости и качества выполняемых ускорителем задач. Два самых популярных вида акселераторов - видеоускорители и аудиоускорители. Часто они совмещают в себе звуковую и видеокарту. Почти каждый ПК сегодня оснащен видеоускорителем, 2D, 3D или 2D/3D совместно.

    Algorithm, алгоритм. В двух словах - это последовательность действий для выполнения чего-либо. Алгоритмы используются, к примеру, в алгебре или информатике. Эта последовательность действий и есть алгоритм.

    Algorithmic Procedure Texturing, алгоритмическое процедурное текстурирование - способ рендеринга изображений с виртуально бесконечной детализацией. Проще говоря, представьте себе алгебраическую формулу, которая позволяет показать картинку на экране с бесконечным уровнем детализации, ограниченным только возможностями компьютера. Чтобы понять принцип работы, посмотрите на определение алгоритма. Слово "процедурное" означает последовательность действий. А "текстурирование" - это просто создание изображения с многочисленными свойствами.

    Alpha-Blending, альфа-смешение - создание полупрозрачных объектов, возможность задать изображению или отдельному пикселю специальный атрибут, определяющий как будет выглядеть изображение: сплошным (не пропускает свет), невидимым (прозрачным), или полупрозрачным. Текстура, наносимая на объект, может содержать помимо информации о цвете (Red,Green,Blue), информацию о прозрачности (Alpha). В зависимости от величины коэффициента Alpha разные части объекта приобретают различную степень прозрачности, т.е. при использовании совместно с полигонами, альфа-смешение позволяет создавать стекло, воду или другие виртуально прозрачные элементы. Как правило смешивание цветов перекрываемого объекта и полупрозрачного объекта (с альфа прозрачностью) происходит по следующей формуле: (alpha) * (значение цвета объекта с прозрачностью) + (alpha-1) * (значение цвета покрываемого объекта) при 0<=alpha<=1.

    Anisotrophic Filtering, анизотропная фильтрация. Перед чтением узнайте, что такое текстурирование. Анизотропная фильтрация - самый совершенный тип фильтрации, она фильтрует (или смешивает) данную текстуру, учитывая три измерения объекта. Остальные способы фильтрации просто усредняют цвет выводимого пикселя, принимая во внимание цвет исходных пикселей, что делает картинку или слишком размытой, или слишком резкой.
    Анизотропная фильтрация при усреднении принимает во внимание трехмерную модель объекта, а конкретно нужный полигон. Однако это преимущество над трилинейной фильтрацией обходится весьма дорого и может очень сильно замедлить графический процессор. Кстати, Riva TNT была первым 3D ускорителем, способным выполнять анизотропную фильтрацию.

    Anti-aliasing, сглаживание. В применении к 3D технологии, термин подразумевает сглаживание характерных "ступенек" линий, прорисованных под углом. Посмотрите на стену в Quake II. Вы наверняка заметите "ступеньки" на линиях, показывающих границу стены. При аппаратной прорисовке 3D сцены сглаживание может замещаться или дополняться билинейной и трилинейной фильтрацией, поскольку их технология уже реализует некоторое подобие сглаживания.

    API, Application Programming Interface, программный интерфейс приложения. Он присутствует в любой операционной системе, для того чтобы программисты использовали обращение к API вместо дублирования существующего кода. Что это значит применительно к 3D? Например, игра была написана на своем коде для вывода 3D изображения. Таким образом, она становится несовместима с большинством 3D ускорителей: авторы заложили в игру работу только с определенным ускорителем. В итоге, изготовители игр и оборудования пришли к созданию API, который каждый смог бы использовать. Это означает, что драйверы ускорителя будут работать с API, и игра будет работать с этим же API. Проще говоря, игра и ускоритель могут общаться на одинаковом языке. Самые популярные 3D API - OpenGL, Direct3D и Glide3D. Хорошие игры и ускорители поддерживают сразу несколько API для большей совместимости. Подумайте, кто будет покупать ускоритель, если он не будет работать с каждой игрой, и кто будет покупать игру, если она не будет работать с вашим ускорителем?

    API Extension, расширение API. Сначала познакомьтесь с термином API. Расширение API является некоторой надстройкой или добавлением к существующему API для оптимизации под требуемое аппаратное или программное обеспечение. Первое, что пришлом мне на слух, это Creative Labs EAX (работающий совместно с Microsoft DirectSound3D) и оптимизированный под 3dfx OpenGL (программное расширение для старого доброго API OpenGL).
    Какой API самый лучший?
    Этот вопрос в последнее время мне задают всё чаще. И однозначного ответа я дать не могу. Так как у каждого API есть свои преимущества и недостатки. Ну нет пока ещё в мире API который сочетал бы в себе гибкость, простоту, скорость, красоту!color="#800000">Direct3D слишком неповоротлив,color="#800000">OpenGL медленно развивается и не программируется,color="#800000">Glide постепенно умирает с моральным устареванием карт 3dfx. Есть ещё несколько API не столь знакомых широкой публике. Например,color="#800000">MeTaL от S3, который работает только на её собственных картах, а поддерживают его только игры на Unreal Engine.
    Но главная мысль этой статьи на примерах доказать какой API, на данном этапе развития, самый лучший (скорее самый оптимальный)! Начнем с Direct3D - этот API обладает наименьшей скоростью, но совместим со всеми 3D картами. Поддерживает вершинные и пиксельные шедеры (с версии 8). Под него написано большинство современных игр. Не отличается красотой и требует большой мощность всей системы. OpenGL - API обладает средней скоростью и не совместим с рядом 3D карт (преимущественно со старыми). Ограниченная поддержка шедеров. Его чащё всего используют в 3D шутерах, а D3D в авто симуляторах. Непонятная тенденция. Довольно красив и ощутимо быстрее D3D. Glide - это самый старый из всех графических API. Но в то же время самый красивый и быстрый. Многие удивятся, почему я его включил в статью, ведь он после 2000 года не развивается и новые игры на нем делают всё реже, а карты 3dfx, которые единственные его поддерживают, уже морально устарели. Самая мощная карта, которая может с ним работать - это Voodoo5 5500, её скорость лежит где-то в районе GeForce2 PRO. Скорость его работы поражает! Даже на машине с процессором Pentium 75 карта Voodoo 1 выдает в UT до 20 fps, а на компе с процессором Duron 800 карта Voodoo3 Velocity 100 8 Mb выдаёт до 100 fps в матче 12 ботов. Да и потом картами 3dfx обладают тысячи пользователей на территории бывшего СССР.
    Чтstyle="font-family:Arial;" size="2">обы сравнить их и получить достоверный результат, было взято 2 игры Quake III (Ver. 1,17) и Unreal Tournament (Ver. 4,36). Стендом служила следующая конфигурация:
    CPU: Duron 800
    Main Board: Soltek 75JV (KT133A)
    Video: Voodoo3 Velocity 100 8 Mb SDRAM*
    RAM: 128 SDRAM CAS 2
    HDD: Maxtor 740X 20Gb (7200 rpm)
    Monitor: DTK DE-570 15"
    *Вуду работала на стандартной частоте 143/143, хотя возможен разгон до 180/180.
    Настройки игр были таковы:
    Unreal Tournament: 800х600, 16бит, Текстуры и Детализация на максимум. Трилинейная фильтрация.
    Quake III: 800х600, 16бит, Текстуры и Детализация на максимум. Трилинейная фильтрация.
    Начнем с Q3. Проверка OpenGL не вызвала никаких затруднений. Была выбрана контрольная точка на арене и сделан скриншот. А для проверки Glide был установлен WickedGL, который как бы замещает OpenGL на Glide. И что же мы видим! На скриншоте в OpenGL видны разрывы в текстурах, и упрощение удалённых объектов, а на снимке под Glide этого всего нет! Да ещё и разница в fps почти в два раза.
    В UT разница была видна невооруженным глазом! D3D выглядит замыленным да и скорость в 21 fps, это совсем плохой результат. OpenGL выглядит лучше, но плохо отображается источник света и изображение с удалением становится менее детальным. Но при этом результат в 51 fps, что вполне играбельно. В Glide совсем другая ситуация. Текстуры четкие, замыливание начинается достаточно далеко, высокая детализация предметов даже на расстоянии. А fps держится на отметке в 80.
    ++++++++
    Вердикт однозначен! Смерть D3D! Самым качественным оказался устаревший Glide.Тем, кто не является счастливым обладателем карты Voodoo, могу посоветовать играть под OpenGL.

    Aspect Ratio, формат экрана. Отношение ширины экрана к его высоте. Например, разрешение 800x600 имеет формат экрана 4:3.

    Artifact, артефакт. Результат плохой реализации компрессии текстур. Если вы наблюдаете сжатую текстуру, и некоторые ее части кажутся "смазанными", то это и будет артефактом. На двумерных и трехмерных изображениях артефакты могут образовываться на стыке цветов.

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

    Bilinear Filtering, билинейная фильтрация. Эта возможность реализована в большинстве 3D ускорителей. Билинейная фильтрация позволяет получать графику с менее заметными пикселями и с менее выделяющейся блочной структурой. Она применяется для получения более сглаженных текстур, которые визуально приятнее. Как она работает? Берутся четыре соседних пикселя (или текселя), их цвета усредняются. В результате мы получаем один пиксель с усредненным цветом. Однако билинейная фильтрация может привести к тому, что объект потеряет "виртуальную" глубину или свой естественный вид. Здесь приходит на помощь другой вид фильтрации - трилинейная. Или более продвинутая - анизотропная.
    Bitmap, битовое изображение или битовая карта. Под ним понимают практически любое изображение, которое мы видим на экране компьютера. Оно состоит из массива точек, упорядоченных в вертикальные и горизонтальные ряды. Каждая точка (или пиксель) имеет атрибут - цвет. Совокупность точек формирует изображение. Чем больше битов выделяется под атрибут цвета, тем больше цветов мы увидим на картинке, она будет более естественно выглядеть.

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

    Blocky Filtering, блочная фильтрация. На самом деле это не метод фильтрации, а термин. Он описывает появление крупных "блочных" пикселей на текстурированных объектах. Если вы не совсем понимаете о чем я говорю, то включите Quake II в режиме software, и все увидите.

    Bump-Mapping, отображение шероховатости поверхности. Визуальный прием, используемый для придания поверхностям объекта характерных неровностей. Для этого разработчики привязывают по две текстуры к каждому полигону. Одна из них является обычной, базовой текстурой. Вторая - текстура смещения, описывающая неровности объекта. Возникает вопрос, почему бы просто не прорисовать эти неровности на текстуре объекта? Все упирается в освещение. При bump-mapping отражение света от неровностей меняется в зависимости от угла зрения, как в реальном мире. Поэтому сейчас произошел переход от использования текстур с прорисованными неровностями к использованию bump-mapped текстур.

    Bump-Maps, две текстуры, используемые для отображения шероховатости поверхности. С помощью этих текстур отображаются различные неровности объекта. См. bump-mapping.

    Clock Cycle, такт. Это одна операция микропроцессора, в ходе которой электрический ток проходит через процессор. При этом с помощью транзисторов производятся логические операции. Современные процессоры (в том числе и процессоры видеоускорителей) обычно выполняют несколько сотен миллионов тактов в секунду.

    Clock Frequency, тактовая частота. Параметр, показывающий скорость выполнения целочисленных операций. Тактовка производится с помощью генератора, и она помогает синхронизировать операции внутри чипа. Тактовая частота выражается в МГц или миллионах колебаний в секунду. Например, при тактовой частоте 200 МГц (мегагерц) процессор выполняет 200 миллионов тактов в секунду.

    Clock Speed, тактовая частота. См. выше.

    Collision Detection, обнаружение столкновений. Возможность 3D объектов взаимодействовать с другими 3D объектами естественным образом. Когда вы в 3D игре видите коробку на полу, то коробка "знает", что ей не следует проваливаться сквозь пол. Эти "знания" являются результатом работы по обнаружению столкновений. Процесс обнаружения столкновений постоянно совершенствуется, так что игры становятся все более "как живые". Сейчас даже маленькие объекты могут взаимодействовать с другими объектами весьма реалистично.

    Color Convergence, совмещение цветных растров. Для получения различных оттенков в цветном мониторе происходит совмещение трех растров: красного, зеленого и синего. Компьютерный монитор может осуществлять очень точное совмещение цветных растров.

    Colored Lighting, цветное освещение. Для отбрасывания теней может использоваться не только белый свет, но и цветной. Многие игроки сейчас считают этот эффект само собой разумеющимся, без него игры выглядели бы более серыми.

    Composite, композитный сигнал. В телевизионном сигнале комбинируются красный, синий и зеленый цвета. Такой термин чаще всего используют для обозначения композитного входа/выхода у 3D ускорителя. К такому выходу можно подключить телевизор и смотреть на нем компьютерное изображение. Либо передавать изображение в компьютер.

    Compression, сжатие. Сжатие приобретает все большее значение в компьютерной индустрии. Любой слушатель MP3 музыки вам это подтвердит. Как применяется компрессия в 3D видео? Сжатие - это возможность уменьшения размера файла без потери значительных графических деталей. 3D ускоритель быстрее работает со сжатыми текстурами. Если желаете узнать больше, почитайте про автоматическую компрессию текстур.

    CPU, Central Processing Unit, центральный процессор. Хотя некоторые аудио и видеокарты умеют независимо обрабатывать данные, почти все операции компьютера проходят через центральный процессор. Если сравнить компьютер с человеком, то центральный процессор - это мозг человека.

    Daughter Card, дочерняя плата. Так называется карта, для работы которой требуется еще одна плата. Примером дочерней карты является видеоускоритель Voodoo2. Он может работать только совместно с видеокартой. Связь между устройствами осуществляется по специальному кабелю. Voodoo2 ускорял только 3D графику, поэтому для прорисовки двумерного изображения требовалась отдельная карта.

    DDR-SDRAM, Double Data Rate SDRAM, память SDRAM с двойной скоростью передачи данных. Такая память способна передавать сигнал на обоих концах такта. Таким образом, скорость памяти виртуально увеличивается. К примеру, от 100 МГц до 200 МГц. DDR SDRAM сейчас используется в некоторых видеоускорителях nVidia GeForce, или других устройствах, требующих быстродействующую память.

    Dedicated Frame Buffer, выделенный кадровый буфер. Это некоторое количество памяти, используемое для хранения данных кадрового буфера и/или Z-буфера. Такая архитектура памяти называется раздельной (split memory architecture). Большинство 3D карт используют другую архитектуру памяти, где память для хранения текстур не отделена от памяти кадрового буфера. Естественно, там уже не существует "выделенного кадрового буфера".

    DVD, Digital Video/Versatile Disc, цифровой видеодиск, многослойный диск. DVD хранит 4,7 Гбайт информации на одной стороне в одном слое, что почти в семь раз больше стандартного CD-ROM (в среднем, 650 Мбайт).

    DirectSound. Является API производства Microsoft для работы со звуком. Игровые разработчики могут оптимизировать свои игры не под конкретные звуковые карты, а под DirectSound. Ну а так как это API, то подробнее про его работу вы можете прочитать в соответствующем разделе. DirectSound является частью API DirectX.

    DirectSound3D. Что же привносит окончание 3D в DirectSound API? Microsoft пытается реализовать трехмерное позиционирование звука. Первые варианты были не совсем удачны, но команда разработчиков делает свое дело, и API становится все лучше.

    Direct3D. Является графической частью Microsoft DirectX API. Почти все трехмерные ускорители и игры поддерживают Direct3D. Поэтому Direct3D играет значительную роль в современной индустрии, а производители видеоускорителей пытаются достичь хороших результатов в тестах Direct3D. Кроме Direct3D, существуют и другие API для работы с трехмерной графикой. Например, OpenGL или Glide.

    DirectX. API производства Microsoft. Стал стандартом де-факто, причину вы, думаю, понимаете. Сейчас этот API поддерживает множество устройств и приложений. Две самые важные части DirectX, это DirectSound3D и Direct3D.

    Displacement Map, карта смещения. Вторая текстурная карта, используемая при отображении шероховатостей поверхности. Карта показывает, каким образом на оригинальной текстуре отбрасываются тени от неровностей.

    Distortion, искажение, дисторция. Под дисторцией понимают искажение звуковых частот, производимых звуковой картой и колонками.

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

    Doppler Effecting, эффект Доплера. Заключается в повышении высоты звука при приближении объекта и понижении - при удалении. В играх эффект Доплера играет значимую роль, он делает игру реалистичнее. См. Aureal3D.

    Driver, драйвер. Программное обеспечение, являющееся посредником между различными устройствами и другими программами. Без драйверов оборудование будет невозможно использовать. Поэтому важной задачей операционной системы является управление драйверами.

    D3D (Direct3D) - см. Microsoft's Direct3D API.

    EAX, Environmental Audio, естественный звук окружающей среды. Является собственной разработкой Creative по позиционированию звука, а также и API одновременно. Что самое приятное, стандарт базируется на реверберации.

    Electro-planar, элетро-планарный. Так называется технология, используемая в плоских колонках. Электромагнитное поле заставляет материал плоских колонок вибрировать и излучать звук.

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

    Environment-mapping, использование карт окружающей среды. Текстура с использованием этой технологии будет аккуратно отражать окружающие текстуры и объекты.

    Fill Rate, скорость заполнения. Показывает скорость прорисовки пикселей на экране монитора. Чем больше скорость заполнения, тем лучше. Скорость современных видеокарт измеряется в миллионах пикселей в секунду.

    Filtering, фильтрация. Бывает билинейной, трилинейной и анизотропной. С помощью фильтрации ускоритель сглаживает текстуры, усредняя цвет пикселя с окружающими пикселями.

    Flat shading (плоское затенение) - каждая грань закрашивается определенным цветом. Для этого строятся вектора нормалей к поверхностям полигонов и определяется цвет (в зависимости от угла между нормалями и направлением на источник света). Все выглядит граненным.

    Floating-Point, числа с плавающей точкой, десятичные дроби. Число, состоящее из двух частей: целой части и дробной части, называется числом с плавающей точкой (не углубляясь в математику). Очевидно, что такие числа точнее целых. Процессор, хорошо выполняющий операции с плавающей точкой, сможет обеспечить лучшую игровую производительность. Современные игровые движки достаточно сильно опираются на вычисления с плавающей точкой. Как вы помните, в 1998 году AMD выпустила набор инструкций 3DNow! Этот набор инструкций ускорял операции с плавающей точкой. Оптимизированные для 3DNow! игры улучшали производительность на 5-10 кадров в секунду.

    FMV (Full Motion Video). Заранее созданный и не интерактивный видеоклип. Возможность Sony Playstation проигрывать FMV ролики из игр была важной вехой в борьбе против Nintendo64. Естественно, такой возможностью обладает и PC.

    Fogging, создание тумана. Туман является еще одним хорошим спецэффектом, реализуемым 3D ускорителями. Разработчики игр могут помещать туман для усиления других эффектов, например, кипящей воды. Или, что довольно грустно, туман может скрывать мелкие текстуры при удалении от них. Разработчики просто поленились создать крупные текстуры.

    FPS (Frames per Second), количество кадров в секунду. Очень часто производительность видеокарты измеряют по количеству кадров, которые она прорисовывает в секунду. Если вы посмотрите определение кадра, то поймете смысл. Чем быстрее ускоритель, тем быстрее он отрисовывает кадр. Хорошая видеокарта выдает в среднем 60 fps. Я не хочу полемизировать, но я так и не смог на глаз отличить 60 fps от 120 fps во время игры. Обычно же игры не выдают больше 40-50 fps. Кстати, чем выше разрешение, тем меньше количество кадров в секунду.

    Frame, кадр. Кадром называют одну статическую картинку, отрисованную на вашем мониторе. Если вы знакомы с мультипликацией, то поймете в чем тут дело. Следующий кадр немного отличается от предыдущего. Постоянная смена кадров создает эффект движения на экране. Благодаря смене кадров вы смотрите кинофильм, играете в игру или перематываете вниз эту страницу.

    Frame Buffer, кадровый буфер. Некоторое количество памяти на видеоускорителе выделяется для хранения временных кадров, которые будут затем выведены на экран. Это количество и называется кадровым буфером. Больший буфер позволяет хранить кадры с большим количеством цветов и большим разрешением.

    Game Engine, см. engine, движок. Программный код, на котором работает игра.

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

    Glide3D (Glide).Собственный API 3dfx для работы с 3D графикой. По-моему, программировать под него легче и удобнее, чем под Direct3D. Да и выглядит графика субъективно лучше. Единственная проблема этого API: он является собственностью 3dfx, поэтому его поддерживают только карты Voodoo. Если у вас есть старый эмулятор PS или N64, то он будет работать только под этим API. С точки зрения кодирования, Glide и OpenGL очень друг на друга похожи. Сейчас Glide3D умер, как и 3dfx.

    Gouraud Shading, алгоритм затенения по методу Гуро. Позволяет получить на поверхности объекта плавное затенение: во всех вершинах объекта строяться вектора нормалей; в зависимости от угла между нормалями и направлением на источник света определяется цвет пикселей (как при flat shading), соответствующих вершинам полигонов; цвета пикселей интерполируются (между вершин) по поверхностям полигонов. Блики выглядят не реалистично.

    Graphic Aperture Size, размер апертуры. Вы, наверное, никогда не встретитесь с этим термином, если не заглянете в BIOS компьютера. Величина апертуры указывает на размер системной памяти, которая может использоваться AGP видеокартой. Если у вас много лишней памяти, то вы можете получить небольшой прирост производительности, увеличив величину апертуры.

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

    Integer, целый. Если вы вспомните среднюю школу, целыми числами назывался ряд 0, 1, 2..., а также их отрицательные значения. В компьютерах целые числа определяются точно так же, но они играют другую важную роль. Компьютер обрабатывает целые числа намного быстрее десятичных дробей. Хотя целые числа не всегда удобны с точки зрения точности вычислений.

    Internal Rendering, внутренний рендеринг. Количество цветов, с которым видеокарта создает изображение. Обычно количество бывает 16-битным, 24-битным или 32-битным. Больше цветов означают большую красочность игры, но в то же время и некоторую потерю в производительности и количестве кадров в секунду. Большинство современных игр могут осуществлять 32-битный внутренний рендеринг.

    I/O Connector, разъем ввода/вывода. I/O означает ввод/вывод. Такие разъемы, или порты, существуют на устройствах, к которым могут подключаться другие устройства. Примером могут служить шины AGP и PCI.

    IRQ, Interrupt Request, запрос на прерывание. Как только устройство, например, видеокарта или звуковая карта, пожелает обратиться к центральному процессору, оно посылает прерывание. Прерывания в компьютере нумеруются от 0 до 15. По старым стандартам, два устройства не могли использовать одно и то же прерывание. Сейчас существуют технологические решения, обходящие это правило.

    ISA, Industry Standard Architecture, стандартная промышленная архитектура. Одна из стандартных шин расширения. Существуют и более современные шины: AGP или PCI. ISA работает на 8 МГц и предназначена для не очень требовательных к скорости передачи информации устройств: звуковых карт, модемов и сетевых карт. Сегодня ISA уже не используется в современных компьютерах, благодаря широкому продвижению PCI.

    LAN - см. Local Area Network

    Level of Detail, уровень детализации. Зависит от разрешения текстуры, к примеру, 256x256 и т.д. Низкий уровень детализации означает маленький размер текстур, а не визуальное качество картинки. Зато при низком уровне частота кадров увеличивается. Вот и решайте, что вам больше нужно: потрясная визуализация или бешеная скорость?

    Lighting Effects, световые эффекты. Процесс создания эффектов, симулирующих свет в 3D графике. Реализуется с помощью подсветки текстур и пикселей около виртуального источника света. Освещение является одной из самых красивых возможностей ускорителя, так как оно значительно улучшает восприятие графики.

    Local Area Network, локальная сеть. Группа компьютеров, физически соединенных кабелями в сеть и находящихся на недалеком расстоянии друг от друга.

    Local Memory, встроенная память. Такая память устанавливается на устройства. Например, на видеокарту встроена оперативная память для хранения данных. Эта память используется ускорителем для хранения текстур, Z-буфера и т.д.

    Low-Frequency Response, низкая частота. Низкими считаются частоты звука от 3 Гц до 120 Гц. Если не вдаваться в детали, то такой звук похож на бас, вы чувствуете его не только ушами, но и всем телом.

    MIDI, Music Instrument Digital Interface, цифровой интерфейс музыкальных инструментов. Здесь мы подразумеваем музыку в формате MIDI. При ее проигрывании используются короткие звуковые файлы (возможно, сгенерированные компьютером), у которых меняется частота и темп, а затем из таких кусочков создается музыка. Это очень напоминает использование алфавита для составления слов. Что самое хорошее в MIDI, такая музыка быстро загружается и может использоваться как на Web-страницах, так и в играх. С другой стороны, звук не всегда получается хорошим.

    miniGL. Драйвер, специально разработанный для частичной поддержки OpenGL ускорителями. Позволяет карте работать с OpenGL играми.

    Mip-Mapping, мип-мэппинг (мип-текстурирование). Процесс преобразования изображения или текстуры в меньшие по размеру изображения. MIP означает "многое в одном" (lat. "Multum In Parvum"). Алгоритм использует текстуру с различным разрешением (256x256,128x128,64x64 и т.д.) для разных частей обьекта (в зависимости от расстояния между наблюдателем и поверхностью и от угла под которым находится поверхность).
    Побочным эффектом mip-mapping'a является banding - разрывы между mip-уровнями (текстурами с различным разрешением). К тому же теряется резкость текстур.

    MMX. Разработанный Intel набор из 57 новых инструкций для x86 процессоров, ускоряющий работу с мультимедийными приложениями. На самом деле, этот набор не очень быстр и не очень хорошо подходит для 3D приложений типа игр.

    Multitexture(Multitexturing), мультитекстурирование. Процесс добавления множества текстур к объекту при программировании 3D игры. Они могут накладываться друг на друга, для отображения шероховатостей поверхности. Или использоваться друг с другом для создания одной большой 3D модели и т.д. При этом цвета текселей этих текстур смешиваются по определенному закону: add (сложение), modulate (умножение), substractive (вычитание) и др.

    Obstruction Effects, звуковой эффект препятствия. Наблюдается при прохождении звуком препятствий типа стен или других твердых предметов. Звуковой сигнал при этом ослабляется. Такой звук кажется глухим, его частота меньше оригинала.

    OpenGL, Open Graphics Language. Графический API, созданный и поддерживаемый Silicon Graphics. Мне этот API нравится намного больше Microsoft Direct3D, и я всегда предпочитаю играть под OpenGL.

    OpenGL ICD, installable client driver, устанавливаемый клиентский OpenGL драйвер. Как мне кажется, такой драйвер призван обходить "нагроможденность" API OpenGL. ICD реализует только игровые вещи API, например только те, которые нужны для игры в Quake II.

    Overclock, превышение тактовой частоты, "разгон". Обычно под этим термином подразумевают изменение перемычек или параметров BIOS для ускорения "железа" вашего компьютера. Сейчас производители видеокарт уже встраивают возможность разгона прямо в драйверы. Вы меняете несколько цифр и увеличиваете тактовую частоту. Раньше же всем этим приходилось заниматься вручную, с помощи отвертки/пинцета и...

    PCI, Peripheral Component Interface, шина периферийных компонентов. Является промышленным стандартом шины расширения компьютера. Через шину расширения подключаются различные устройства: видеокарты, сетевые карты и т.д. Стандартной частотой шины является 33 МГц, хотя существуют и более скоростные варианты. Думаю, PCI еще проживет достаточно долгое время.

    Per-Pixel Mip-Mapping, попиксельный мип-мэппинг. Это самая точная версия мип-мэппинга. Для увеличения производительности, мип-мэппинг может применяться не только к пикселю, но и к полигону и т.д. Но только при попиксельном мип-мэппинге тени получаются такими же детальными, как и отбрасывающие их объекты.

    Perspective Correction, исправление перспективы. Заключается в возможности правильно отображать текстуру под любым углом. Если вы посмотрите под прямым углом на квадратную текстуру, стороны выглядят одинаковыми. Но только стоит вам изменить угол, как квадрат оказывается перекошенным. Почему же так происходит? В реальном мире чем дальше объект, тем он кажется меньше. Поэтому и на нашем примере одна сторона кажется больше, а другая - меньше. Что и создает эффект трехмерности.

    Phong shading (затенение Фонга) - один из самых качественных типов затенения. Отличается от gouraud затенения тем, что вектора нормалей строятся для каждой точки изображения (соответственно требует много вычислений).

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

    Pixel, пиксель. Самый маленький объект на экране монитора. Дисплей состоит из пикселей. См. разрешение.

    Pixelation, пикселизация. Когда вы слишком близко приближаетесь к текстуре в игре, то вы можете заметить "квадратики", из которых она состоит. Это и есть пикселизация. Для примера, вы можете поставить на 21' мониторе разрешение 640x480.

    Point sampling - самый простой метод фильтрации текстур (ее отсутствие :-). Для определения цвета конечного пикселя используется цвет одного (самого близкого) тексела.
    Как видно на рисунке, результатом point sampling является пикселизация (гранулированность) изображения, хотя это самое точное представление исходной текстуры (bitmap'а).

    Polygon, полигон, многоугольник. Если вы вспомните геометрию, то многоугольником называется замкнутая двумерная фигура. Многоугольники часто называют полигонами. Полигоны комбинируются с сотнями других для создания цельной модели в 3D движках.

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

    Realtime, в реальном времени. Действие, производимое компьютером с той же самой скоростью, что и в реальной жизни.

    Reflective Mapping, отображение отражающих поверхностей. Техника, сходная с методом бегущего луча. Позволяет создавать текстуры, правдоподобно отражающие объекты вокруг.

    Refresh Rate, частота обновления. Частота, с которой монитор выводит статические изображения для симуляции движения. Измеряется в Герцах (Гц). Как я считаю, монитор с частотой обновления меньше 80 Гц вообще не следует покупать, так как это будет вредить ваши глазам. Кстати, если вы посмотрите на монитор компьютера через телекамеру, то заметите полосу. Она вызвана разными частотами обновления.

    Resolution, разрешение. Выражается в виде "кол-во пикселей по горизонтали X кол-во пикселей по вертикали", произведение дает число пикселей, показываемых монитором. Например, 640x480, 800x600 и т.д.

    Reverberation, реверберация, отражение. Естественный звуковой эффект, появляющийся в результате отражения звука от многих объектов. Проявляется в виде продолжительного эха. Эффект может осуществляться звуковой картой. Реверберацией называют и нежелательный дефект звука, когда происходят короткие перерывы звучания. Послушайте продолжительный взрыв в Half-Life и вы поймете, о чем я говорю.

    RISC, Reduced Instruction Set Computing, вычисления с сокращенным набором команд. Архитектура, при которой процессор в большом количестве использует упрощенные инструкции. Так как простые инструкции работают быстрее, это позволяет увеличить скорость выполнения различных задач. Если у вас есть приставка, типа Playstation, Nintendo64 или Dreamcast, то они как раз и используют RISC процессоры.

    SIMD, Single Instruction Multiple Data, один поток команд и много потоков данных. Упрощенно, SIMD позволяет процессору выполнять одинаковую операцию над несколькими потоками данных. Таким образом, процессор освобождается от повторного ввода одинаковых инструкций, что увеличивает производительность. Как Intel MMX и SSE, так и AMD 3DNow! используют SIMD для повышения производительности мультимедийных и игровых приложений.

    Scan Line Interleave (SLI), чересстрочная развертка. Мне не очень понятно, как появился такой термин, но 3dfx Voodoo2 активно его использовала. Две карты соединялись друг с другом, одна выводила четные строки, а другая - нечетные. Производительность, соответственно, увеличивалась. Такая технология позволяла не только повышать частоту кадров, но и использовать более высокое разрешение. Раньше считалось шиком иметь две карты Voodoo2 через SLI соединение.

    SGRAM, Synchronous Graphics Random Access Memory, синхронная графическая память с произвольной выборкой. Является основным типом памяти для графических карт. Считается, что SGRAM быстрее своего близкого родственника - SDRAM, благодаря возможности синхронизироваться с центральным процессором для получения оптимальной скорости и производительности.

    Software Rendering, программный рендеринг. Весьма ужасный режим рендеринга графики, не задействующий 3D ускоритель. Обычно медленный и не очень красивый. Является главной причиной изобретения 3D ускорителей. Если игра не поддерживает ускоритель, то она использует программный рендеринг.

    Specular highlight (блики) - имитация прямого отражения источника света.
    При простом наложении текстур могут возникать некоторые дефекты в изображении (глюки :-): когда камера (наблюдатель) близко приближается к объекту то текселы становятся больше, чем пикселы (один тексел заполняет собой несколько пикселов), то проявляется эффект пикселизации (блочности) изображения (см. point sampling); если текстура находится на большом расстоянии от наблюдателя и текселы становятся меньше пикселов (на один пиксел "претендуют" несколько текселов текстуры - см. mip-mapping), то проявляется эффект муара (ряби), так как в одном и том же пикселе все время рисуются разные тексели.

    Sprite, спрайт. Двумерное графическое изображение. Примером можно считать прицел в Quake2 или Half-Life.

    S-Video. Не будем углубляться в технические детали, S-Video является стандартом, который поддерживается многими 3D ускорителями. На них вы можете обнаружить разъем S-Video для подключения цифровых камер, видеомагнитофонов, телевизоров и т.д.

    Texel, texture element, элемент текстуры, тексель. Обычно текселем называют пиксель применительно к 3D.

    Texture. Графическая картинка, "натягиваемая" на полигональные каркасы в 3D. С помощью текстур мы получаем тот прекрасный трехмерный мир, который мы наблюдаем в играх.

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

    Texture Mapping, текстурное отображение. Процесс "натягивания" текстуры или картинки на 3D полигональный скелет. Также этот процесс называют текстурированием.

    Texture Memory, текстурная память. Часть памяти видеоускорителя, выделенная для хранения используемых для обтягивания объекта текстур.

    TFT (Thin Film Transistor), тонкопленочные транзисторы. Используются для создания тонких жидкокристаллических дисплеев.

    3D Positional Sound, звук с трехмерным позиционированием. Примерами реализации такого звука являются технологии Sensaura 3D, Aureal3D и DirectSound3D. Они позволяют программировать звук, позиционированный в трехмерном пространстве. Используют сложные математические алгоритмы.

    3DNow! инструкции. Набор AMD из 21 инструкции для ускорения скорости выполнения математических операций с плавающей точкой. Впервые набор был реализован в процессоре K6-2, а также набор был лицензирован Cyrix и Centaur Technology. Игры, использующие 3DNow! работают быстрее.

    Transparency, прозрачность. Объект, через который мы можем видеть другие объекты, называется прозрачным. Примерами в 3D графике могут служить стекло, вода, взрывы или лед.

    Trilinear Filtering, трилинейная фильтрация. Процесс применения билинейной фильтрации к каждой стороне текстуры. Улучшает четкость изображения и убирает пикселизацию. При этом типе фильтрации фильтруются не только текселы, но и mip-уровни, т.е. сначала вычисляются цвета 2-х пикселей в 2-х (соседних) mip-уровнях, а затем эти два значения смешиваются.
    Единственный недостаток трилинейной фильтрации - потеря резкости текстур.

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

    VGA, Video Graphics Accelerator/Array, стандарт графики VGA. В начале 90-х годов цветные мониторы VGA были весьма распространены, затем появился SVGA, с увеличенным количеством цветом и разрешением.

    VGA Output, VGA выход. Предназначен для подключения кабеля от VGA монитора к компьютеру.

    Volumetric Lighting, пространственное освещение. Эффект прохождения света через трехмерную преграду, типа тумана, облака пыли, дыма, пара и т.д.

    Volumetric Fogging, пространственный туман. Так называется использование "виртуального" тумана, который скрывает не прорисованные текстуры на некотором расстоянии для увеличения производительности. Этим очень увлекалась игра Turok 2. Хотя, конечно, лучше видеть туман чем текстуры, внезапно появляющиеся из ниоткуда.

    VRAM, Video Random Access Memory, видеопамять с произвольной выборкой. Такая память используется в 3D устройствах. Ее преимущество заключается в возможности одновременного обращения двух устройств. А это как раз и бывает весьма актуально в 3D.

    Vsync, Visual/Vertical Synchronization, вертикальная синхронизация. Возможность видеокарты синхронизировать обновление буфера с частотой развертки монитора, устраняя различные артефакты и аномалии. Некоторые производители видекоарт позволяют отключать vsync для повышения частоты кадров, однако это обычно приводит к ухудшению визуального качества изображения.

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

    Wavetable Synthesis - см. Wavetable и MIDI.

    Wavetracing, отслеживание звуковой волны. Так называется возможность звуковой карты воспроизводить реалистичные звуки с помощью отслеживания пути их распространения. Если вы слышите звук на некотором расстоянии от источника, то сейчас вы сможете определить, откуда он пришел. Также отслеживание звуковой волны позволяет корректно воспроизводить эхо.

    Z-Buffer, Z-буфер. Является частью памяти 3D ускорителя, выделенной под хранение координаты Z у трехмерных точек. Если вы вспомните геометрию, у каждой точки в трехмерном пространстве существует три координаты: X, Y и Z. Смысл использования Z-буфера очень прост: он позволяет видеоускорителю не прорисовывать текстуры, скрытые позади других текстур. Например, если вы заходите в игре за стену, то за ней вы не можете видеть другие объекты, а с помощью Z-буфера карта не будет их отрисовывать лишний раз. Z-буфер позволяет значительно увеличивать производительность. Также при его использовании точность позиционирования по оси Z улучшается.

    seo & website usability inet html os faq hardware faq memory video cpu hdd mainboard faq printer & scaner modem mobiles hackzone
    Windows 10 | Registry Windows 10 | Windows7: Общие настройки | Windows7: Реестр | Windows7: Реестр faq | Windows7: Настроки сети | Windows7: Безопасность | Windows7: Брандмауэр | Windows7: Режим совместимости | Windows7: Пароль администратора |  |  |  |  | Память | SDRAM | DDR2 | DDR3 | Quad Band Memory (QBM) | SRAM | FeRAM | Словарь терминов | Video | nVIDIA faq | ATI faq  | Интегрированное видео faq | TV tuners faq | Терминология | Форматы графических файлов | Работа с цифровым видео(faq) | Кодеки faq | DVD faq | DigitalVideo faq | Video faq (Архив) | CPU | HDD & Flash faq | Как уберечь винчестер | HDD faq | Cable faq | SCSI адаптеры & faq | SSD | Mainboard faq | Printer & Scaner | Благотворительность

    На главную | Cookie policy | Sitemap

     ©  2004