(Продолжение, начало см. МК №45(216)) Когда начинается разговор о том, какая из двух библиотек лучше, — DirectX или OpenGL, — последним «непробиваемым» аргументом сторонников «прямого икса» представляется уникальная поддержка пиксельных и вершинных шейдеров, позволяющая добиться невиданного реализма, особенно в создании сцен природы, «живых» бликов, текстуры тканей и человеческой кожи, рельефных теней и т.д. Действительно, такого в OpenGL раньше не было. Но именно «раньше». Теперь же у нас есть (точнее, скоро будет) новая спецификация —OpenGL 2, поддерживающая и вершинные, и пиксельные шейдеры, которая к тому же традиционно стабильнее и надежнее майкрософтовского чуда. А где узнать об этом подробнее? Во-первых, следует просмотреть сайты, описанные в предыдущей статье цикла, а во-вторых, читайте следующую, очередную нашу статью!

— один из наиболее серьезных профессиональных сайтов, насыщенный разнообразной информацией не только по OpenGL, но и по графике вообще. Тут, в частности, самый богатый выбор материалов по спецификации OpenGL 2, которая готовится к официальному выходу. Именно здесь можно скачать себе, причем абсолютно бесплатно, не только рабочие бета-версии драйверов, но также спецификации новой библиотеки и описания функций в пространных PDF-документах. Тут же можно получить советы по применению новшеств, найти линки на наиболее интересные свежие новости по данной теме и узнать о последних замыслах разработчиков. Последняя «горячая новость» — неофициальные комментарии «того самого» Джона Кармака, ведущего программиста Id Software, который морочит всему миру голову своим невероятным и до боли в сердечной сумке ожидаемым DOOM III. Искренне советую обратиться по данному линку и прочитать заметки великого игрового программиста.

В разделе Source Code («Исходники») здесь можно обнаружить массу программок различного назначения. Есть среди них и демки — это на заметку нашим читателям, пожелавшим принять участие в конкурсе. Хотя правилами конкурса демо-мейкеров МК запрещено использование сторонних дополнительных библиотек в своей демо-программе, но ведь мы с вами, дорогие читатели, хорошо помним, что OpenGL’овские библиотеки присутствуют в любом компьютере в обязательном порядке. А это значит, что вы совершенно свободно можете пользоваться возможностями описываемой библиотеки в полный рост. Так что читайте и радуйтесь. Только английский подучите.

Возможно, некоторого пояснения потребует малопонятный, но важный для понимания содержимого данного сайта термин White Papers. Им обозначают сопроводительные вспомогательные документы для некоторого устройства, программы, проекта и т.п. В данном случае это обширные пояснения и дополнения к официальной, но все еще незаконченной спецификации OpenGL 2. Ведь пока еще мы имеем дело только с так называемыми drafts, то есть набросками. Между прочим, инженерам-разработчикам можно задавать вопросы касательно будущего этого проекта и получать обстоятельные и аргументированные ответы или хотя бы отсылки на эти ответы в Сети. Естественно, вопросы должны быть достаточно «профессиональными», они должны удостоверять ваш высокий уровень владения темой и т.д. Неплохой шанс научиться хорошо обращаться с этим чудом до официального релиза. Пришел релиз — а вы уже патентованый специалист! Прекрасный подход к делу, искренне рекомендую.

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

Следующий наш пациент —(копирайт принадлежит Сербе Андрею). Как вы понимаете, это русский вариант сайта, но есть и английский. Очень интересный и поучительный ресурс. Автор чрезвычайно серьезно занят вопросами генерирования фотореалистического ландшафта. А какая, спрашивается, игра без ландшафта? На сайте выложена достаточно богатая документация по обсчету ландшафта. Кроме самого алгоритма расчета в документации обязательно приведен еще и подробный математический анализ этого алгоритма. И хотя такой подход большинству любителей программирования может показаться несколько занудным, он, в общем-то, единственно правильный. И правильный именно потому, что не понимая, почему программа производит ту или иную операцию, невозможно создать нечто хоть сколь-нибудь оригинальное и самостоятельное. К тому же это замечательный повод познакомиться с прикладными аспектами высшей математики, королевы наук современного мира!

Если кто из вас интересуется очень интересным методом трехмерной графики, предлагающим вместо полигонов использовать воксели (от английского volume pixel — «объемный пиксель») — мельчайшие частички трехмерного объекта, то добро пожаловать сюда же. Информации по воксельным алгоритмам в Сети, к сожалению, немного. Здесь же читатель найдет алгоритм воксельного ландшафта, не хуже, чем в Comanche-4, к тому же сам автор сайта написал на этом алгоритме программу, все исходники которой обещает предоставить в наше распоряжение. Само собой, все на чистейшем OpenGL и с обильными пояснениями.

