Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Графика, рендер, шейдеры
GAMEINATOR forums > S.T.A.L.K.E.R. > Мастерская: создание модов для S.T.A.L.K.E.R.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91
macron
Вернул подобие картинки. Спецэффекты не работают, прицел на r2 полупрозрачный, на r1 невидимый. Начинает бесить. z_crazy.gif

https://yadi.sk/d/XbYNthrPss3JK
macron
Короче, ни хрена не выходит. Кто хочет - доделывайте сами.
macron
У кого-нибудь идеи по правке шейдера прицела появились?
SkyLoader
Цитата(RayTwitty @ 26.06.2016, 22:28) *
Проверил, в ЗП точно такая же проблема - костры с шейдером particles\add резко обрезаются.

Как вариант, поставить партиклам огня более подходящий шейдер, чтобы не корячиться с ADD.
macron
#include "common.h"
struct v2p
{
float2 tc0 : TEXCOORD0; // base
float4 c0 : COLOR0;
};

half4 main_ps_2_0 ( v2p I ) : COLOR

{
float2 center = I.tc0;
float2 tc = I.tc0;
float4 col = tex2D(s_base,tc);

//начало COLOR_FRINGE
half amount = .003f;
half3 img = half3( 0.f, 0.f, 0.f );
half2 offset_fringe = distance( half2( .5f, .5f ), center ) * half2( amount, amount );
img.r = tex2D( s_image, center + offset_fringe ).r;
img.g = tex2D( s_image, center ).g;
img.b = tex2D( s_image, center - offset_fringe ).b;
//конец COLOR_FRINGE

//return col; //всё нормуль, но нет эффекта COLOR_FRINGE
//return I.c0; //всё белое
}

Оптимизировал шейдер. Как должна выглядеть строка return, чтобы задействовался эффект COLOR_FRINGE ?
RayTwitty
Цитата(macron @ 05.07.2016, 18:02) *
Как должна выглядеть строка return, чтобы задействовался эффект COLOR_FRINGE ?

Хз, попробуй это:
Код
half4 result = col + half4(img.r, img.g, img.b, 1);
return result;
macron
Цитата(RayTwitty @ 05.07.2016, 19:34) *
half4 result = col + half4(img.r, img.g, img.b, 1);

Картинка выводится, но видимая область прицела черная. Если плюс заменить на умножение, прицел работает нормально, только эффекта COLOR_FRINGE всё равно нет.

half4 result = col * half4(img.r, img.g, img.b, 1);
Giperion
Цитата(macron @ 05.07.2016, 19:18) *
Цитата(RayTwitty @ 05.07.2016, 19:34) *
half4 result = col + half4(img.r, img.g, img.b, 1);

Картинка выводится, но видимая область прицела черная. Если плюс заменить на умножение, прицел работает нормально, только эффекта COLOR_FRINGE всё равно нет.

half4 result = col * half4(img.r, img.g, img.b, 1);

Чего ты хочешь добиться? Что еще за Color Fringe? Цветовая бахрома? Как это выглядит, пример хоть дай.
SkyLoader
Цитата(macron @ 05.07.2016, 19:18) *
half4 result = col * half4(img.r, img.g, img.b, 1);

Попробуй с нулем, а не единицей.
RayTwitty
Цитата(Giperion @ 05.07.2016, 19:24) *
Что еще за Color Fringe? Цветовая бахрома?

Наверно что-то такое хочет сделать:


Прям как у тебя на аве smile.gif

Цитата(SkyLoader @ 05.07.2016, 20:58) *
Попробуй с нулем, а не единицей.

Или 0.5. Со значениями можно поиграться.
jamakasi
RayTwitty, это хроматическая аберрация называется =)
Giperion
Как уже сказал jamakasi, этот эффект называется хроматическая абберация.
А проблема в вызове функции distance
half2(.5f, .5f) это уже центр экрана. Расстояние центра от центра всегда ноль.
Правильно будет distance (tc, center).
И код возврата от RayTwitty с единицей. Но вообще то текстуру s_image бы увидеть для полноты картины.

Почему то мне кажется, что у s_image надо взять альфа канал и смешивать с ним, но могу ошибаться, текстуру бы увидеть.

Хотя стоп. float center тоже самое, что tc. Что это вообще за шейдер такой?

Кстати при смешивании не плюс, а умножить

half2 center = half2(.5, .5);
RayTwitty
Цитата(jamakasi @ 05.07.2016, 21:23) *
это хроматическая аберрация называется =)
Цитата(Giperion @ 05.07.2016, 22:03) *
Как уже сказал jamakasi, этот эффект называется хроматическая абберация.

