#231
04 января 2009 в 17:20
Вот последняя сборка:<br />http://berserker.quakegate.net/temp/Q3Bers.rar<br />GLSL, фильтрация стейджей в скриптах на lightStage и прочие (в Q3TA не все скрипты адаптированы).<br />Новый cvar - r_ppl: при 0 - обычный Ку3 рендеринг. При 1 - работает ветвь рендера, которая будет в будущем отвечать за попикселку, а сейчас она рисует только освещаемые stages.<br />Введен MRT/FBO, но пока не используется.<br />Расширен r_showtris: если указать имя скрипта, то рисует окантовку на всех плоскостях с этим скриптом.<br />Например: r_showtris textures/base_floor/techfloor2<br />Введена новая GLSL программа _interpolate для шейдеров, имеющие два стейджа плавно перетекающие один в другой (Таких много в Q3TA - террайны).<br />Улучшен CollapseMultitexture: теперь описанные выше шейдеры могут коллапсироваться и рисоваться в 1 проход, а не за 2.<br />Убил cvar-ы за ненадобностью: r_detailTextures, r_ignoreFastPath, r_overBrightBits.<br />
#233
04 января 2009 в 17:40
Your IP address *.*.*.* is already downloading a file. Please wait until the download is completed<br /> :(<br />Намыль на megabers, который на мейле-ру :)
#235
04 января 2009 в 18:16
Ура!<br />После установки нового патча текстуры вернулись :)<br />Но модели игроков пропали :(<br />Летящие ракеты (и т.п.) стали ма-алюсенькие<br />Небо стало глючным<br /><br />Шлю лог опять
#236
04 января 2009 в 18:37
enf0rcer<br />погоди слать ))))<br />r_ppl чему равен? ;) Если = 1, то я же писал, рисуются только то, что может освещаться светом!<br />Потому и ракеты без дыма, и неба нет. А модели игроков не должны были пропасть!<br />По крайней мере в Q3. Шейдеры Q3 100% адаптированы.<br />Q3TA - частично. Прочие моды, типа OSP - нет. ;D Хочешь, займись.
#237
04 января 2009 в 19:07
Выставил r_ppl = 0 и всё вернулось.<br />Даже гнусные фраги! ;D<br /><br /><br />PS Ещё при разрешении 1680х1050 сбивается значение cg_zoomfov. У меня оно равно 115, но при 1680х1050 ощущение такое, что оно равно 100-110. Ставлю 125 - ощущения нормализуются.
#238
04 января 2009 в 19:40
Выставил r_ppl = 0 и всё вернулось.<br />ну блин я и писал про это<br />А прочее - Ку3 косяки. Со временем и до них доберусь.
#239
05 января 2009 в 07:07
угу, работает так как написано :)<br />тестил с р_ппл 1 :)<br /><br />неба нет. конечно, как и всех неосвещаемых поверхностей<br /><br />ЗЫ а адаптация материалов в чем заключается?<br />замена <br />rgbGen identity на lightStage?<br />ещё где-то lightStage просто добавляется, вместе в ргбген, а где-тоо ргбген убирается просто...<br /><br />какая закономерность? объяснишь, смогу поправить материалы от паков наиболее распространенных текстур
#240
05 января 2009 в 19:34
В шейдерах Ку3 много мусора напихано,<br />rgbGen identity и blendFunc GL_ONE GL_ZERO оттуда ;D<br />Их можно смело удалять, чем я и занимался поначалу. Потом забил, времени жалко. Движок Ку3 сам их чикает при загрузке.<br />Вот правила: 8)<br />- научиться визуально на лету определять какой стейдж является освещаемым. Ну как тут объяснить... попробую.<br />Если первый стейдж не имеет бленда и не $lightmap - то вписываем lightStage.<br />Если первый стейдж блендится, смотрим что за бленд:<br />blendFunc GL_ONE GL_ZERO - нет бленда! - вписываем lightStage.<br />прочие blendFunc - прозрачный стейдж. Не пишем lightStage.<br /><br />Далее разбираем стейджи... в голове примерную картинку строим.<br /><br />Если alphaFunc GE128 (или другой параметр) - это значит дырявая текстура, скорее всего освещаемая.<br /><br />Если первый lightStage-стейдж (не обязательно первый, а вообще в шейдере первый lightStage) имеет blendFunc, то бленд не убирать. Но последующие lightStage-стейджи тогда должны избавиться от<br />blendFunc blend или blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA (что идентично)<br />и вписать alphaFunc GE128.<br /><br />В шейдерах террайнов в TeamArena есть засада: есть два lightStage в шейдере, но они не дырявые, а логика light pre-pass требует хранения в G-буфере пиксела только одного видимого стейджа. А эти стейджи плавно перетекают один в другой. Но этот вопрос решен 8) :<br />движок их объединяет в один пасс _interpolate, так что не заморачивайся. Главное надо чтоб соблюдалось правило:<br />стейджи 0 и 1 должны:<br /> - иметь одинаковый rgbGen<br /> - оба стейджа д.б. lightStage или не-lightStage<br /> - blendFunc стейджа0 = нет или (GL_ONE GL_ZERO)<br /> - blendFunc стейджа1 = blend<br /><br />Мда.... понятно хоть немного? ::)<br />Давай так: пишешь сюда исходный шейдер, и свой вариант. Я исправляю если не так, с пояснениями. Так и тебя обучу, и люди поймут.