http://pmg-ru.narod.ru(«Программирование магических игр») — сайт, посвященный в основном игростроению. Однако среди богатых информационных залежей, касающихся форматов файлов, изометрии, дизайна, ландшафтов, звука и нейронных сетей с искусственным интеллектом попадается немало полезных статей о программировании графики, в частности и под наши библиотеки OpenGL и DirectX. Должен, однако, честно предупредить всех желающих, что все то же самое можно найти и на — крупнейшей коллекции всякого программистского скарба, — причем в виде архивных файлов. Здесь, в тому же, есть и кое-что, чего нету в «Программировании магических игр», например, описание BSP-алгоритма. Впрочем, учитывая постоянную конверсию текстов в Сети, утверждать что-либо определенное об информационной недостаче в контенте того или иного сайта не приходится.

Ну а коль уж мы зацепили тему программирования игр, просто нельзя промолчать о находящемся на http://www.ixbt.com«Форуме разработчиков комьютерных игр», где можно и других поспрашивать, и самому кому-то что-нибудь хорошее сказать или сделать. Люди добрые, отзывчивые, к чужим проблемам с пониманием относятся. Так что если надумаете игру «лепить», так милости просим.

Если вы помните наш прошлый разговор, в рамках которого было уделено некоторое внимание сайтам, специализирующимся по OpenGL в среде Delphi, то тут я, конечно, никак не мог не упомянуть уже появлявшийся на страницах МК сайт «Королевство Delphi»—. Подраздел, посвященный OpenGL, имеет причудливое название «ЖиЛистая Delphi»; поддерживает его уже упоминавшийся ранее Краснов М.В., автор книг о программировании графики с помощью Delphi (их можно найти в любом магазине), а также известного сайта и многих on-line публикаций. Материал представлен как в виде лекций, так и в виде «Практикума по использованию OpenGL в Delphi». В целом, ничего из ряда вон выходящего, зато грамотно, доступно и очень полезно тем, кто использует эту среду разработки.

http://megaengine.km.ru — продолжение любимых занятий для тех, кто освоил на Delphi материал предыдущего ресурса. Сайт, по уверению автора, посвящен написанию движков, именно трехмерных и именно под эту среду. Тут можно найти документацию, а также исходники движка, написанного на Delphi 5 самим автором сайта и без ложной скромности названного им «Megaengine». Кроме того, есть страничка компьютерного юмора, чат и т.п. Сайт еще только развивается, так что, дельфийские мужи, присоединяйтесь — нечего уступать всяким там плюсам приплюснутым...

Оркестр, туш! http://nehe.gamedev.net — лучший сайт, посвященный программированию на OpenGL, в номинации «от новичка — до матерого профи»! Стараниями энтузиастов с вышеописанного «Программирования магических игр» было переведено на русский язык полтора десятка уроков с этого замечательного сайта, принадлежащих могучему перу «человека и компьютера» Джефу Молофи (Jeff Molofee), да продлит Аллах его годы! Этих уроков здесь просто навалом, и охватывают они практически все сугубо практические (простите за невольный каламбур) темы.

Тут и о начальных шагах, типа создания своего первого OpenGL-окна, и о создании масштабируемых шрифтов со всякими эффектными заморочками, и об алгоритмах наложения и масштабирования текстуры, эффектах тумана, прозрачности, наложении маски... Чего тут только нет! А главное то, что все эти материалы (а всего я на данный момент насчитал больше сотни статей!) можно изучать шаг за шагом, на манер самоучителя, а можно использовать как справочное пособие, если надо сделать что-то такое, за что раньше не брался. Я уже не единожды наблюдал на различных сайтах, в том числе и описанных выше, статьи, в конце которых значилась скромная приписка вроде: «По материалам nehe.gamedev.net», или «С использованием материалов nehe.gamedev.net». Пишут на сайт многие забугорные товарищи, хорошо понимающие OpenGL, есть там и уроки, специально посвященные игровому программированию, работе под Windows и всяким хитростям этой ОС. Так, например, описывается простейший модельный трехмерный движок со всей необходимой функциональностью и исходниками. Там же детально расписан процесс создания утилиты для перенесения модели из популярного формата трехмерной графики .3ds в этот «учебный» движок, описание формул движения модели на основе инверсной кинематики (простейшее, само собой — никто вам ноу-хау за красивые глаза не отдаст) и еще много всякой всячины. Очень важный момент: все примеры кода, содержащиеся в уроках, подаются на нескольких наиболее популярных языках программирования. То есть, сайтом могут свободно пользоваться любители Delphi, Visual Basic, Visual C++ и даже Фортрана! Аккуратный и последовательный подход к делу, согласитесь. Есть и масштабные проекты, и форум, и все остальное, что положено крупному и уважаемому сайту. В общем, я думаю, никто не уйдет оттуда обиженным.

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