Интересно, как это я картинку с конем до вас нашел biggrin.gif
Giperion
Цитата(RayTwitty @ 05.07.2016, 22:07) *
Интересно, как это я картинку с конем до вас нашел

Ну может ты просто знаешь что такое color fringe, но не знаешь про хром. абберацию, мало ли smile.gif .
Если обновить half2 center, который я в прошлом посте написал, то еще надо обновить три tex2d(s_image, center) на tex2d (s_image, tc), т.е. заменить center на tc.
И если не заработает - значит s_image не поставили. Попробуй вывести s_image.

Еще можно amount посильнее сделать.
macron
Цитата(Giperion @ 05.07.2016, 23:22) *
Еще можно amount посильнее сделать.
На это тоже не реагирует.

По возможности добавил рекомендации, но пока выводит прицел без эффекта. Может надо еще чего в .s или в .vs включить? Вот последняя сборка:

https://yadi.sk/d/2rwRUHsrt37tw
SkyLoader
Заметил один глюк с глоу перед скайбоксом, что он плохо отрисовывался. До этого в основном проверял глоу в индоре. В общем, подправил. Еще заодно исправил отрисовку градиента поверх худа оружия:

Сцылко:
http://rgho.st/8RP4hWY89
Проверить досконально не успел, на работу убегал. Так что если кто будет проверять, отпишитесь.
macron
Цитата(SkyLoader @ 06.07.2016, 11:12) *
Так что если кто будет проверять, отпишитесь.

Заценил чуток на 2.0006 и OLR. Чтобы не вылетало, в r2\shared\common.h добавил:

uniform half4 mVPTexgen;

Особой разницы не заметил.
SkyLoader
Цитата(macron @ 06.07.2016, 16:05) *
Особой разницы не заметил.

Вообще этот мой пост с исправлением относится к посту про глоу, когда я еще писал, что нужен mVPTexgen, которого в оригинале ТЧ нет (в ЗП точно есть), его надо добавлять в рендере.
RayTwitty
Цитата(SkyLoader @ 06.07.2016, 10:12) *
Еще заодно исправил отрисовку градиента поверх худа оружия:

Насколько я понял, это сделано по той же технологии, что и у glow? Там просто был небольшой косяк - у большого оружия кончик ствола все равно просвечивал:


http://www.gameru.net/forum/index.php?s=&a...t&p=1577284

Цитата(SkyLoader @ 15.03.2016, 07:31) *
Как вариант, можно сделать мягкость при приближении к камере, чтобы не так заметно было и всё.

+
Или придумать, как это сделать более корректно. Пока на ум приходит - ретрейс из позиции камеры и проверка, пересекает ли луч худ оружия и центр глоу\градиента.
macron
Еще поэкспериментировал с прицелом. Впечатление, что для работы спецэффектов на худе стандартные методы (как для обычных моделей) не годятся wacko.gif .
kasper
эх вот бы сорцы какого-нибудь старого билда rolleyes.gif blush.gif z_offtop.gif biggrin.gif
MegaNub
Цитата(kasper @ 06.07.2016, 23:19) *
эх вот бы сорцы какого-нибудь старого билда rolleyes.gif blush.gif z_offtop.gif biggrin.gif


Ахаха.. Не один я такой дурак мечтатель biggrin.gif

