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, 50 (216, 218, 221))

Итак, драгоценнейшие мои, завершающий обзор материалов Великой Всеобъемлющей Сети, посвященных программированию под DirectX и OpenGL, мы начнем со вполне классического по содержанию Сайта Билла (http://members.aol.com/_ht_a/billybop7). В первую очередь он интересен полноценной игрой на основе второго «Quake» с собственным движком, написанном на DirectX. В связи с наличием свободно распространяемых исходников, этот сайт особенно стоит рекомендовать начинающим, но много о себе возомнившим :-) игровым программистам. Вдобавок, конечно, неизбежные в таком случае обучающие материалы, которые тоже имеет смысл просмотреть. Естественно, на английском языке.

http://lamo.narod.ru/gl_x — сайт, на котором заявлено чуть ли не больше разделов и материалов, чем на лучших из анонсированных ранее порталах. Однако… пока ничего нет. Ничего, кроме замечательной библиографии со множеством ссылок на наиболее важные или интересные для программиста-графика уголки Инета.

http://3du.da.ru —3d Universe, довольно интересный ресурс из числа «сугубо индивидуальных проектов». Альтернативный метод трансформации треугольников, BSP-деревья применительно к трехмерной графике, стандартный обзор по матричным операциям, эффект «блика на линзе» (lens flare), проверка пересечения луча с треугольником и просто полезные короткие информативные статьи по различным формам работы с DirectX. Нельзя не отметить, что, не в пример великому множеству подобных сайтов, материалы не скопированы откуда-то из Сети, а добросовестно написаны самим автором, и написаны неплохо. Не могу не отметить статью о матричных трансформациях, которую считаю обязательной к освоению всеми, кто программировать хочет, а высшую математику учить по толстому учебнику — нет. Действительно, «рассказано человеческим языком», даже я понял :-).

http://www.shaderx.com/direct3d.net — один из «глубоко личных» сайтов, принадлежащий Вольфгангу Энджелу и почти полностью посвященный шейдерным технологиям. Естественно, что для использования этих примеров и уроков по прямому назначению необходимо иметь в своем распоряжении как минимум GeForce 3 — предыдущие модификации шейдеров не поддерживали. Нашлось место на сайте и простым человеческим радостям, вроде возможностей DirectX 7.

http://www.directxfaq.com — база знаний по DirectX, состоящая из откровений различных разработчиков и извлечений из новостных групп. Вот как позиционируют себя сами авторы: «Не официальный сайт, но нечто построенное на дискуссиях, тестах и советах от DirectX-разработчиков и DirectX-гуру». Пожалуй.

Тут имеются, например, предложения работы людям, хорошо разбирающимся в DirectX, возможность опросить «лично» понравившихся авторов публикаций или просто известных в Сети специалистов. Имеется неплохой форум, чат и даже DirectX-магазин! Однако сайт посвящен, как ни странно, в основном DirectX 7 — видимо, давно не обновлялись основные материалы.

У многих искушенных читателей уже давно возник закономерный вопрос: «Простите, а почему это автор до сих пор ни словом не обмолвился о сайте творцов DirectX, компании «Майкрософт»? Извольте: http://search.microsoft.com. И шо, вам таки стало легче :-)?

И тут, придя к этой отправной точке, мы соприкасаемся с одним важным моментом, который заинтересует всех, работающих с DirectX не на работе, а «на дому». Не знаю, то ли так сложилось, то ли это происки жестокого «Мракософта», но пакет DirectX, в том числе и тот, который вы можете официально и совершенно бесплатно скачать с вышеуказанного сайта, состоит из двух частей-версий —retail и debug. Первая предназначена для компиляции готового DirectX-продукта, вторая предоставляет возможности по обработке ошибок (дебаг, короче, — чего тут много говорить-то). Так вот, объем предоставляемого «Майкрософтом» для скачивания пакета в данный момент равен от 240 до 360 Мб, в зависимости от версии и полноты. Казалось бы, сама библиотека, то есть .lib- и .h-файлы, а также runtime-компоненты, занимают совершенно мизерный объем, их можно скачать за час даже при «забитом» канале. Но великий «Мракософт» как всегда не даст вам шанса на выбор — там почему-то считают, что вы ну никак не обойдетесь без многочисленных примеров (часто дурацких) и утилит (часто очень полезных, хм-м). Поэтому вы не сможете выбрать объем и состав инсталлируемого пакета — все или ничего!

В долгих поисках мне повезло найти один-единственный диск (в Киеве, на книжном рынке Петровка, изобилующем, как известно, еще и дисками), на котором был DirectX 8.1. Но… только retail-версия! Почистить ошибки на нем можно только «вручную», а в среде Visual C++ 6.0 он вообще не желает компилироваться. Честно скажу, заставить его компилироваться можно, но это будет стоить много килограмм нервов и бочек испорченной крови. О том, насколько сложно работать с программой без привычного автоматического дебага, я даже и упоминать не буду. В VB последняя версия DirectX входит «автоматически», в 6-ю версию — DirectX 8.0, в .NET — DirectX 8.1. Для Delphi нужно искать библиотеки заголовочных файлов от сторонних разработчиков-энтузиастов (об этом было в предыдущих статьях цикла), например, можно использовать разработки JEDI Project, которые в данном деле продвинулись дальше всех. Можно написать «вход» в DirectX dll-файлы и самостоятельно, но об этом, если любимая редакция захочет, мы поговорим как-нибудь специально :-).

