CFA LogoCFA Logo Computer
Новости Статьи Магазин Драйвера Контакты
Новости
RSS канал новостей
В конце марта компания ASRock анонсировала фирменную линейку графических ускорителей Phantom Gaming. ...
Компания Huawei продолжает заниматься расширением фирменной линейки смартфонов Y Series. Очередное ...
Компания Antec в своем очередном пресс-релизе анонсировала поставки фирменной серии блоков питания ...
Компания Thermalright отчиталась о готовности нового высокопроизводительного процессорного кулера ...
Компания Biostar сообщает в официальном пресс-релизе о готовности флагманской материнской платы ...
Самое интересное
Программаторы 25 SPI FLASH Адаптеры Optibay HDD Caddy Драйвера nVidia GeForce Драйвера AMD Radeon HD Игры на DVD Сравнение видеокарт Сравнение процессоров

АРХИВ СТАТЕЙ ЖУРНАЛА «МОЙ КОМПЬЮТЕР» ЗА 2002 ГОД

Прямой Х и открытый GL

Роман aka Archivarius САВЧУК

(Продолжение, начало см. МК №45, 47 (216, 218)).
Основательно познакомившись с сетевыми ресурсами, живописующими нам прелести великого и прекрасного отраслевого стандарта OpenGL, мы теперь подошли к необходимости знакомства с его главным и, по-сути, единственным конкурентом —DirectX.

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

Если OpenGL — это библиотека, применяемая вообще для любых графических задач на любых платформах, то DirectX применим только на Windows и почти исключительно в рамках разработки компьютерных игр (В корне не согласен! А как же плагины для имеющих уши — тоже мне, мелочь! —прим. ред.) Что, конечно, нисколько не принижает его в наших глазах, а очень даже наоборот. Собственно, эта библиотека, а фактически даже среда разработки, создавалась именно с этой целью. Поскольку Windows скрыл от программистов непосредственный доступ к видеобуферу, программировать графику стало возможным лишь с помощью специально предоставляемого Windows Graphic Device Interface — Интерфейса графического устройства, программной надстройки над видеоадаптером, позволяющей программисту абстрагироваться от данных конкретного видеоадаптера, чем изрядно попортили себе нервы программисты времен DOS.

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

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

Так уж получилось, что не все языки программирования и особенно не все среды разработки приложений одинаково реагируют на различные графические библиотеки. Единственный язык, у которого принципиально нет никаких проблем в общении с ними, — это С++, причем практически все его реализации. И DirectX, и OpenGL прекрасно себя будуть чувствовать в общении с любым компилятором этого языка. Максимум, что вам потребуется, это знание некоторых особенностей подключения библиотек для различных компиляторов. Что же касается, например, Delphi или Visual Basic, то тут сложилась неоднозначная ситуация, требующая пояснений.

Обе означенных среды разработки имеют возможность работы с обеими библиотеками. Но лишь при наличии некоторых специальных добавок или настроек, подчас довольно сложных.

Особенно это касается Delphi, которая вообще с DirectX дружит очень неохотно и требует специальных библиотек. В то же время она совершенно спокойно работает с OpenGL, хотя для человека, привычного к С++, перейти на Delphi в этом плане будет сложновато по причине иного подхода данной среды к разработке приложений. Visual Basic же, начиная с пятой версии сугубо нацеленный на то, чтобы работать с «прямым иксом», несколько упрямится и требует сноровки при использовании OpenGL. Естественно, всем, кто собирается выполнять в этих двух средах программирования некие серьезные проекты, следует иметь в виду, что высокой скорости обработки графики, легко доступной программам на С\С++, добиться будет очень непросто. Опять-таки, все вышесказанное — мое личное мнение, впрочем, по большей части совпадающее с мнением многих других пользователей этих сред разработки и графических библиотек. Именно в связи со спецификой функционирования DirectX под «неродными» языками я решил посвятить эту статью в основном материалам, касающимся Delphi и Visual Basic. Итак, добро пожаловать в Сеть!

