#1371
25 августа 2012 в 21:25
Hello, Berserker.<br /><br />Firstly, I would like to appologize for not being able to speak in Russian.<br />Secondly, a developer under the name of Coroner, from the True Combat community, (see last post) is interested in idTech 3 modifications in order to revive the mod he is making. However, True Combat doesn't run on Quake 3 really, it runs on Wolfenstein: Enemy Territory. He has said that he would try to continue working on the mod if these features can be implemented:<br />
*add normal and specular map support<br />*add deluxe map/radiosity bump mapping support<br />*add blur post processing effect<br />*solid compile on win/linux/mac<br />(*optional: add zfeather)<br />I know that some, if not most of this, you already have done, and the progress you have made is amazing, but my question is - is there any possibility for you to port your engine modification to Wolfenstein: ET? <br /><br />Thanks!
#1372
26 августа 2012 в 09:55
Hi,<br />I plans to port q3bers for rtcw and, possibly, wolf:et<br />I will add rtcw/et support into q3bers. IMHO this way is more simpler than add to vanilla rtcw/et source code q3bers's modifications.<br />Deluxe maps support in my plan also.<br />PS: sorry for my bad English.<br />
#1373
26 августа 2012 в 12:46
Hmm... I'm not entirely sure what do you mean by deluxe maps.
#1374
26 августа 2012 в 18:09
[quote author=Haraldx link=topic=429.msg17724#msg17724 date=1345929950]*add deluxe map/radiosity bump mapping support[/quote]<br />He responded to that part of your question.<br /><br />I looked at the MOD site - I guess CS:Source just doesn't cut it for you guys? <br />
#1375
26 августа 2012 в 19:18
Oh my, I didn't even fully look through the list myself. >.<<br />Explains things kind of.[quote author=Alien_911 link=topic=429.msg17728#msg17728 date=1346004541]I looked at the MOD site - I guess CS:Source just doesn't cut it for you guys? [/quote]<br />Far from Counter-Strike. It's more like Call of Duty, but way before Call of Duty (first True Combat mod - 2000, first CoD - 2003). It's very simplistic in the veins of arena shooters, but have the pacing of tactical shooters and other cool stuff. Don't be fooled by the looks, it's a neat project. Some say it's also a very big thing for the idTech 3, but compared to Berserker's stuff, TC's technology falls to it's knees.
#1376
27 августа 2012 в 04:15
В выходные "подрисовал" ещё несколько текстур из base_wall )) Сегодня-завтра выложу маленькое обновление<br /><br />Берс, выложи, пожалуйста все релайты, какие есть, куда-нибудь + список CVAR-ов, пора уже wiki обновить, это я могу на работе сделать))
#1378
27 августа 2012 в 15:28
GT-Agressor, с возвращением.<br />[quote author=GT-Agressor link=topic=429.msg17730#msg17730 date=1346040905]Берс, выложи, пожалуйста все релайты, какие есть, куда-нибудь[/quote]<br />http://files.mail.ru/A1TXGM<br /><br />Eugeny, красивые шоты, буду рад любой помощи.<br /><br />чуть позже выложу список цваров и кое какое описание.<br />
#1379
27 августа 2012 в 16:30
Серег, а есть полная сборка, чтобы отдельно ничего не скачивать и не заменять?
#1380
27 августа 2012 в 17:00
для GT-Agressor: список всех изменений, которые ты, возможно, пропустил. Скопировал из своего списка изменений, выберешь что нужно для wiki.<br /><br />NEW: в материалы добавлены таблицы (как в idTech4)<br /><br />NEW: в стейджи добавлены выражения (как в idTech4)<br /> Также есть условное выполнение стейджей! (НЕ ДЛЯ LIGHT MATERIALS!!!)<br /> Стейдж с условным выполнением может быть сколлапсирован только со стейджем с таким же условием!!!<br /> ОПИСАНИЕ:<br /> if <expr> - условное выполнение стейджа<br /> переменные: time, константы, таблицы и т.п.<br /> distortMagnitude <expr> - сила искажения<br /> rgb <expr><br /> rgba <expr><br /> red <expr><br /> green <expr><br /> blue <expr><br /> alpha <expr><br /> color <expR>, <expG>, <expB>, <expA><br /> colored<br /> vertexColor - аналог rgbGen vertexColor (???)<br /> inverseVertexColor - аналог rgbGen oneMinusVertexColor (???)<br /> scroll/translate <expS>, <expT> - аналог tcGen scroll<br /> alphaTest <exp> - рисует фрагмент если значение альфы >= <exp>.<br /> scale <exp> - аналог tcGen scale<br /> rotate <exp> - аналог tcGen rotate<br /> clamp - оверрайд клампа для стейджа<br /> zeroClamp - оверрайд клампа для стейджа<br /> alphaZeroClamp - оверрайд клампа для стейджа<br /> noClamp - оверрайд клампа для стейджа<br /> noPicMip - игнорировать даунсемпл текстуры<br /> uncompressed - не в коем случаем не сжимать текстуру<br /> highQuality = forceHighQuality = noPicMip + uncompressed<br /> ГЛОБАЛЬНЫЕ ТОКЕНЫ ШЕЙДЕРА:<br /> deform == deformVertexes<br /> nomipmap == nomipmaps<br /><br />CHANGE: наличие расширения GL_ARB_texture_border_clamp теперь обязательно!<br /> (это не страшно, ибо оно есть даже на древних видяхах)<br /> и удалил ставший ненужным цвар: r_arb_texture_border_clamp<br /><br />FIX: провёл оптимизацию системы материалов:<br /> убрал лимит на количество stages (было 8, а стало 256, как в idTech4. Причем лимит можно легко увеличить.)<br /> коллапсу подвержены ВСЕ stages, а не только первые 2, как было в idTech3.<br /> убрал лимит на количество кадров анимаций текстур (было 8, стало 256)<br /> теперь память не будет выделяться под неиспользуемые skyParms, waveforms, fogParms, deforms, texMods, stages, bundles и textures.<br />Команда shaderlist печатает кол-во выделенной памяти под каждый материал (с учетом выражений), а также инфомацию о стейджах и их коллапсах.<br /><br />FIX: исправлен Ку3 баг: запускаем карту, затем в консоли печатаем demo <demoname>. Карта для демо грузится, затем - консоль!<br /><br />NEW: новое значение цвара in_mouse = 2 - raw mouse.<br /><br />NEW: сделал быстрое переключение режимов win <-> fs (ALT-ENTER) без перезапуска рендера.<br />CHANGE: r_fullscreen уже не требует vid_restart. При смене цвара автоматически меняется режим экрана.<br /><br />CHANGE: удалил цвар r_texturebits<br /><br />CHANGE: все md3 модели теперь static vbo<br /><br />CHANGE: удален цвар r_VBO<br /><br />CHANGE: рендер и шейдеры переведены на вершинные атрибуты (подготовка к порту на GL3)<br /><br />CHANGE: удалил цвар r_fastsky<br /><br />FIX: старый Ку3 баг - если по умолчанию в системе стоит не-английский язык, то нельзя было печатать в консоли.<br /> Исправил: на старте клавиатура переключается на английский язык.<br /><br />CHANGE: оптимизировано рисование SkyBox, удалён цвар r_showsky (перестал работать)<br /><br />NEW: модели сейчас целиком в едином своём VBO/IBO.<br /> Ввиду тяжести их вбо, по умолчанию отключен механизм lod для md3 для экономии памяти.<br /> Цвар r_noLODmd3 (def=1, arch, latch) = 0 - включает лоды: требует больше памяти, но теоретически быстрее... спорно.<br /> Команда modellist показывает размер в VBO-памяти алиас-моделей, и мира и браш-моделей.<br /><br />FIX: поправил вычисление тангентов, теперь шард всегда корректно освещен!<br /><br />NEW: сделал маркирование декалями террайны и статуи<br /><br />NEW: Запись демо в видео формата avi.mjpeg.<br /> cvars:<br /> cl_aviFrameRate; def=25 arch - fps видео<br /> cl_aviWidth def=0 arch но в пределах от 8 до vid.width<br /> cl_aviHeight def=0 arch но в пределах от 8 до vid.height<br /> cl_aviJpegQuality def=95 arch - качество jpeg сжатия<br /> cl_aviAutoRecord def=0 noArch - при 1 при запуске демо автоматом начинает писать<br /> cl_aviJpegOptimize def=1 arch - включает оптимизацию сжатия, чуть дольше, но компактнее. (спорно насчет "дольше")<br /><br /> звук пишется только если выставлено стерео 16 бит.<br /><br /> commands:<br /> video<br /> stopvideo<br /><br />NEW: AVI-компрессор выведен в параллельный поток. Имеет смысл для мультиядерных или HyperThread процессоров.<br /> Новый цвар: cl_aviBackgroundCompressor (def=1, arch) при 0 запускает компрессор в основном потоке.<br /><br />NOTE: дёмка теперь не умирает при нажатии любой клавиши (кроме ESC)<br /> Так можно забиндить video/stopvideo и гнать дёмки в avi.<br />(NEW: новый цвар cl_anykeystopsdemo (def=0, arch), при 1 при нажатии на любую клавишу демо останавливается (старое Ку3 поведение))<br /><br />FIXED ку3 баг: во время воспроизведения демо запустить record =)<br /><br />NEW command: pausedemo - ставит воспроизведение демо на паузу (запись видео также приостанавливается).<br /> При потере фокуса программы, дёмка также приостанавливается. Удобно, когда требуется отойти от компьютера.<br /><br />FIX: в PPL режиме удаляю lightmap стейджи с прозрачных материалов: стекло, вода...<br /> т.к. прозрачные сурфы не обрабатываются PPL-рендером и лайтмап-затенения никак не смогут реагировать на лайты.<br /> Заодно пофиксил Ку3-баг: при смене lightMapIndex в шейдере нарушается поиск этого шейдера, ранее зарегистрированного,<br /> из-за чего он снова и снова загружался. Визуально это никак не проявлялось, только тратилась лишняя память<br /> и нарушалась сборка сурфов в батчи.<br /><br />CHANGE: r_ignoreGLErrors def=1 - печатать предупреждение, 0 - вываливаться, 2 - полностью игнор.<br /><br />NEW: рендер переведён на GL3+, полностью удалён устаревший функционал, всё работает на VBO. Новые цвары:<br /> r_glCoreProfile = ri.Cvar_Get("r_glCoreProfile", "1", CVAR_LATCH); - по умолчанию юзает GL3+ (обнуляя, заставите работать в старом GL)<br /> r_glMajorVersion = ri.Cvar_Get("r_glMajorVersion", "3", CVAR_LATCH); - можно выставить версию GL (первая цифра версии)<br /> r_glMinorVersion = ri.Cvar_Get("r_glMinorVersion", "2", CVAR_LATCH); - можно выставить версию GL (вторая цифра версии)<br />NEW: r_glCompatibleContext (по умолчанию 1, хранимый, при смене требуется vid_restart)<br /><br />FIX: в sound коде пофиксена мелкая опечатка, из-за которой не удалялись некоторые команды s_info, s_list ...<br /><br />ADD: расширил расшифровку сетевых ошибок (чтоб не было хрени типа "net_sendpacket error: no error").<br /><br />FIX: устранил странное падение в меню мода EntityPlus<br /><br />CHANGE: временно, на этапе разработок, sv_pure пусть будет нулевым.<br /><br />FIX: пофиксил Ку3 баг: цвар timescale является читом, но если выставить не 1, и затем запустить noCheat игру (просто map), то всё-равно timescale действовал!<br /><br />NEW: новые cvar r_glslIntPrecision и r_glslFloatPrecision (def=1 и 2 соответственно, arch, latch) - определяет точность шейдерных вычислений.<br /> 0 - low<br /> 1 - medium<br /> 2 - high<br /> Чем больше точность, тем меньше погрешность вычислений, но и меньше скорость.<br /> На стационарных видяхах - походу без разницы, а на мобилках (на АТИ точно) необходим.<br /><br />NEW: новый цвар com_sleep (def=1, arch) - если задан com_maxfps > 0 и если он реально ограничивает fps,<br /> то вместо прокрутки цикла ожидания загоняем CPU в Sleep. Снижаем нагрузку на CPU, экономим энергию.<br /> (выделенный сервер или ненулевой timedemo крутят com_frame на полной скорости).<br />Служебный цвар com_active (нехранимый, read only) содержит 0 - если приложение не в активном окне, 1 - в активном окне.<br /><br />NEW: новый деформатор: flare <expression> (idTech4)<br /> Новый цвар r_flareSize def=1 arch<br /> Пример материала:<br />}<br /> deform flare 16<br /> {<br /> map _quadratic<br /> blend add<br /> red 1<br /> green 0.5<br /> blue 0<br /> }<br />}<br />Если в материале деформ создающий геометрию не первый, то будет выведено предупреждение и оставлен только тот деформ.<br />Если в материале с deform flare нет стейджей - то warning, если больше 1 стейджа - останется первый, прочие будут проигнорированы.<br />Должен быть квад = 2 триангла, т.е. 4 вершины и 6 индексов. Такие неправильные сурфы будут отбрасываться.<br />колорген д.б. конкретный цвет или wave, но не колорген использующий tess.colors (ибо деформ сам генерит цвета) - тогда получим ворнинг.<br /><br />NEW: blend (аналог blendFunc). (idTech4)<br /> и его доп.токены:<br /> none - GLS_SRCBLEND_ZERO GLS_DSTBLEND_ONE (none is used when defining an alpha mask that doesn't draw)<br /> modulate (аналог filter)<br /><br /><br /><br />[hr][size=1]Post Merge: [time]1346086850[/time][/size][hr]<br />CHANGE: неправильные квады с деформами autosprite, autosprite2, flare теперь отбрасываются до добавления в список рисования.<br /><br />CHANGE: загрузчик материалов:<br /> для deform autosprite, autosprite2, flare - форсирует cull none и nomarks.<br /> для bulge, wave, move - форсирует nomarks.<br /> проверяет чтоб деформы autosprite, autosprite2, flare, text* были первыми деформами и имели хотя бы 1 стейдж.<br /><br />FIX: код деформа для autosprite2 немного глючный, потому был заменён на аналогичный код из Дума3 - deform tube.<br /> И deform tube воспринимается как autosprite2<br /> И добавил из Дума3 деформ sprite == аналог autosprite.<br /><br />FIX: deform text0/7 теперь может группироваться в батчи из квадов.<br /><br />NEW: новый деформ "text" "текст" или "$cvarName" (для смены текста через цвары) (поддержваются цветовые метки ^)<br /> Квад произвольно ориентирован, текстура д.б. вписана в квад, текст автоматически масштабируется и не выходит за пределы квада.<br /> Таким образом можно печатать тексты на стенах карты.<br /><br />NEW: новый деформ "expand <expression>" (idTech4)<br /><br /> NOTE: деформ Дума3 turbulent похож на деформ Ку3 wave, но с другими параметрами, потому не будет портирован.<br /><br />NEW: deform wave EXP <waveparms> - теперь поддерживает выражения<br />NEW: deform move expX expY expZ <waveparms> - теперь поддерживает выражения<br />NEW: deform normal expX expY - теперь поддерживает выражения<br />NEW: deform bulge exp0 exp1 exp2 - теперь поддерживает выражения<br /><br /> NOTE: в стейдже "portal <range>" - нет смысла делать поддержку выражений, потому const!<br /> в стейдже "tcGen vector (x0 y0 z0) (x1 y1 z1)" - нельзя сделать поддержку выражений из-за скобок, потому const!<br /> в материале "fogParms (r g b)" - нельзя сделать поддержку выражений из-за скобок, потому const!<br /> в стейдже "rgbGen const (r g b)" - нельзя сделать поддержку выражений из-за скобок, потому const! (но может быть заменён аналогичным токеном из Дума3)<br /><br />FIX: разрешил применение noise во всех wave, а не только для rgbGen.<br /> (кроме деформа wave, т.к. GPU не поддерживает функцию noise)<br /><br />FIX: сделал защиту от деления на ноль в tcMod stretch<br /><br /> NOTE: ошибки в материалах Ку3 (sin - лишнее!!!!): так, чисто для интереса )))<br /> карта q3dm18 имеет<br /> textures/base_floor/concretefloor1 tcmod turb sin .5 1 0 1<br /> карта q3dm0, q3dm7, q3dm11 имеют<br /> textures/sfx/portal_sfx tcmod turb sin 0 .5 0 1<br /> также есть:<br /> textures/sfx/portal2_sfx tcmod turb sin 0 .5 0 1<br /> textures/gothic_wall/streetbricks10_shiny tcmod turb sin .1 .1 0 0<br /><br />FIX: оптимизировал хранение и работу с выражениями, расширил лимит с 32 (XReal) до 256. В idTech4 - 4096, но imho это перебор. Если надо, могу легко увеличить лимит.<br /> Лишняя память не расходуется, в отличии от XReal.<br /><br />ADD: сделал в добавление к tcMod - texMod (полный аналог, просто название другое)<br /><br />ADD: выражения условного выполнения stages поддерживают cvars, примеры написаний:<br /> if cvar(ppl)==0<br /> if (cvar( "ppl") ==1)<br /> Если цвар не найден, то возвращается 0.<br /> Для защиты от читерства, поддерживаются цвары только с атрибутами ROM=1, USERCREATED=0, ARCHIVED=0<br /> (т.е. нельзя подменить из *.cfg файла, из консоли и из командной строки). Управлять такими цварами может game-код.<br /><br />NEW: в glsl-шейдеры добавлено вычисление lod для чтений из карт высот для параллаксов обоих видов. Даёт небольшое ускорение.<br /><br />NEW: Сделаны тени по технологии теневых карт, метод ESM.<br /> r_shadowLodBias = ri.Cvar_Get("r_shadowLodBias", "0", CVAR_CHEAT);<br /> r_shadowLodScale = ri.Cvar_Get("r_shadowLodScale", "0.8", CVAR_CHEAT);<br />Восстановил цвар cg_shadows: 0 - none, 1 - blur, 2 - shadowmaping (default) ARCH, LATCH<br /> При ppl=1 тоже есть тени, но от лайтов, которые могут быть в этом режиме - динамических.<br /><br />ADD: в свойства материалов новый токен (из idTech4): noShadows<br /><br />CHANGE: r_lightScale (def="2") - увеличивает яркость освещения.<br /><br />CHANGE: r_staticLight (def=1, no-arch, latch)<br /><br />NEW cvar: r_fxaa (def=1, arch, no latch) - включает быстрое полноэкранное сглаживание.<br /><br />FIX: устранён баг, когда в PPL режиме мог не обновляться экран.<br /><br />NEW: r_playershadow (def=0, no arch, no latch) - включает тень от игрока.<br /><br />NEW: различные размеры консоли:<br /> ~ 0.5 (половина экрана)<br /> shift + ~ 0.25 (четверть экрана)<br /> ctrl + ~ 3 строки + строка ввода (узкая консоль)<br /> alt + ~ 1.0 (весь экран)<br /><br />FIX: исправлен Ку3 баг: ширина строки в консоли была не более 78 букв. Сейчас консоль доступна во всю ширину.<br /><br />NEW: classname light : "light_center" "expX expY expZ" - теперь поддерживает выражения! Но не рекомендую сильно двигать во избежание глюков.<br /> Это для мерцания свечи, лампы и т.п. это ещё не оконченный код!<br /><br />CHANGE: com_maxfps по дефолту = 60<br /><br />FIX: если timedemo не равно 0, то pauseDemo теперь не срабатывает, чтоб не сбить замер FPS<br /><br />FIX: подготовил сурсы к порту на Linux: имена некоторых файлов почему то оказались в верхнем регистре, переименовал.<br /> + проверил и поправил шейдеры GLSL (только названия папок glprogs и inculdes)<br /> + вернул некоторые мелкие адаптиции в коде (из Q3 vanilla).<br /><br />FIX: устранил баг, из-за которого звук ROQ игнорировал s_volume<br /> (запускаешь ку3 с параметром s_volume 0, но видео почему то со звуком)<br /><br />NEW: новый детект CPU + замер скорости. + команда cpuspeed.<br /><br />CHANGE: reordered demo_protocols to reduce spew<br /><br />CHANGE: убил r_simpleMipMaps, мипмапы всегда строятся качественно (как при r_simpleMipMaps = 0)<br /><br />NEW: система профилей игроков, наподобие как в ET, но imho проще и удобнее:<br /> Новые цвары: com_profile (Read Only, def="") Используемый текущий профиль.<br /> com_defaultprofile (Read Only, def="%username%") Профиль по умолчанию.<br /> В профилях хранятся персональные q3b_config.cfg, autoexec.cfg<br /> и туда же скидываются screenshots, levelshots, videos<br /> Алгоритм работы:<br /> PS: если системный %username% содержит спец.символы либо нелатинские буквы (напр. "Администратор"), то система профилей не используются.<br /><br />NEW: r_bloom (def=1, arch) - включает блум<br />NEW: r_bloomThreshold (def=0.7, arch) - пороговое значение цвета точки экрана, выше которого будет браться в обработку bloom.<br /> r_bloomIntensity (def=2.5, arch) - интенсивность bloom.<br /><br />NEW: r_diffuse_modifier (def=1.5, arch) - яркость диффуза<br /> r_specular_modifier (def=1.0, arch) - яркость спекулара<br /><br />CHANGE: удалил цвары r_ext_texture_lod_bias и r_texture_lod (т.к. не используются, и визуально не заметил отличий)<br /><br />FIX: переделал код texture_anisotropic, теперь r_anisotropic меняется без vid_restart, на лету.<br /><br />CHANGE: удалил цвар r_ext_draw_range_elements т.к. не используется<br /><br />NEW: в classname light новый токен "dynamic" "1" - такие лайты обрабатываются как динамические.<br /> Они заметно тормознее, зато динамически просчитываются интеракшны.<br /> Юзать для лайтов с "center" "xyz-формулы" с большими отклонениями, если видны косяки.<br /> Если не задан "center", то выводится предупреждение и лайт становится статичным.<br /> Если задан "center" c константной XYZ, то выводится предупреждение и лайт становится статичным.<br /> NOTE: "center" сам по себе не переводит лайт в динамический, т.к. отклонения могут быть небольшими,<br /> и из-за этого не стоит жертвовать скоростью. это ещё не оконченный код!<br /><br />NEW: новый цвар r_showmodel. Далее задать имя модели (в формате modellist): браш *1, *2 и т.д. или models/.../..md3<br /> показывает tris модели. (cheat cvar, def="")<br /> *0 - модель статичного мира<br /> *1 - первая браш-модель<br /> и т.д.<br /> models/.../...md3 - алиас-модель<br /><br />NEW: линковка лайтов к браш-моделям. Правило линкования:<br /> Лайту приписывается имя бмодели, например "link" "*1". "*0" не допускается, т.к. это модель статичного мира.<br /> В этом случае, а также если загрузчик лайтов не находит бмодель, то выводится предупреждение<br /> "WARNING: light linked to missing brush model '%s' found" и лайт переводится в статичный и нелинкованный.<br /> Далее в Радианте ставим лайт-ентити в место, где находится центр бмодели:<br /> для маятника (func_pendulum), вращающихся (func_rotate) и катающихся (func_train) - центр браша "origin"<br /> Нажимаем N, появляется окно свойств ентити. Копируем координату origin в center/light_center.<br /> Тем самым мы засекли начальную позицию бмодели. Это нужно для верного вычисления перемещений линкованного<br /> лайта; во время игры бмодель может находиться где угодно... Для себя легко запомнить "center" как "центр бмодели".<br /> Затем передвигаем лайт-ентити в место его линковки к бмодели, например в место откуда исходит свет от лампы.<br /> Т.о. лайт будет всегда находиться в указанном месте.<br /> Если бмодель на заданной сцене не видна, сервер не будет показывать её ентити клиенту. Соответственно,<br /> линкованного лайта также не будет. Отсюда следует, что не надо задавать огромные радиусы для линкованного света,<br /> чтобы не было внезапного зажигания освещения при появлении бмодели на сцене. Линкованный лайт также пропадёт<br /> при уничтожении бмодели.<br /> Ограничения:<br /> Параметр center, как видно, используется для других целей, поэтому линкованный лайт уже не вынести<br /> за пределы BSP. Но это невозможная ситуация ))).<br /> Если линкованный лайт делает достаточно далекие перемещения, следует прописать "dynamic" "1",<br /> чтобы такой лайт обрабатывался как динамический. А это заметно медленнее, чем статичное освещение. это ещё не оконченный код!<br /><br />NEW: поддержка шаблонов материалов как в Quake4:<br /> создаётся шаблон в папке guides, а из материала можно адресоваться к шаблону по имени.<br /> Передавать можно до 32 параметров.<br /><br />-------------------------------------------------------<br />
Серег, а есть полная сборка, чтобы отдельно ничего не скачивать и не заменять?<br />В данный момент нет. Возможно скоро сделаем, я или Агрессор, всё равно надо старую сборку обновить.