#1
10 марта 2008 в 19:30
Кто не знает, для карт Deluxe Quake мы используем формат Q3BSP, и для идеального закоса под Quake приходится исправлять некоторые баги Q3map2 и вводить новые фичи.<br /><br />Может и другим мапперам оно пригодится :)<br /><br />последняя версия тут: http://darkmaster.quakedev.com/files/Q3Map2_FS20g_R5.zip (1.8 Мб)<br /><br />Список изменений:<br /><br />Новые ключевые слова .shader<br /><br /> q3map_deprecateShader <имя_шейдера><br /><br /> Мгновенно редиректит парсер на <имя_шейдера>, для подмены одних шейдеров другими. <br /> Важно: шейдер на который производится перенаправление должен быть объявлен ранее.<br /><br /> Пример использования:<br /><br /> // этот шейдер появится на карте как "textures/#water0"<br /> textures/test/test_deprecate_water<br /> {<br /> q3map_deprecateShader textures/#water0 <br /> }<br /><br /> q3map_floodlight <красн> <зел> <син> <дистанция> <яркость> <сила_направления><br /><br /> Самоосвещение поверхности (только лайтмап!) по методу FloodLight.<br /> <красн> <зел> <син> - устанавливает цвет освещения<br /> <дистанция> - устанавливает расстояние трассировки. Чем выше дистанция, тем меньше <br /> освещенность и тем она ровнее. Чем меньше дистанция, тем сильнее освещенность<br /> и тем она сильнее угнетается в углах<br /> <яркость> - множитель яркости освещения<br /> <сила_направления> - FloodLight добавляет освещение с направлением по перпендикуляру <br /> к поверхности. Этот параметр устанавливает силу его доминирования <br /> при слиянии с стандартным deluxe-вектором освещения.<br /><br /><br /> Пример использования:<br /><br /> // вода с подавлением вектора делюксмаппинга, чтобы источники вблизи не кастовали ненужные тени<br /> textures/#water0<br /> {<br /> q3map_floodlight 0.6 0.6 0.6 256 128 200<br /> }<br /><br />Новые ключи командной строки:<br /><br /> -gridscale <X><br /> <br /> Множитель уровня освещения в lightgrid, охватывает амбиент и дирекшн-составляющие<br /><br /> -gridambientscale <X><br /><br /> Умножает только ambient-составляющую освещения lightgrid<br /><br /> -keeplights<br /><br /> Работает только в фазе Light. Компилятор не удаляет объекты источников света из BSP после <br /> завершения построения лайтмапа (имеет более низкий приоритет чем ключ _keeplights у worldspawn) <br /><br /> -deluxemode <формат><br /> <br /> Работает только в фазе Light. Устанавливает формат карт направления освещения<br /> 0 - modelspace (по умолчанию), 1 - tangentspace<br /><br /> -nodeluxe<br /> <br /> Работает только в фазе Light. Отключение делюксмаппинга<br /><br /> -nopatchshadows<br /> <br /> Работает только в фазе Light. Отключение кастования теней кривыми <br /><br /> -styles<br /> <br /> Работает только в фазе Light. Включение .shader-эмуляции лайтстайлов в Quake 3<br /><br /> -samplescale <X><br /><br /> Работает только в фазе BSP. Множитель пикселя лайтмапа, чем он выше тем выше разрешение лайтмапа<br /><br />Новые ключи объектов:<br /><br /> spawnflag 32 (объекты light*)<br /><br /> Цвет источника света не нормируется<br /><br /> spawnflag 64 (объекты light*)<br /><br /> Для рассеивания света используется дистанционная формула, как у солнца или света от поверхностей<br /><br /> _smoothnormals/_sn/_smooth <угол><br /><br /> Устанавливает сглаживание нормалей вертексов объекта с углом слома больше чем <угол><br /> Эффект идентичен .shader-ключу q3map_shadeangle или ключу командной строки -shadeangle<br /><br /><br /> _patchMeta/patchMeta<br /><br /> Заставляет компилятор сконвертировать все кривые, принадлежащие объекту в обычные браши<br /><br /> _patchSubdivide/patchSubdivide<br /> <br /> Устанавливает лимит терпимости при разбиении кривой (чем ниже лимит терпимости тем <br /> большее количество полигонов порождает кривая), по умолчанию равен 8, в Quake 3 равен 4.<br /> Будьте осторожны с очень низкими/высокими значениями!<br /> <br /> _patchQuality/patchQuality<br /> <br /> Делитель patchSubdivide, "patchSubdivide 4, patchQuality 2" идентично "patchSubdivide 2"<br /><br /> _ls<br /><br /> Синоним _lightmapscale, порядок проверки: lightmapscale->_lightmapscale->_ls<br /><br />Новые режимы игры:<br /><br /> -game dq<br /><br /> Компиляция карты с установками для quake1-мода "Deluxe Quake"<br /><br /> -game darkplaces<br /><br /> Компиляция карты с установками для quake1-движка Darkplaces<br /><br />Системные изменения:<br /><br /> Изменено поведение ключей _deviance/_samples, если _deviance найден, то _samples устанавливается<br /> по умолчанию в такое же значение<br /><br /> Пофиксен баг с -deluxemode 1 -bounce<br /><br /> Пофиксен баг со светлыми выделяющимися краями теней при делюксмаппинге<br /><br /> Добавлено сообщение в BSP-фазу "entity has vertex normal smoothing with..." если ключ _smoothnormals/_sn/_smooth<br /> найден на объекте<br /><br /> Для -game режимов dq/darkplaces/prophecy ключ командной строки -keeplights добавляется автоматически<br /><br /> Почищен код освещения по методу FloodLight<br /><br /> Режимы игры "dq", "darkplaces", "prophecy" по умолчанию имеют -deluxemode 1<br /><br /> MAX_TW_VERTS увеличено с 12 до 24 для возможности компиляции карты с огромным количеством кривых<br /><br /> -game-зависимые опции печатаются теперь в начале Light-фазы<br /><br /> добавлена статистика "EmitMetaStats" в конце сборки BSP<br /><br /> Объекты "func_wall" для -game dq/prophecy по умолчанию кастуют тени<br />
#2
13 марта 2008 в 23:04
Спасибо, Паша.<br /><br />В принципе почти все это мне лично уже было известно, но пока особо ещё с этим компилятором не работал. Но думаю что в будущем - придётся и эти новые фичи освоить.
#3
14 марта 2008 в 10:06
Если под Deluxe Quake мапить, то без правленной версии не обойтись, в оригинальном q3map и q3map2 нет нормального способа воду залайтмапить, а делать воду светящейся в темноте неправильно, плюс делюксмаппинг кривой.<br /><br />Вот кстати пара скринов, демонстрирующих возможность тонкой настройки лайтгрида посредством -gridscale и -gridambientscale. Одна из коробок с патронами освещена лайтмапом, я думаю несложно догадаются какая<br /><br />Оригинальный Q3map2:<br /><br /><br />Q3Map2_FS20_R5 -gridscale 0.4 -gridambientscale 0.5<br /><br />