http://www.helloworld.ru — все мы, конечно (ну или почти все, кроме убежденных маньяков), начинали свой программистский путь с простейшего приложения под нахальным названием «Hellо, World!» Сайт с таким имечком занят именно тем же — просвещением начинающих. А также продолжающих, но основательно заплутавших. Интересен он именно обилием всяческой документации, учебников и примеров различного уровня сложности — от «чайника» до матерого «программера», — для всех найдется что-то интересненькое. Есть там и поучения в использовании DirectX; ничего особенного они собой не представляют, но это все же лучше, чем стандартный SDK с его примерами.

http://clootie.narod.ru — не слишко богатый, но чрезвычайно ценный сайт для всех поклонников «дельфийского оракула» в программировании. Содержит многочисленные примеры, а также библиотечные файлы для DirectX под Delphi. Примеры, поставляющиеся в составе SDK, переписаны и перекомпилированы под новую среду и прекрасно работают. Библиотеки «отрихтованы» и постоянно обновляются и дополняются, так что милости просим. Кроме того, на этом же сайте можно познакомится с новинкой от NVIDIA, только на сей раз не «железной», а софтовой. Это Сg — тулкит к компиляторам Borland Delphi и Borland C++Bulder, позволяющий программировать вершинные и пиксельные шейдеры для DirectX и OpenGL. Удивляться нечему. Дело в том, что NVIDIA, как всегда спешащая «впереди планеты всей», и тут опередила время. В готовящейся к выходу спецификации OpenGL 2 (напомню, что последняя релизная спецификация библиотеки носит номер 1.3) будет присутствовать невероятно мощный С-подобный язык программирования шейдеров, который, по-видимому, убьет монополию DirectX в этой области раз и forever. Предложенный же NVIDIA тулкит позволит программисту совместить возможности обеих шейдерных программулин. Да и с современным релизом OpenGL он тоже работает на правах многочисленных подключаемых дополнительных библиотек. Ведь OpenGL — формат открытый, в отличие от DirectX, и дополнительных библиотек от сторонних разработчиков для него существует немеряное количество. В общем, не будучи профессионалом в программировании трехмерной графики, хвататься за тулкит нечего. Но если интересно, то ознакомиться с ним будет полезно. Опять же, NVIDIA, как правило, плохого не делает :-).

Кстати, об открытости: Майкрософт клятвенно обещался сделать девятый релиз своего программного чуда открытым (ну-ну, знаем мы ихнюю «открытость») форматом и даже предоставить специальные возможности разработки дополнительных библиотек под DirectX 9. Каким будет SDK девятого «икса», известно пока что лишь избранным — разработчикам и бета-тестерам. А с обследованием вышедшей ближе к середине этого лета бетой DirectX 9 для пользователей можно ознакомиться на сайте http://www.megaplus.ru/clause/art_434.htm. По результатам исследований, в Quake III Arena девятый «икс» дал 218.5 fps против 215 у восьмого; в GTA 3 аналогично 87 против 84, так что некоторая перспектива ускорения работы DirectX-приложений только за счет обновления софта есть. А что ждет программистов — увидим.

http://www.crazyentertainment.net — здесь гнездится проект JEDI Graphics. Джедаи тут рисуют, значит :-). А рисуют они не что-нибудь себе, а трехмерные приложения на основе DirectX да еще под Delphi. Собственно, именно на этом сайте выкладывается созданный усилиями энтузиастов DirectX под Delphi. Библиотеки переписываются и перекомпилируются; правда, восьмой версии не ищите, имеет место только седьмая и некоторые участки восьмой. И то хорошо. Сейчас вовсю кипит работа по переложению восьмой части. Можете даже поучавствовать, если чувствуете в себе силушку богатырскую :-). Именно отсюда файлы «дельфийского икса» начинают кочевой путь по великой Сети, оседая везде, где уважающие себя люди пишут о Delphi. Именно сдесь герои создают основу для нормальной графики под любимую многими платформу. Да пребудет с ними Сила!

