InfoCity
InfoCity - виртуальный город компьютерной документации
Реклама на сайте







Размещение сквозной ссылки

 

Тотальная интеграция путем выбрасывания ненужных органов


(или Поставил я DirectX8)


Antiloop


Здраствуйте мальчики и девочки. Как вы уже наверное знаете, большой и умный Microsoft (aka ®) выпустил восьмую версию своей библиотеки для программирования игр, а также профессиональных мультимедиа-приложений DirectX под номером 8.

Вот так. Кормите его теперь чем хотите. Докачав последние метры Software Development Kit, я распаковал его в специально подготовленную заранее папочку. Затем проинсталлировал этого гада куда-попало, ну и наконец сел разбираться.

Посмотрев примерчики и сказав "Н-да.... Где-то я уже это видел...." я полез в документацию. Среди бесчисленных килобайтов расписывания какие мы крутые и как это все у нас хорошо, я нашел статейку под заголовком What's New in DirectX 8.0

Интеграция, батенька и еще раз интеграция. То бишь воссоединение народов в едином трудовом порыве. Под жизнеутверждающим утверждением, что наступает новая эра, Microsoft объединяет свои самые важные части DX: DirectDraw и Direct3D в одно целое, которое не долго думая назвало DirectX Graphics. Но простите, после беглого просмотра документации, кое что бросается прямо в глаза. Это кричит и орет одним своим отстутствием! Где DirectDraw????? Нету его. Все, отпрыгался курилка.

То есть он конечно есть, но в виде поддержки предыдущих частей DirectX. Например вы можете использовать объект DirectDraw7 (Тсс... Пока VB-шники не услышали!!! Они то этого не могут!.... =80[] Так что, получается под громкими криками об интеграции MS подразумевало просто выкидывание одной части? Вместо формулы 1+1=1 получилось нечто 2-1=1 Математически, конечно, правильно, но верните нам Blt!

На самом деле MS оставила нам, отсталым, возможность баловаться со спрайтами. Но теперь это у нас происходит через 3D. Мне понравилось фраза "...2D симулируется через 3D."
Радуйтесь! Мы дожили до такого времени, когда симулируется 2D, а не наоборот! В чем тут дело? Ну представьте себе спрайт. Плоский, никому не нужный кусок картинки. Давайте слепим вместе два треугольника, так чтобы получился прямоугльник, натянем на него текстуру - вот вам и спрайт. Пользуйтесь на здоровье.
Особенности такого способа:

  • Коллосольная скорость рендеринга на хороших машинах с акселераторами
  • Посредственная скорость 2D на быстрых машинах, но без акселераторов (ну как теперь секретаршам в Принца играться???)
  • Возможность крутить-вертеть модель-прямоугольник вместе со спрайтом. Это жрет меньше памяти под картинки разных позиций, сберегает время художников
  • Возможность накладывать на спрайты много разных эффектов типа альфа-блендинга и т.п. как на модели
  • Многократно возросшая сложность программирования этого псевдо-2D по сравнению с DirectDraw. Всякие там матрицы, кватернионы... Страшно?... А что у нас по математике в институте было?..
  • Собственно все это можно было делать и во всех предыдущих версиях Direct3D, но тогда это всякими умными вещами типа опостылевшей "интеграции" не называлось!!!!!!!!! А было просто Direct3D.

Вобщем все тут с ними ясно.

Помните такую вещь как Direct3D:Retained Mode? Помните как MS грозилась ее прикрыть, обещая светлое наступление Farengheit'а? Вы не поверите, но D3D:RM остался! Чего-то у них там с силиконами не срослось, ну и чтобы не позориться вытащили на свет божий D3D:RM, немножко отряхнули, тут подмазали, там загладили, назвали все это дело умным словом Direct3DX (ну букв-то мало, а слово придумывать надо) и запустили в производство. Так что у нашего рабочего класса осталась-таки возможность загружать полюбившиеся .x-файлы и натягивать текстуры без всякой там возни с треугольниками, стримингом вершин и тому подобное требухи.

Чего у нас там дальше по плану? DirectSound? А нет больше такого! Знакомьтесь с еще одним гибридом от Microsoft - DirectX Audio. Что они там наваяли с DirectSound - не скажу, сам еще не сильно разобрался. Вобщем решили они объединить его с DirectMusic. Кому и на что вообще сдался последний я не знаю. Вставлять MIDI в коммерческие блокбастеры по моему перестали еще со времен Warcraft (ну был там еще AoE от одного малоизвестного производителя. Наверное они ради него всю затею с DirectMusic провернули). Так же идея с Downloadable Sounds поперхнулась еще в начале тарелки. Обыкновенная трэкерная идея, которая работала еще на Спектруме, сейчас аппаратно не поддерживается даже на моей Ямахе XG. А оставлять MS-драйверы от Виндов ради совтверной поддержки непонятно чего????..... Ну вы меня поняли :)

А кто-то там кажется встроенный EAX обещал? Кстати в DirectX Audio оставили предыдущую градацию на DirectSound и DirectMusic, так что никто никуда таинственно не пропадал.

Больше, на счастье, Microsoft ничего интегрировать не стал, оставив DirectInput и DirectPlay существовать по отдельности. Наверное из-за поло... ой!... программной несовместимости.... :)

В DirectInput у нас аж четыре (!) нововведения:

  • Action Mapping - я не очень понял, но по моему теперь мы на уровне DX сможем создавать виртуальные устройства для каких-либо физических устройств скажем джойстика. То-есть теперь мы будем не отслеживать положение оси X джойстика и в соответсвие с ней рулить вправо или влево, а создадим виртуальное устройство DIAXIS_DRIVINGR_STEER и будем получать информацию с него.
    Нафига козе баян.......
  • Объект DirectInput теперь представлен классом DirectInput8
  • Целых два (!!) новых свойства клавиатуры DIPROP_KEYNAME и DIPROP_SCANCODE, которые получают соответственно локализованное имя клавиши и скан-код клавиши.
  • Какая-то реорганизация в разделе джойстика, при которой положение оси Z теперь можно получать не из пары отдельных типов, а из массива этих же самых типов.

Согласитесь, что уже ради этого стоило выпускать восьмую версию библиотеки!

В DirectPlay более-менее увеличенное количество нововведений. Полностью переписан объектный код и теперь у нас есть объекты DirectPlay8Peer, DirectPlay8Client и DirectPlay8Server. Так же добавлена возможность голосового общения (Которая применима лишь в условиях городских локальных сетей на 100 мегабит в нескольких закрытых Городах Науки нашей необъятной Родины за символическую плату в месячный доход американца средней упитанности)

Вобщем MS на месте как вы видите не сидит, а усердно на нем топчется. Теперь придется сидеть и переписывать во всех туториалах цифирки 7 на 8, да и вдобавок отправлять все учебники по DirectDraw на свалку или в лучшем случае в какой-нибудь заплесневелый архив НЕЧасто зАдаваемых ВОпросов.
А что поделаешь - интеграция.....

Приятного программирования.


Реклама на InfoCity

Яндекс цитирования



Финансы: форекс для тебя








1999-2009 © InfoCity.kiev.ua