Тест билд преломлений и травы. Устанавливать поверх оригинального ксаш-мода последней версии, предварительно сделав копию файла cl_dlls\client.dll. В комплекте идет карта xashmodtestmapv1_1 с исходником, на которой собственно и расставлены новые фичи.
Маппинг. Используются 4 вад файла: halflife.wad zhlt.wad xash.wad - в комплекте с ксашмодом cs_dust.wad - в комплекте с исходником
Напоминаю: так как фгд у нас под это дело ещё пока нет, есть немного трудностей в настройке энтить. Для тех кто мапает в хаммере всё нижеописанное можно сделать убрав SmartEdit в свойтвах энтити.
Стекла:
1. Для активации преломлений указываем "rendermode 7"
2. Сила преломлений задается параметром "scale" - на тест карте значение "20"
3. Текстура преломлений для стекол будет браться аналогично бампу, но пока она не прикручена, так что тащится внешняя текстурка.
Вода:
1. Для активации преломлений указываем "rendermode 7"
2. "WaveHeight" - сила преломлений - на тест карте "20"
3. "rendercolor" - цвет воды - на тест карте "190 220 255"
4. "renderamt" - прозрачность воды - на тест карте "90"
5. "colormap" - направление течения воды в градусах - на тест карте "180"
6. "frame" - скорость течения воды - на тест карте "20"
Ограничения преломлений:
Так как моя вода сделана на основе старой ксашевской, если вы хотите иметь воду с отражениями, она должна быть покрыта текстурой !reflect и иметь не нулевую прозрачность. Если отражения вам не нужны, покройте воду любой другой текстурой и установите нулевую прозрачность.
Все прозрачные объекты не преломляются. Так же не преломляются стекла с преломлением через воду, но вода через стекла прекрасно преломляется, так что можно сделать преломляющийся аквариум.
Так же через одно преломляющее стекло не будет видно другие преломляющие стёкла.
Трава:
1. Квары: r_grass - 1\0 - вкл.\выкл. рисование травы. r_grass_lighting - 1\0 - вкл.\выкл. освещение травы. r_grass_shadows - 1\0 - вкл.\выкл. тени от травы. r_grass_fade_start - расстояние, после которого трава начнет исчезать. Минимально - 512. r_grass_fade_dist - расстояние, на котором трава будет исчезать. r_grass_alpha - [0,1] - уровень прозрачности для альфатеста травы.
2. Описание травы находится в файле maps\%mapname%_grass.txt Формат файла:
1)Текстура мира.
2)Текстура травы.
3)Множитель травы.
4)Минимальный размер куста травы.
5)Максимальный размер куста травы.
6)Сид - при разных значениях трава будет ставиться по разному. Если не нравится как трава расположилась при одном сиде, поставте другой. Если стоит значение 0 - каждый старт карты трава будет распологаться случайным образом. Внимание: нельзя ставить одинаковый сид для одной и тойже мировой текстуры!
В комплекте идет 3 текстуры травы, используется только 2. Вот потренеруйтесь - добавте и её.
Кстати ещё Qwertyus давал текстуры, можете и их подключить к делу.
fieldgrassobj01.tga и snowgrass01.tga взяты из Vurt's Skyrim Flora Overhaul v1.07, fieldgrassobj02.tga и fieldgrassobj03.tga - из HD 2k Landscapes Skyrim v0.9b.
Credits:
Небо - скинул n00b.
Xhammer - by Xaerox.
Текстуры карты - de_dust из Counter-Strike.
Текстура преломлений для воды - by Google.
Текстуры травы - вроде скидывал HAWK. Откуда они понятия не имею.
Текстура преломлений для стекол - взята из старого примера приломлений Xaerox'а.
Потестил, вроде всё работает. Но текстура воды неочень (вернее её движение), это просто скролящаяся нормалка, типа воды из мечмода...
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
SovietCoder писал: Внимание: нельзя ставить одинаковый сид для одной и тойже мировой текстуры!
Да можно, просто трава набьется в одну кучу.
Насчёт сидов - объясню суть, что это такое и зачем это нужно.
Это была моя идея. Дело в том, что травка расставляется по поверхности рандомным образом. На практике это приводит к нехорошему эффекту - после сохранения\загрузки трава меняет своё местоположение, что выглядит некрасиво.
Сохранять травку в сейв не получится - она полностью клиентская, да и глупо это. Поэтому я предложил метод псевдорандомного генератора случайных чисел, который основывается на одинаковом сиде и генерирует одинаковые псевдослучайные последовательности для заданного диапазона. Пример такого генератора вы уже видели в клиентских пушках халфы (UTIL_SharedRandomFloat). Таким образом мы достигаем полной повторяемости случайной расстановки травы, но сид приходится указывать вручную. В целом ничего сложного, это любое уникальное число от нуля до 65535. К слову сказать, от номера сида зависит и расположение кустиков, так что вы можете влиять на случайность, вбивая разные номера сидов, если на ваш взгляд кустики заспавнились не слишком красиво.
Потестировал. Есть вопросы.
1. Настоящих волн на воде (колеблющихся по высоте) теперь, как я понял, не будет?
2. Потестировал воду с разными нормал-мапами, думаю, что можно было бы снизить коэффициент преломляемости примерно на треть. Это, конечно, не сильно принципиально, но даже со средними значениями WaveHeight в основном получаются довольно сильные искажения и рефлективность воды (ну, и стёкол тоже), а уж при максимуме совсем нереалистично выглядит, особенно если нормал-мапа контрастная.
3. Стёклам недостаёт прозрачности (если сравнивать воду и стекло с одинаковым значением renderamt и одинаковой нормалкой, стекло будет значительно темнее). Даже с нулевой прозрачностью они отлично видны и довольно тёмные.
4. Реально ли сделать туманчик видимым не только под водой, но и при взгляде на воду снаружи?
5. При загрузке сохранённой игры, если при этом в поле зрения у нас имеется вода с отражением, на долю секунды становится видимой эмо-текстура над водой.
6. При взгляде из-под воды на модель с аддитивными текстурами, эти аддитивные текстуры отображаются некорректно. К примеру, на скриншоте запечатлён вертолёт с прозрачной текстурой лопастей (вот эта модель). При этом вместо лопастей мы видим из под воды размазанный белый прямоугольник текстуры.
7. Поддержка эффектов для брашевой воды планируется?
8. Как насчёт того, чтобы сделать универсальный файл настроек травы для любых карт, чтобы не приходилось дублировать файл настроек для каждой отдельной карты? Например, grass_common.txt. Указываешь в нём все текстуры, на которых нужно разместить траву, с соответствующими настройками, и эти настройки используются для любых загружаемых карт. Думаю, что для большинства случаев такого файла будет достаточно.
Также я сделал комплект разнообразных нормалок для воды формата 1024х1024, можете опробовать: http://yadi.sk/d/5g5N-QZf6j6W7
Примечание: для смены текстуры воды требуется перезапуск игры.
Qwertyus писал: Как насчёт того, чтобы сделать универсальный файл настроек травы для любых карт, чтобы не приходилось дублировать файл настроек для каждой отдельной карты?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
SovietCoder писал: Так как моя вода сделана на основе старой ксашевской
А их там и до этого небыло.
2. Я там уже анимацию прикрутил, FiEctro выдрал, так что надо будет ещё посмотреть.
3. Какой ещё прозрачности? Сотый раз повторяю, они сделаны так, чтоб не светились в темноте. По аналогии с декалями параноевскими - серый цвет прозрачный. Естественно халфовские текстуры будут сильно затемнять, они не под это рисовались.
4. Опять же, сто раз меня уже спрашивают об этом. Ну чтож, сотый раз отвечаю - ДА. После бампа.
5. Ты на обычном ксашмоде проверь.
6. Опана. А водичка внезапно прозрачной стала, тут вдруг и вылезло. Вот скрин даже не с ксаша, а с самого GoldSource, в котором скайбокс туманится:
Туман это шалит. Фиксится парой строчек. В движке пусть Дядя Миша профиксит. А тут я туман уже отключил, т.к. с бампом он работать не будет. Его потом отдельно прикручивать надо.
SovietCoder писал: 5. Ты на обычном ксашмоде проверь.
Если имеется в виду исходная ксаш-модовская вода, то да, баг с эмо-текстурой присутствует и у неё.
Цитата:
SovietCoder писал: 7. Брашевой? А эта какая?
Ну, как какая . Мировой водой её ещё называют. Та, которая не энтитью делается, а чисто брашем. Любой браш, обтянутый текстурой, имя которой начинается с ! (восклицательный знак, что и является для движка ХЛ отличительным признаком воды), автоматически становится простейшей водой - без волн, без прозрачности, но с туманчиком и с колебательной анимацией. В ХЛ очень много воды именно брашами сделано. На той же карте c2a5, к примеру, та вода, которая находится перед дамбой - брашевая.
Qwertyus
"эмо-текстуру" закостылировал, баг не мой и сидит глубоко. А про мировую воду ты разве не знаешь, что она не будет прозрачной, пока карту специальными компиляторами не прогнать. На уже готовых картах она работать не будет, а на своих, какая проблема её как энтити всегда делать? И настраивать мировую воду как? Вон сколько параметров получилось.