http://www.infocity.kiev.ua/pr/content/pr015.phtml —Виртуальный город компьютерной документации. Очень величественное название, но довольно убогое содержание. Однако тут можно найти уроки DirectX под все тот же VB, официальный майкрософтовский (а значит, совершенно бесполезный) FAQ по DirectX 8, еще кой-какую документацию, достаточно стандартную и общеизвестную. В нашем обзоре этот сайт упоминается, собственно, именно из-за толковых уроков VB. Точка.

http://reactor.ru:8101/preview-directx8/preview-directx8.shtml. Именно с этой странички я порекомендовал бы начинать свой путь по моим ссылкам тем, кто уже поработал с OpenGL и решил открыть для себя прямой Х, или тем, кто уже знаком с ним, но еще не общался с его восьмой версией... Или тем, кто хочет профессионально «заточить» свою программу под конкретную видеокарту. Или тем... Короче, замечательный сайт, посвященный графическому «железу» и специфике программирования графики в связи с его особенностями. Очень правильный подход, как по мне, особенно если учесть, что обе рассматриваемые нами библиотеки не в последнюю очередь создавались ради абстрагирования програмного кода от характерных фич тех или иных ускорителей графики с одной стороны, а с другой — для того, чтобы програмно переложить на их широкие плечи рассчет сложнейших сцен и анимации, разгрузив центральный процессор.

Единственный, но очень большой недостаток сего чуда — его древность, большинство материалов сайта относятся к 2000 году.… Однако для начала сгодится. А более новую и продвинутую информацию по вопросу можно найти где-то еще. Где? Расскажем со временем.

http://vbstreets.da.ru — один из крупнейших сайтов, посвященных такому популярному языку программирования как Visual Basic. Для нас он интересен прежде всего тем, что содержит багатейший материал, рассказывающий о программировании графики под данный язык. На сайте присутствуют как учебники и уроки по программированию под DirectX и OpenGL, так и готовые трехмерные движки, демки и программы с утилитами разной степени полезности, но неизменно весьма поучительные.

Среди движков имеется полный набор их, отсортированный по видовым характеристикам. Это важно, такого правильного набора я не встречал больше нигде, даже на специализированных сайтах движков. Движок для платформера, для аркады, для DOOM’оподобной игры, для правильной «трехмерки», с утилитами для «умного» подключения DirectX, а главное — все это багатство поставляется на шару и с преобильнейшими комментариями разработчиков. Учиться, как говорится, не переучиться.

Там же есть разделы о графике неигровой и не «библиотечной», а обычной, «виндоусовской», а также материалы о применении графики в Интернет.

Есть там и вовсе замечательный раздел, всецело посвященный программированию игр. Именно там находится серия из девяти статей Михаила Эскина «Как написать «игрушку» на VB», в которой достаточно подробно и разносторонне освещены особенности работы DirectX под этой средой. Как обычно, это оказывается гораздо проще, быстрее и логичннее, чем на С++. Там же находится интереснейшая «Памятка начинающему гейм-мейкеру от Сергея Никифорова» и FAQ по созданию игры от замысла до релиза (крайне полезная вещь для тех, кто подумывает о своих играх всерьез, а не как о хобби). Алгоритмы навигации, искусственный интеллект, настройка цветности монитора под определенные в игре установки, знаменитые «Секреты программирования игр» и даже ссылка на страничку Buka Entertainment, где рассказывается о том, как оформить и подать заявку на публикацию своей игры. Однозначно, the best!

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

(Продолжение следует)

Рекомендуем ещё прочитать:






Данную страницу никто не комментировал. Вы можете стать первым.

Ваше имя:
Ваша почта:

RSS
Комментарий:
Введите символы или вычислите пример: *
captcha
Обновить





Хостинг на серверах в Украине, США и Германии. © sector.biz.ua 2006-2015 design by Vadim Popov