Доброго времени суток, Всадники Кальрадии!В этой статье я хотел бы рассказать, как можно сделать качественный Skybox (прим.
Skybox - это модель окружения, которая имитирует небо в компьютерных играх), а также как его правильно добавить в игру и не иметь в дальнейшем никаких неприятностей.
Для начала нам понадобится новый кубический меш, т.к сферический нам категорически не подходит, но я решил не тянуть время и просто дам вам свой, который я сделал заранее.
Скачать:
https://yadi.sk/d/gYxKjmtOnof9eДалее нам понадобится "кастомная" текстура, на которую мы и будем накладывать наш
Skybox.
Скачать:
https://yadi.sk/d/3QJSYzuknogAEТеперь нужно скачать программу
Terragen 3, сделать это можно на официальном сайте, вот по этой ссылке
http://www.planetside.co.uk/products/download-terragen-3Ниже выберите нужную ОС, и разрядность. Версия 30-дневная, и имеет ограничения на максимальный размер рендера (1280х960) и еще некоторые функции, но нам этого хватит с головой.
Дальше скачиваем проект, с уже настроенной камерой, детализацией и другими премудростями, которыми я вас постараюсь не нагружать. Вот по этой ссылке:
https://yadi.sk/d/Y_vghIcenokGBИтак, когда у нас есть все эти файлы можно приступать к работе.Для начала откройте Terragen, и вы увидите что то вроде такого вот окна:
Нажмите на "
Use Free Version", и продолжаем.
После этого появится окно программы, выглядит оно примерно так:
Теперь откройте проект с настройками, для этого нажмите вкладку "
File" > "Open", и укажите к нему путь.
Когда проект будет открыт, перейдите в вкладку "
Renderers", дальше "
/Full Render", и в параметрах "
Image width" и "
Image height" пропишите 900. В общем сделайте все как показано вот тут:
А теперь краткий гид, по программе. В вкладке "
Atmosphere", нажмите на "
Add Cloud Layer", и выберите "
Cirrus (2D)". Это позволит добавить на вашу текстуру облака. Далее можете перейти в вкладку "
Lighting", и настроить параметры освещения. Для этого просто кликните на нужный вам элемент. Программа довольно таки интересна и на Ютубе, есть много уроков, если есть желание обязательно посмотрите.
Перейдем к рендерингу текстур. Для этого снова перейдите в вкладку "
Renderers", выберите "
Full Render", дальше нам нужно "подцепить", нужную нам камеру, для этого нажмите на этот вот значок:
Далее перейдем в "
Assign Camera" и выберем "
DN_1".
Все, дальше, нажимаем на кнопку "
Render Image".
Внимание! Процесс рендеринга производится за счет процессора, по этому во время него желательно убрать любые лишние задачи, а если у вас слабый компьютер то это скорее даже необходимость. Так что не пугайтесь, если все отрисовывается очень медленно, просто нужно немного подождать.После того как наша текстура была готова, нажмите на "
Save" (увидите в верхнем левом углу), и сохраните полученную текстуру в формате "
.bmp". Далее проделываем все это и с другими камерами, в итоге должно получиться 5 текстур, форматом
900х900.
Все Terragen нам больше не нужен можно его закрыть. Для удобства сохраните настройки, что бы не копаться в них каждый раз.
После этого открываем нашу "
кастомную" текстуру, скачанную ранее. Я буду использовать графический редактор
PaintNET.
Теперь нам нужно изменить размер наших текстур "
скайбокса", до
1040х1040. Эту операцию нужно проделать со всеми текстурами, которые мы получили из
Terragen.
Теперь берем текстуру нижнюю текстуру, с камеры "
DN_1" и вставляем на нашу "
кастомную" текстуру.
Делаем все
максимально аккуратно, вплоть до пикселей, что бы в дальнейшем избежать стыков.
Теперь нам нужно повернуть текстуры из камер "FT_1", "LF" и "RT".
Делаем так:
FT - 180*
LF - по часовой стрелке, на 90*
RT - против часовой стрелки на 90*
И точно также,
аккуратно склеиваем с другими.
В итоге должно получиться что то вроде такого. Не забываем проверять наши кубики, которые по краям. Если на границах будет свечение, то его нужно убрать.
Теперь можете сохранить текстуру в формате "
.dds", используя сжатие
DXT или
A8R8G8B8, у каждого из них есть недостатки (
DXT - хуже качество, но меньше вес самой текстуры,
ARGB - максимальное качество, но размер больше). Также можете выбрать размер текстуры, а именно
1024х1024, или
2048х2048. В нашем уроке, мы будем использовать
2048.
Дальше открываем или создаем новый архив, в
OpenBRF, и добавляем туда наш меш. После того как добавили, нам нужно еще импортировать текстуру и создать материал. На форуме есть уроки, по том как нужно это делать. Флаг для материала используем "
9030018", для текстуры просто "
1". Во вкладке "
Shader", указываем "
skybox_shader" (без кавычек).
Ну вот и все. Далее путем подмены текущего или добавлением нового в "
module_skyboxes" (думаю в скором времени покажу как это сделать), добавляем наш новый
Skybox, в игру.
В результате, получаем довольно таки качественное небо, так еще и экономим около
1200 полигонов на сцену, в сравнении с обычным встроенным мешом.