О сайте
  Новости сайта
  Почитать
  Утилиты
 
  Help Blitz3D
 
   

 

 

 

 

 

 

 

 

 

 

Создание LightMap для Blitz3D

Сначала разберемся, что такое LightMap.
Это всего-навсего обычная текстура (может быть даже и не цветной), на которой изображены заранее просчитанные тени. Когда она накладывается на объект поверх текстур материалов, получается имитация теней.
Например, Вы создали комнату в Максе и расположили в ней источники света так, как они будут в игре. Теперь Вы можете получить текстуру со всеми тенями ( LightMap ), а в игре после загрузки этой комнаты наложить ее определенным способом и получить намного более реалистичную сцену, чем без теней. Главный недостаток- неподвижность теней, но для стен, неподвижных предметов подходит в самый раз при условии, конечно, что сам источник света тоже будет неподвижным. Огромное достоинство - практически не требует ресурсов и не загружает процессор, в отличие от динамических теней. С помощью LightMap темные углы в Вашей комнате будут темными, а светлые - светлыми.
Сравните и найдите отличия
.

Без теней   С тенями

На сайте http://hiromych.narod.ru описано, как получить текстуру с тенями в 3DS Max 5 (хотя версия Макса здесь не играет роли) отдельно от модели, а затем в программе средствами Blitz-а наложить её на модель. То есть сначала загружается модель, потом текстура с тенями, а уже затем она накладывается на модель вторым слоем.

Такой подход меня не устраивал, так как, во-первых в Максе много лишней возни, а во-вторых - нужно в программе писать лишние строки для каждого загруженного уровня или объекта. Хотелось, чтобы тени загружались вместе с моделью и были бы там уже наложены как надо.

После долгих мучений в попытке наложить второй слой в Максе выход всё-таки был найден. Помогла программа Global Illumination Editor ( gile[s] ), которая специально для этого и предназначена! Она позволяет загружать модели в форматах 3ds и b3d (и ещё нескольких не столь важных) и сохранять в них же. Кроме этого есть опция Merge, которая позволяет добавлять в сцену объекты из других файлов, которые, естественно, можно свободно перемещать и масштабировать. Потом Вам остаётся всего-навсего добавить желаемые источники света с нужными параметрами (есть и точечный и направленные) и нажать кнопку Render. После этого можно сохранить результат, причем в любом просмотровщике 3D - моделей Вы увидите уже НАЛОЖЕННЫЕ тени. А в Blitz-e Вам достаточно будет написать только что-нибудь типа room=LoadMesh ("room.b3d"). Текстура с тенями должна лежать в той же папке.

Интерфейс программы сделан очень удобно и похож на 3DS Max, поэтому у знакомых с этим редактором трудностей в освоении не должно возникнуть.

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

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

Я делал так: загружал модель комнаты, расставлял лампочки там, где они будут в программе и включал рендеринг. Затем эту модель комнаты с уже наложенными тенями я сохранял в в формат b3d, и... Всё выглядело прекрасно, пока я не решил уже в программе создать новый источник света в этой же комнате. Не тут-то было! Никакой разницы не было, и даже манипуляции с AmbientLight не оказали никакого действия. Оказалось, что gile[s] сохранил модель со своими источниками света (как дочерними объектами) и никакие другие тут не работают. Мне же хотелось, чтобы лампочка мерцала, как огонь в известном примере cubed, и стена, соответственно, тоже. Долго я мучился и, отчаявшись, задал вопрос на форуме. Ответили практически сразу.

Оказывается, чтобы работало динамическое освещение, всего-навсего в gile[s]-е перед сохранением нужно проверить в материалах, чтобы не стояла галочка возле FullBright.

А можно сделать с помощью этой же программы вершинное освещение, и если у Вас достаточно много вершин в объекте, то можно обойтись и без текстуры с тенями. Gile[s] просто просчитает цвет каждой вершины с учётом освещения и всё! Для этого зайдите в настройки Lightmap (Ctrl-L), там будут материалы, и какой материал Вам нужно, чтобы был с вершинным освещением, перетащите мышкой в ветку Vertex Light.

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

Рекомендую всем кодерам эту программу!

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

15.07.2007 Blitz-coder

 

 
Hosted by uCoz