Извиняюсь быть может за легкий оффтоп, но меня интересует один вопрос: как начать разбираться, программировать шейдеры? Это жутко интересная тема, но не знаю как подступиться, с чего начать, буду рад за направляющий пендаль от бывалых. С чего начать? Как начинали Вы?
Neo][
Цитата(MegaNub @ 07.07.2016, 09:26) *
Извиняюсь быть может за легкий оффтоп, но меня интересует один вопрос: как начать разбираться, программировать шейдеры? Это жутко интересная тема, но не знаю как подступиться, с чего начать, буду рад за направляющий пендаль от бывалых. С чего начать? Как начинали Вы?

MegaNub, начни с чего-нибудь на подобии FXComposer или RenderMonkey
SkyLoader
Цитата(RayTwitty @ 06.07.2016, 18:27) *
Насколько я понял, это сделано по той же технологии, что и у glow? Там просто был небольшой косяк - у большого оружия кончик ствола все равно просвечивал:

Этот скрин из старой версии? Я тогда же вроде говорил, что надо просто дистанцию обрезания увеличить в шейдере, так как в ТЧ оружие находится дальше ЗПшного. В последней версии 1,5 метра стоит:
Код
//    Must be less than view near
#define    DEPTH_EPSILON    1.5h


Цитата(RayTwitty @ 06.07.2016, 18:27) *
Или придумать, как это сделать более корректно. Пока на ум приходит - ретрейс из позиции камеры и проверка, пересекает ли луч худ оружия и центр глоу\градиента.

Для ретрейса надо писать новую функцию, где получать объект худа и набор трисов от его модели, потом его добавлять к ретрейсингу. А для получения набора трисов тоже функцию свою надо писать. Так шо тут одной правочкой не обойдется.
Tron
Цитата(MegaNub @ 07.07.2016, 07:26) *
Цитата(kasper @ 06.07.2016, 23:19) *
эх вот бы сорцы какого-нибудь старого билда rolleyes.gif blush.gif z_offtop.gif biggrin.gif


Ахаха.. Не один я такой дурак мечтатель biggrin.gif

Извиняюсь быть может за легкий оффтоп, но меня интересует один вопрос: как начать разбираться, программировать шейдеры? Это жутко интересная тема, но не знаю как подступиться, с чего начать, буду рад за направляющий пендаль от бывалых. С чего начать? Как начинали Вы?

learnopengl.com
https://www.shadertoy.com/
kasper
С линейной алгебры может rolleyes.gif
Tron
Цитата(kasper @ 09.07.2016, 01:09) *
С линейной алгебры может rolleyes.gif

Тогда и аналитической геометрии
Можно и диффуры+численные методы smile.gif
macron
Я начинал с блокнота. Собственно, на нём же и закончил. biggrin.gif
kasper
Цитата(macron @ 09.07.2016, 22:30) *
Я начинал с блокнота. Собственно, на нём же и закончил. biggrin.gif

+1, конечно можно формулы запомнить, но без их понимания смысла не вижу, эх математику надо было учить biggrin.gif
RayTwitty
Никто не фиксил отображение трассеров на р1? Помнится, в ЛА была такая проблема, но потом ее исправили.
Asterix
RayTwitty, порой в исходниках ЛА totstalkir.gif
RayTwitty
upd: промежуточное решение - снятие флажка Z-test в шейдере effects/bullet_tracer. Однако, после этого трассер становится видимым сквозь стены, что в принципе, логично.
cjayho
QUOTE (Ray @ 18.07.2016, 21:29) *
RayTwitty, порой в исходниках ЛА totstalkir.gif


Главное не читайте исходники лостальфы вслух. Ато вызовете такое что и дьявол будет нервно курить в сторонке.
kasper
Не подскажите в какие билдах кроме 2203, 2215, 1850 есть pdb файлы? z_offtop.gif
Reznor
Знающие люди, подскажите как снизить влияние параметра hemisphere_color в погодных конфигах, на динамичных рендерах. В общем ситуация такая что на статике выглядит вроде-бы всё красиво, без излишек. На р2 же всё через чур синее, хотя smallsky (насколько я понял именно он отвечает за хеми освещение на р2,р3??), вообще просто серый, однотонный.
Кажется что на динамике все же раза в 1.5 влияние hemisphere_color сильнее. Реально на статике чуть видно, а тут всё прям светится. Это на ЗП такая петрушка. В Тенях такого вроде не замечаю. Где копнуть в шейдерах?
macron
Цитата(Reznor @ 31.08.2016, 15:50) *
Знающие люди, подскажите как снизить влияние параметра hemisphere_color в погодных конфигах, на динамичных рендерах.

Никак, на r2 он не используется. Там влияют ambient, sun_color, может еще sky_color. Плюс еще влияют текстуры маски террейна и смоллскаев (в ТЧ они как раз синюшные).
Хочешь увидеть графан с обесцвеченными смоллскаями - качай проект 2.0006.
Хочешь увидеть графан с обесцвеченными смоллскаями и отключенной маской - качай мод OLR.
Reznor
Цитата(macron @ 31.08.2016, 17:37) *
Цитата(Reznor @ 31.08.2016, 15:50) *
Знающие люди, подскажите как снизить влияние параметра hemisphere_color в погодных конфигах, на динамичных рендерах.

Никак, на r2 он не используется. Там влияют ambient, sun_color, может еще sky_color. Плюс еще влияют текстуры маски террейна и смоллскаев (в ТЧ они как раз синюшные).
Хочешь увидеть графан с обесцвеченными смоллскаями - качай проект 2.0006.
Хочешь увидеть графан с обесцвеченными смоллскаями и отключенной маской - качай мод OLR.

Используется на всю катушку. На ЗП по крайне мере, это легко проверить если интересно. В шейдерах точно можно убрать это влияние, точнее его интенсивность, а вот где там вообще искать я не знаю, не шарю в этом.
RayTwitty
Reznor, команду в консоли r2_sun_lumscale_hemi не пробовал?

Цитата(macron @ 31.08.2016, 17:37) *
Никак, на r2 он не используется

Используется.
macron
Цитата(RayTwitty @ 31.08.2016, 21:26) *
Используется.

Я влияний погодного параметра hemi_color на картинку на r2 в ТЧ никогда не замечал. Сейчас снова тестить, изучать вопросы десятилетней давности как-то впадлу, сами ковыряйте. cool.gif
RayTwitty
Цитата(macron @ 31.08.2016, 20:58) *
Я влияний погодного параметра hemi_color на картинку на r2 в ТЧ никогда не замечал

Значит, рассеянное свечение около окна я в фотошопе нарисовал.

Цитата(macron @ 31.08.2016, 20:58) *
Сейчас снова тестить, изучать вопросы десятилетней давности как-то впадлу, сами ковыряйте.

Как будто тебя кто-то заставляет тут.
Reznor
Цитата(RayTwitty @ 31.08.2016, 20:26) *
Reznor, команду в консоли r2_sun_lumscale_hemi не пробовал?

Пробовал, но это не то. Эта команда снижает как-раз таки влияние smallsky текстуры, а нужно бы по идее снизить "цветность" параметра hemi_color, из-за того что на р2 всё всегда везде светится, hemi_color гораздо заметнее, чем на р1. Самое главное что р1 не хочется менять так уже вроде хорошо настроил, и там его едва видно, да и комп старенький я бы сам играл на статике, намного быстрее идёт.
cjayho
Народ, никто не в курсе с чем связаны блеклые цвета у рендеров р2 и выше у движка ЧН и выше? я блин все сырцы и шейдеры перерыл а догнать никак не могу. Может кто натыкался?
sergy172
Вроде ещё несколько лет назад, возможно на форуме пыс, кто то выкладывал шейдера для ТЧ с этой самой ЧНовской тухлинкой.
Собственно, она проявляется на расстоянии и только на объектах типа камыша.
Молния в вакууме
Решил посмотреть что будет, если выключить сжатие лайтмапов. Всё ужасные разноцветные артефакты исчезли.

Ещё скриншоты для сравнения:
до



после




Конечно так лайтмапы будут весить в 4 раза больше, но сейчас уже можно себе это позволить. smile.gif
RayTwitty
Цитата(saas @ 15.09.2016, 17:24) *
выключить сжатие лайтмапов

Рецепт лечения в студию.
Молния в вакууме
RayTwitty, в xrLC везде где сохраняются лайтмапы:
Код
        STextureParams fmt;
        fmt.fmt                    = STextureParams::tfDXT5;

надо поменять tfDXT5 на tfRGBA, после чего перекомпилить уровень. smile.gif
RSFSR
saas, очень плохо видно. ты имеешь ввиду что-то вроде этого?
или этого:


тогда тебе памятник надо поставить rolleyes.gif
Цитата
STextureParams fmt;
fmt.fmt = STextureParams::tfDXT5;

это насколько я понял надо в исходниках компилятора все сделать?

П.С: а я все думал почему в ранних билдах навроде 1472 или 1511 такие красивые и безглючные лайтмапы, сравнил - билде действительно другой формат, не dxt5 и весят они по 4 мегабайта:


Молния в вакууме
RSFSR, я имею в виду что-то типа такого:

На тех скринах качество лайтмапов 20px per meter, поэтому может быть не так сильно заметно.

Вот тут видно зелёные пятна и разноцветный шум на стене:

А может быть это из за JPEG, я не знаю.

Цитата(RSFSR @ 15.09.2016, 22:50) *
это насколько я понял надо в исходниках компилятора все сделать?

Да, хотя можно и уже готовый компилятор поправить.
RSFSR
saas,

вот здесь обрати внимание на плитку внизу - она не должна быть заметна вообще, но вместо этого некоторые плитки засвечены разными цветами. или например часть стены посреди темной комнаты тоже бывает засвечена, как здесь:
Цитата
Да, хотя можно и уже готовый компилятор поправить.

как это сделать?
Молния в вакууме
RSFSR, ну может это тоже из за сжатия, хотя не уверен.

Цитата(RSFSR @ 15.09.2016, 23:39) *
как это сделать?

Это требует умения редактировать исполняемые файлы.
Если хочешь потестить - оригинальный компилятор из SDK 0.4 с такой правкой: http://files.xray-engine.org/saas/xrLC_saas_fix.7z
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.