Самый лучший DirectX-набор я нашел на диске к книге Д. Гончарова и Т. Салихова «DirectX 7 для программистов. Учебный курс» издательства «Питер». Там есть оба варианта библиотеки, есть и утилиты, и примеры… но, как уже ясно, для DirectX 7. Однако я бы рекомендовал именно этот вариант для всех желающих учиться. Почему? Во-первых, со времени DirectX 7 совершенно не изменилась ни реализация «плоской» графики, ни реализация аппарата T&L (transforming and lighting), трансформации и освещения объектов. Именно с ними, по большому счету, работают все ускорители всех фирм, до линейки GeForce 3 включительно, в которой впервые появилась частичная (особенно обращаю Ваше внимание, читатель, — частичная!) аппаратная поддержка шейдеров. То есть, если вы не рассчитываете всерьез на работу с аппаратурой типа GeForce 4 и самых модерновых Radeon’ов, то седьмого «икса» вам за глаза хватит.

Однако если кто-то из читателей «МК» найдет в Сети нормальный, «разборный» дистрибутив последних DirectX, или хотя бы просто debug-версию его runtime-компонентов (.dll-, .h-, .lib-файлы) — пусть напишет в родную газету! А все фанаты «прямого икса» будут ему безмерно благодарны!

А вот на http://directxdesign.narod.ru/about.htmвы можете посмотреть ставшую классикой подборку базовых обучающих материалов, а вместе с тем ознакомиться с новостями игростроения (в частности тем, что касается DOOM III), почитать небезынтересные воспоминания одного из игростроителей о начале его славных дел, что будет интересно всем, кто решился или собирается связать свою жизнь и зарплату с созданием игр.

Есть тут обучающие материалы и по DirectX 7, который все еще de facto является лучшим инструментом для создания «плоских» игрушек (в восьмой версии DirectX двухмерная графика фактически не изменилась совсем, перекочевав туда из седьмого «икса»), а также по DirectX 8.0, 8.1. В частности, есть там и подробный разбор шейдерного программирования «для чайников».

Естественно, как хорошо известно любому «сетевику», вопросы, мучающие по ночам и не дающие часами встать из-за монитора, следует разрешать путем постановки этих вопросов на форумах. http://www.kuban.ru/forum_new/forum2/arhiv/1093.html — это очень неплохой пример информативного форума, здесь даже в архиве можно почерпнуть не меньше, чем на некоторых специализированных сайтах. А уж сколько можно получить при продуктивном многостороннем общении! Форумов в Сети, конечно, немеряно, но я лично нашел решение нескольких проблем подряд именно здесь, потому именно этот ресурс и рекомендую. Кроме того, рекомендую порыскать по форумам вообще — найдете много учителей и советчиков, просто друзей и соратников. А вообще, у меня такое впечатление, что «кубанцы» все поголовно графику программируют, блин…

http://gdsw.narod.ru/directx.htm. Сайт хорош, а главное, посвящен трепетной для нас теме — созданию компьютерных игр, не только с помощью специализированных графических библиотек, но и просто с помощью того же С++ под Win32. Есть статьи о графике вообще, об игровом интеллекте (в смысле, не об умственных способностях играющих, а об искусственном интеллекте в играх :-)).

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

А теперь общее замечание. Обращайте внимание на баннеры, размещенные на страничках. Поскольку большинство сайтов — любительские (лучше бы сказать, «принадлежащие энтузиастам»), то почти все они входят в баннерообменные сети по своей тематике, и баннеры на страничках, соответственно, принадлежат таким же тематическим сайтам. В общем-то, «гуляя по баннерам», вы сможете обнаружить множество полезного и интересного для себя материала. Я даже умышленно опускаю описания сайтов, баннеры которых находятся на уже упоминавшихся страничках (во-первых, все не опишешь, во-вторых, опускаются все-таки менее информативные сайты).

Ну и, наконец, http://www.vvsu.ru/dkcsc. Господа! Запомните эти простые английские буквы! Заучите их на память. Потренируйтесь набирать этот адрес автоматически сразу после включения компьютера. Понадобится.

Если помните, когда речь шла о сайтах, специализирующихся на OpenGL, я вам особенно рекомендовал Nehe Productions, насыщенный замечательными уроками Джейка Молоффи со товарищи как лучший OpenGL’евский сайт из числа мне известных. Ныне возрадуйтесь! Ибо есть и для поклонников DirectX чудо не менее чудное, а местами и поболе! И находится это чудо, как вы, конечно уже догадались, именно по вышеупомянутому адресу.

Мне радостно и приятно завершать наш обзор на столь возвышенной ноте, ведь сайт посвящен именно подробному обучению работе с DirectX 8, начиная с самых азов и до инструкций к самостоятельному написанию вполне живого «движка» или утилиты для работы с библиотекой. Подробно и обстоятельно, с полностью прописанным кодом, автор излагает особенности не только графической компоненты библиотеки, но и DirectInput, описывает работу с мышкой и клавиатурой, обработку обмена данными через сеть, и т.д. и т.п. Ресурс постоянно обновляется, вносятся изменения, предложенные почитателями, можно «заказать» тему урока или прислать свой полезный материал.

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

Именно здесь, например, есть полные исходники утилиты, позволяющей подробно выяснить возможности вашей видеокарты по обработке команд DirectX. Не просто узнать количество видеопамяти и частоту памяти и ядра, а разобраться, какие из функций библиотеки могут быть машинно ускорены, а какие — нет, на вашем конкретном компьютере. Большинство (если не все) современных игр и графических редакторов имеют в своем составе подобную «сокрытую» от пользователя утилиту, позволяющую настроить приложение в соответствии с возможностями машины клиента. Помните «Настройки» в какой-нибудь из ваших любимых игр? То-то! А тут написано, как самому такое сделать. Это уже серьезный шаг в профессиональное программистское будущее. Чего вам и желаю!

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






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

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

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





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