KD87 718 Опубликовано 24 Декабря 2014 Ну странно объяснять, поддакивая ему. env map в сталкире работает отлично на Р2. Другое дело, что работает он только на геометрии, которая рисуется с альфа-блендом - стекла, вода и все такое. Дело тут не в художественном вкусе разрабов, а в желании сэкономить фпс, с одной стороны, и в ненужности отражения скайкуба на других поверхностях с другой стороны. Вот где, кроме воды, нормально смотрелся бы env map? Скажем, на оружии. Но оружие должно получать отражение только при нахождении в аутдоре. А как определить нахождение оружия в аутдоре? Отвечаю - никак, в общем случае. Так что даже если запилить, ствол будет переливаться даже у сидора в бункере. Впрочем, на оружии всегда играет блик - если, конечно, бамп у него нормальный. Это неплохая замена env map. 1 Поделиться этим сообщением Ссылка на сообщение
KD87 718 Опубликовано 25 Декабря 2014 вроде весь экран должен был красным стать, а не вышло... Дык. В сталкере у все точки входа имеют имя main, а не произвольное. ПЛюс, если просто закинуть файл в геймдату, ничего не выйдет. Все шейдеры вызываются при отрисовке геометрии из движка, так что или рисуй из движка квад на весь экран, или вставляй свой код в один из поолноэкранных шейдеров. Обычно это combine_2_naa. А так правильно написал. И все же как бы его прикрутить на другие источники освещения? В самом вопросе кроется ответ. Рисуй дерт для каждой лампы. Рендеряй квад вокруг каждой лампы, направленный на камеру. Пересчитывай текстурные координаты квада в пространство экрана, семплируй дерт-текстуру и все. 1 Поделиться этим сообщением Ссылка на сообщение
KD87 718 Опубликовано 25 Декабря 2014 (изменено) оно все в шейдере реализуется или же нужно и в движке какие манипуляции проводить?) Ну раз я пишу "рисуй квад для каждой ламп", очевидно, что начинать надо с движка Есть же пример готовый - солнечные флары. Ровно то же самое - квады, повернутые на камеру. Берешь идею и делаешь это для ламп. Изменено 25 Декабря 2014 пользователем KD87 3 Поделиться этим сообщением Ссылка на сообщение
KD87 718 Опубликовано 25 Декабря 2014 вот содержание моего файла Как может быть у одного шейдера две точки входа? Одна main уже ведь есть в основном файле. Пиши функции, потом вызывай их из основного файла. Типа float4 make_red() { return float4(1,0,0,1); } и вызов из combine_2_naa: ... return make_red() ... Поделиться этим сообщением Ссылка на сообщение
KD87 718 Опубликовано 25 Декабря 2014 Выдает ошибка что у меня слабая видюха Ошибка по неподдерживаемой версии шейдеров выдается при синтаксических ошибках в шейдере. В логе при этом пишется настоящая причина. Вообще, все твои проблемы пока от незнания и невнимания. Не надо винить в этом сталкера. я так понимаю условий на проверку координат пикселя в шейдерах нет? Почему нет? if then else и вперед. Это если в лоб решать. Если потоньше, то color = lerp(color_1, color_2, binary_condition) а некто не знает как настроить шейдеры Все равно, что спросить "Как настроить сталкера, чтобы там шестиствольный пулемет появился". Как-как - запилить с нуля. 1 Поделиться этим сообщением Ссылка на сообщение
KD87 718 Опубликовано 26 Декабря 2014 (изменено) может подтолкнешь хотя бы примерно где копать К сожалению, понимания у тебя нет даже приблизительного. Как бы я не рассказал, все равно не поможет. Представь себе картинку саму - есть у тебя текстура с грязью на весь экран. Надо в местах ламп ее проявлять. Как это сделать? Ну нарисуй на месте лампы квадрат с лампой в центре, спроецируй на экран и получишь как раз те пиксели, что надо проявить. Как нарисовать квадрат на месте лампы? Очевидно, так же, как рисуются солнечные флары, еще точнее, как само солнце рисуется - там тоже простой квад. Код готовый есть, выкидывай шелуху, правь под параметры лампы (направление там, позиция и т.д.) и рисуй. Где рисовать? Ну тоже очевидно - в месте, где есть позиция лампы, т.е., где рендерятся лампы, а это CRenderTarget::accum_spot/accum_point. В сумме с тебя требуется суметь разобраться в векторной арифметике при рисовке квадов, повернутых к камере, и написать шейдер, который считает координаты для семплирования экранной текстуры. Алгоритм я уже в деталях расписал. Ах, да, деталь - лично я флары и дерт рисую в отдельный рендертаргет, а потом смешиваю его с картинкой уже в самом конце, в combine_2. Очевидно, можно рендерить и в общий аккумулятор освещения, но переделывать уже неохота. Где-то видел, что можно привязать к блюму от лампочек Блум - это просто заблуренная картинка низкого разрешения, где блур идет с взвешиванием пикселей по яркости. Т.е., если у тебя большой sun_lumscale выставлен, или любой другой lumscale, или просто пересвет по каким-то причинам, в блум-текстуре будет просто месиво из ярких пятен и все. Ну и конечно даже при нормальной яркости на поверхностях есть блики от ламп, например, т.е. засвет дерта будет не только в тех местах, что нужно. Изменено 26 Декабря 2014 пользователем KD87 1 4 Поделиться этим сообщением Ссылка на сообщение
KD87 718 Опубликовано 7 Января 2015 Because R2 doesn't support glow for lights. 1 Поделиться этим сообщением Ссылка на сообщение
KD87 718 Опубликовано 8 Января 2015 this not true Каким образом на Р2 заставить заработать глоу так же, как на Р1? Человек, очевидно, спрашивает, о назначении глоу в спавне/сдк. R1 have lens flare for lamp, R2 don't have. Поделиться этим сообщением Ссылка на сообщение
KD87 718 Опубликовано 8 Января 2015 @Anonim, несколько замечаний. 1) accum_base.ps ничем не отличается от оригинала. Аналогично не отличаются _все_ шейдеры accum_***, а также файлы bloom_luminance_2, bloom_filter, lmape.ps. 2) bloom_luminance_3.ps по факту ничем не отличается от оригинала. Да, в версии из пака удалена строчка, однако, эта строчка написана с опечаткой и по факту в игре и так не работает. 3) combine_2.ps не используется в сталкире, правка этого шейдера бессмысленна на 100%. 4) назначение cross_color.ps для меня загадка. В движке он не вызывается, из шейдеров тоже. 5) идиотская попытка реализовать детальный бамп. Какой он детальный, если данные берутся из обычного бампа, да еще и полностью убито наложение детальной текстуры? Поделиться этим сообщением Ссылка на сообщение
KD87 718 Опубликовано 9 Января 2015 Всё работает, прицел теперь полупрозрачный. Да, вызывается из hud_crosshair, это я не увидел. Какой ещё детальныйй бамп? Я про sload.h, конечно. Там ужас. Я их даже не трогал. Ну дак собирал-то ты 1 Поделиться этим сообщением Ссылка на сообщение
KD87 718 Опубликовано 9 Января 2015 (изменено) @Anonim, да, lmodel.h тоже лишний. Файл, конечно, отличается функцией, которой нет в оригинале, но она там просто так, ниоткуда не вызывается. Изменено 9 Января 2015 пользователем KD87 1 Поделиться этим сообщением Ссылка на сообщение
KD87 718 Опубликовано 9 Января 2015 Есть у меня шейдеры за твоим авторством, для 7 патча. Там есть POM, но что-то он не собирается работать. Это что, который из исходников собран? Так там нужна поддержка движка. Параллакс на некоторых текстурах имеет баги, поэтому я правил движок для избирательного включения параллакса. Соответственно, включается он там в textures.ltx. Если это не волнует, то надо дефайны параллаксовые перенести из шейдеров с хвостом _steep в такие же шейдеры, но без этого хвоста, будет работать и без движка. Там ужас ещё с оригинала вроде Оригинальный sload.h работает, как надо, ну и код нормальный. В файле же из твоего пака убито наложение детальной текстуры, зато для детальных поверхностей дополнительно патчится нормаль по хитровыдуманной формуле. Я так понимаю, это что-то от cjahyo, попытка сделать детальный бамп. Странная попытка, учитывая, что для патча нормали используется _обычный_ бамп текстуры, а не детальный. Впрочем, полагаю, тогда можно было сделать только так. Но сейчас уж не "тогда" ведь 1 Поделиться этим сообщением Ссылка на сообщение
KD87 718 Опубликовано 9 Января 2015 r2_parallax_h 0.02 Это родной псевдопараллакс. #define POM_PARALLAX_OFFSET float(0.02) Этот дефайн вполне можно оставить и в шейдерном конфиге, это сила сдвига неровностей. Поделиться этим сообщением Ссылка на сообщение
KD87 718 Опубликовано 9 Января 2015 Несовсем понятен этот вопрос. А что ж тут не понятного? Вопрос в том, зачем в шейдерной плюшке скрипты с конфигами? Поделиться этим сообщением Ссылка на сообщение
KD87 718 Опубликовано 9 Января 2015 - Солнечные лучи (Crysis Style) не KD87 А чьи? - Качающиеся деревья Так они и в оригинале качаются. 2 Поделиться этим сообщением Ссылка на сообщение
KD87 718 Опубликовано 10 Января 2015 А ты как думаешь? Я понятия не имею, в моде ридми нет, копирайты ничьи не указаны. Если делаешь солянку - хороший тон указать в ридми, что использовал. Из ранее указанного списка никто саншафты не делал, только у cjahyo какие-то эксперименты были. Ну а что касается пыли - внезапно, взято у меня, что показывает даже твое сравнение. Только очень слабо, я зделал как в ЛА. Увеличив некоторые циферки. Не надо писать "зделал Качающиеся деревья", а надо "правка качания деревьев". Иначе вводит в заблуждение. Как и Motion Blur, кстати. Там-то ты что сделал? Ведь эффект есть в оригинальной игре и заметен прилично. 7 Поделиться этим сообщением Ссылка на сообщение
KD87 718 Опубликовано 12 Января 2015 в общем какой шейдер нужно выставить для модели что-бы подобного небыло? Да как обычно. Для динамических моделей это models\model. 1 1 Поделиться этим сообщением Ссылка на сообщение
KD87 718 Опубликовано 15 Января 2015 Вот такое есть по сталкиру:http://www.gamedev.ru/community/gamedev_lecture/articles/r_e_n_de_r Мегаполезная вещь, но надо немного понимать, о чем человек говорит. В целом почитайте статьи и глоссарий на gamedev.ru. Тоже помогает. Там про шейдеры отличная статья есть, с примерами. Правда, по первости даже так непонятно. Но тут уж деваться некуда. Интересует такой момент - как привязать новый скриптовый шейдер к модели? Задублируй любой имеющийся в сдк, там же переназначь, потом напиши его и закинь в папку шейдеров. И, может подскажете еще, как сделать шейдер с двигающейся текстурой? Это в каком плане? Скролл, что ли? В шедйеры экспортированы таймеры, юниформ timers. В x лежит линейный таймер как раз, привяжи к нему текстурные координаты. И есть ли какой-нибудь способ управлять шейдерами через скрипты, например менять один на другой в процессе игры? Да, исходники же есть. Можешь придумать что угодно. Штатно - нет. 1 Поделиться этим сообщением Ссылка на сообщение
KD87 718 Опубликовано 19 Января 2015 Не существуют, но возможно. Просто по аналогии. Правильно ли я понял - для связки нужно создать скриптовый шейдер с названием папка_шейдер как у обычного? Правильно. 3 Поделиться этим сообщением Ссылка на сообщение