Перейти к контенту

Рекомендуемые сообщения

27.03.2021 в 00:38, Biblia сказал(а):

только при условии включенно ПНВ

Возможно. Проверяете включен ли пнв при отправки модели на конвеер рендера. Рекомендую курить функции связаные с рендером в XrGame.

Скрытый текст

6 ГБ ОЗУ DDR3 1098 мГц (Разносорт)

Процессор Intel Xeon E5420 4/4 2.5 ГГц

Видеокарта Gigabyte GeForce GT 240 512 МБ GDDR5 (Samsung) DirectX v10.1

 

Ссылка на комментарий

Screen Space Contact Shadows

 

 

AnomalyDX11AVX_2021-04-14_20-08-31.png

raw

AnomalyDX11AVX_2021-04-14_20-08-16.png

без

AnomalyDX11AVX_2021-04-14_20-08-22.png

наложение и смешивание с обычными тенями и моделью освещения

 

Видео в движении

https://www.youtube.com/watch?v=5CronUii8_4

Блум и постобработка

тут без сравнения, потому что надо частично менять конфиги погоды, чтобы показать до. Но думаю многие примерно знают, как выглядит сток Аномали.

Никакого рейшейда - все встроенно в движок и относительно неплохо оптимизировано

 

AnomalyDX11AVX_2021-04-13_21-16-50.pngAnomalyDX11AVX_2021-04-11_15-10-42.png

AnomalyDX11AVX_2021-04-13_21-12-49.pngAnomalyDX11AVX_2021-04-13_21-13-43.png

В процессе работа с водой

 

AnomalyDX11AVX_2021-04-14_20-48-22.png

не думаю что это сильно отличается по качеству от текущей воды в xray - просто чуть чуть иначе считается переход от "прозрачности к отражению"

в плане просто заменить на Screen Space Refection

  • Нравится 3
Ссылка на комментарий
15 минут назад, Cornholio сказал(а):

просто заменить на Screen Space Refection

Можно использывать "перевернутый бекбуфер" как вариант. С мягкой водой его как правило можно не пугаться. Да он не сильно корректный, но в отличии от других скринспейсовых техник, не "дырявый". Вот моя реализация такова вида отражений

float4 ScreenSpaceLocalReflections (float3 vspos, float3 vsnorm) //Initial beam length
{
	float3 refl_vec = normalize(reflect(normalize(vspos), normalize(vsnorm)));
	float2 reflPos = saturate(position_get_tc(refl_vec)); // We get the pixel position in Screen Space of the reflected geometry
	
	float canrefl = refl_vec.z > 0.0 ? 1.0 : 0.0;
	
	float4 hit_pos = gbuffer_load_position(reflPos, 1e3); // Sample s_position
		 
	canrefl *= smoothstep(length(vspos), length(vspos) * 1.15, length(hit_pos));
	
	float borderAtten = GetBorderAtten(reflPos, 0.035f); // Grease the edges of the reflections for a smoother transition
	
	float3 color; // Sample Color
	
	#ifdef USE_DX9_LOAD
		color = tex2D(s_image, reflPos);
	#else
		color = s_image.Sample(smp_nofilter, reflPos);
	#endif
	
	return float4(color, borderAtten * canrefl);
}

 

  • Спасибо 1
  • Полезно 1
Скрытый текст

6 ГБ ОЗУ DDR3 1098 мГц (Разносорт)

Процессор Intel Xeon E5420 4/4 2.5 ГГц

Видеокарта Gigabyte GeForce GT 240 512 МБ GDDR5 (Samsung) DirectX v10.1

 

Ссылка на комментарий

спасибо!

я сейчас вот это читаю и осмысливаю

http://remi-genin.fr/blog/screen-space-plane-indexed-reflection-in-ghost-recon-wildlands/

вроде идея похожа, просто подменю на тот самый перевёрнутый бекбуфер, но с искажением от проекции

Ссылка на комментарий
8 минут назад, Cornholio сказал(а):

я сейчас вот это читаю и осмысливаю

Прикольная тема. Неплохо показывает себя на плоских поверхностях, да и затрат в производительности почти нет. Не сравниться конечно с настоящими планарами, ибо потери информации тут примерно такие же как и у простых скринспейсов. Вот как выглядят настоящие планары на иксрее. Если позволяют ресурсы, можете их реализовать.

Изменено пользователем _ХоЗаР_
Скрытый текст

6 ГБ ОЗУ DDR3 1098 мГц (Разносорт)

Процессор Intel Xeon E5420 4/4 2.5 ГГц

Видеокарта Gigabyte GeForce GT 240 512 МБ GDDR5 (Samsung) DirectX v10.1

 

Ссылка на комментарий

Подскажите, в Чистом небе работают снопы света от ламп? Мягкий свет это оно? Можно это починить через шейдер? Если да, поделитесь шейдером пожалуйста.

Ссылка на комментарий

Здравствуйте. Перекинул шейдер models_lfo_light_dot_weapons (динамический коллиматор) из аномали на сталкер зп, подключил к модельке и словил вылет с этим еррором: 

! error:  (18): error X3004: undeclared identifier 'screen_res'

Как я понимаю - не хватает чего-то в двигле, и без ковыряний в нем - метку, двигающуюся за центром экрана, не создать?

Ссылка на комментарий
25.04.2021 в 12:42, Holy Biblie сказал(а):

Здравствуйте. Перекинул шейдер models_lfo_light_dot_weapons (динамический коллиматор) из аномали на сталкер зп, подключил к модельке и словил вылет с этим еррором: 

! error:  (18): error X3004: undeclared identifier 'screen_res'

Как я понимаю - не хватает чего-то в двигле, и без ковыряний в нем - метку, двигающуюся за центром экрана, не создать?

 

Попробуй в файле шейдера сделать замену

"screen_res"

на

"pos_decompression_params2"

 

Только учти, это векторные величины, они как правило пишутся так "pos_decompression_params.xy или screen_res.zw" - не сотри составляющие случайно.

 

Я пока этим развлекался

 

 

  • Нравится 2
Ссылка на комментарий

Добрый вечер! Есть ли возможность уменьшить колыхание (шатание) травы? Из за большого количества ее на экране - в глазах рябит.  И еще можно ли ее заставить клонится в одном направлении имитируя направление ветра ?  Нашел вот такое видео 

 

Ссылка на комментарий
08.05.2021 в 21:03, BOPOHua сказал(а):

Добрый вечер! Есть ли возможность уменьшить колыхание (шатание) травы? Из за большого количества ее на экране - в глазах рябит.  И еще можно ли ее заставить клонится в одном направлении имитируя направление ветра ?  Нашел вот такое видео 

 

  1. Я не знаю способа уменьшить "волны" травы без залезания в сами шейдеры (по крайней мере я в консольных командах не видел ничего, что дало бы надежду)
  2. Поскольку я сам все свои эксперименты провожу на Аномалии, то могу только говорить на её примере (ванильный рендер ЗП хоть и является основой, но иногда может отличаться)
  3. я не уверен по этому методу, так как замерить "колыхания травы" сложно, а мой глаз не замечал каких-то проблем
  4. не гарантирую, что тебе поможет, но (!!) попробуй следующее:
    1. найди свою gamedata/shaders/папку используемого рендера (r1, r2, r3)/shared
    2. открой блокнотом файл common.h
    3. найди функцию calc_cyclic
    4. float 	calc_cyclic 	(float x)				
      {
      	float 	phase 	= 1.0/(2.0*3.141592653589f);
      	float 	sqrt2	= 1.0;//1.4142136f; измени тут на 1.0
      	float 	sqrt2m2	= 2.0;//2.8284271f; измени тут на 2.0
      	float 	f 	= sqrt2m2*frac(x)-sqrt2;	
      	return 	f*f - 0.5;				// [-1     .. +1] // а тут была 1.0, замени на 0.5
      }
    5. по идее это в 2 раза уменьшит "псевдо-синусоиду" по которой считается искажение для травы
  5. что касается видоса от LV - то этого скорее всего нет в твоей версии Сталкера, это его эксперименты с искажениями

 

PS
я продолжил бороться с облаками:

 

 

и пытаюсь сделать свое АО с блекджеком.. (ну вы поняли)

Desktop_Screenshot_2021.05.09_-_23.52.33

на скрине нет фильтрации, её еще не придумал (не прочитал - как правильно делать)

И я тоже задам вопрос (вдруг тут кто знает)
Для АО хорошо бы сделать downscale всего Gbuffer

Вроде я видел в рендере что-то связанное с этим делом в фазе AO, но я все свои эксперименты веду на движке аномалии, и хрен его знает - где и как там постарались моддеры до меня (например, я обнаружил что отдельный пасс для облаков просто был выключен)

 

Мне надо сделать, причем довольно экономным способом, Gbuffer в половинном разрешении, желательно с небольшим блюром (шириной 1 пиксель, чтобы уменьшить разницу между увеличившимися в размере текселями)

Идеи?

  • Нравится 1
Ссылка на комментарий

Всем привет! Делаю большой пак моделей для одной модификации. Заинтересовался, есть ли возможность создать новый шейдер прозрачности или отражения. Либо адаптировать под ЧН и/или ЗП какой-то уже имеющийся, помимо стандартных Window, FUR и Transparent.

В ТЧ на статике очень нравились зеркальные отражения на оружии в местах, где была прозрачность на текстуре. И отражения в стеклах НПС.  В идеале мне бы запилить полностью новый шейдер, сочетающий в себе прозрачность, отражения и шоб он ещё не перекрывал партиклы. А то сквозь огонь, дым и тд видно отдельно стёкла противогаза.

 

Сам в шейдерах ноль без палки. Тему пробежал, ответа не нашёл, в Я поисковике тоже особо ничё нет. 

 

Надеюсь на вашу помощь.

Ссылка на комментарий
7 часов назад, Nestandart_5443 сказал(а):

 Заинтересовался, есть ли возможность создать новый шейдер прозрачности или отражения.

 

Возможно всё. Вопрос только в постановке задачи и времени-сложности реализации. А раз ты сам в шейдерах ноль, то не знаю - как именно ты собрался это делать. Как мне говорил LV можно делать индивидуальные шейдеры под определенный mat ID, например, так реализован светящийся экран PDA в модах, где есть "физический" PDA.

 

К сожалению деталей я не знаю, меня мало интересовали "частные случаи" я больше работаю с универсальными подходами.

Пример "отложенного" шедера для npc

 

model_npc.s

function normal(shader, t_base, t_second, t_detail)
	shader:begin("deferred_npc","deferred_npc")
	: fog (false)	
	shader:dx10stencil(true, cmp_func.always, 255 , 127, stencil_op.keep, stencil_op.replace, stencil_op.keep)
	shader:dx10stencil_ref(1)		
	
	shader:dx10texture("s_base", t_base)
	shader:dx10texture("s_bump", t_base.."_bump")	
	shader:dx10texture("s_bumpX", t_base.."_bump#")	

	shader:dx10sampler("smp_base")	
end

deffered_npc.vs

#include "common.h"
#include "skin.h"

v2p_bumped _main( v_model I )
{
	v2p_bumped O;
	
	//Hpos and texcoord
	O.hpos = mul(m_WVP, I.P);
	O.tcdh = float4(I.tc.xyyy);

	//Hemi
	float3 Nw = mul((float3x3)m_W, I.N.xyz);
	float3 hc_pos = (float3)hemi_cube_pos_faces;
	float3 hc_neg = (float3)hemi_cube_neg_faces;
	float3 hc_mixed = (Nw < 0) ? hc_neg : hc_pos;
	float hemi_val = dot( hc_mixed, abs(Nw) );
	hemi_val = saturate(hemi_val);

	//TBN
	float3 N = I.N;	
	float3 T = I.T;
	T = normalize(T - dot(T,N) * N);	
	float3 B = cross(N,T);
	
	float3x3 xform = mul((float3x3)m_WV, float3x3(
	2*T.x,2*B.x,2*N.x,
	2*T.y,2*B.y,2*N.y,
	2*T.z,2*B.z,2*N.z
	));

	// Feed this transform to pixel shader
	O.M1 = xform[0]; 
	O.M2 = xform[1]; 
	O.M3 = xform[2]; 
	
	//Position
	float3 Pe = mul(m_WV, I.P);
	O.position = float4(Pe, hemi_val); //Use L_material.x for old behaviour;

	return	O;
}

/////////////////////////////////////////////////////////////////////////
#ifdef 	SKIN_NONE
v2p_bumped	main(v_model v) 		{ return _main(v); 		}
#endif

#ifdef 	SKIN_0
v2p_bumped	main(v_model_skinned_0 v) 	{ return _main(skinning_0(v)); }
#endif

#ifdef	SKIN_1
v2p_bumped	main(v_model_skinned_1 v) 	{ return _main(skinning_1(v)); }
#endif

#ifdef	SKIN_2
v2p_bumped	main(v_model_skinned_2 v) 	{ return _main(skinning_2(v)); }
#endif

#ifdef	SKIN_3
v2p_bumped	main(v_model_skinned_3 v) 	{ return _main(skinning_3(v)); }
#endif

#ifdef	SKIN_4
v2p_bumped	main(v_model_skinned_4 v) 	{ return _main(skinning_4(v)); }
#endif

FXVS;

 

аналогичным способом можно "переписать" шейдеры для конкретных моделей/материалов

 

 

Что касается кода выше - я сам его не проверял, что именно он делает. Это просто пример работы подобного подхода для "override" материала. Скорее всего он не дружит с тенями (т.е если ты будешь делать так новую геометрию - она не появится в shadowmap)

Изменено пользователем Cornholio
  • Спасибо 1
Ссылка на комментарий

 https://ibb.co/S6FvyGV

https://ibb.co/fqJsG8W

Кто-нибудь знает, как добиться такого же блеска? Залезать в движок, или обойтись правой шейдеров, и, если так, то каких именно шейдеров(и строк в них)? 

Ссылка на комментарий

хоть я это уже показывал в другом месте, но вдруг местной публике будет интересно:

новая модель освещения - авто lvunter, чуть чуть подпилена для демонстрации мной. Попытка в полный PBR (понимаю - глупо пытаться на сток ассетах, но хоть попытались)

 

AnomalyDX11_2021-06-24_19-42-18.pngAnomalyDX11_2021-06-24_19-42-51.png

AnomalyDX11_2021-06-24_19-59-08.pngAnomalyDX11_2021-06-24_19-48-53.png

 

много косяков, но работа идет

  • Нравится 3
Ссылка на комментарий
14.07.2021 в 18:16, Manche сказал:

Какой шейдер отвечает за тень от солнца в ЧН ? Беда с тенями.cNor5lW.png

 

не  совсем понимаю - что именно ты считаешь за беду. Но если речь идет о "фильтрации" теней - то тебе в shadow.h

 

 

  • Нравится 1
Ссылка на комментарий

Только не бейте палкой я не знаю в какую нужно тему обращаться, у меня проблема вот таки пересветы повсюду

a5bc871a94adt.jpg

примечание мод ганс и адаптирована погода из аномали и все работает нормально но пересветы убивают все 

Изменено пользователем Шипэтя
Ссылка на комментарий
37 минут назад, Шипэтя сказал:

но пересветы убивают все 

Попробуй удалить user.ltx. Настройки графики сбросятся на дефолтные. Может поможет.

  • Согласен 1
Ссылка на комментарий

@Space.Marine 

11 минут назад, Space.Marine сказал:

Попробуй удалить user.ltx.

Не помогло, как я понял по тестам, таких пересветов нет только на статике, а если другие подрубать то тут начинается резня по глазам, может еще есть способ?

Ссылка на комментарий

@Шипэтя

 

в консоли комманда

r2_sun_lumscale

для нее возможны значения от 0 до 3, попробуй что-то в районе 1.0

 

её так же дополняют

r2_sun_lumscale_amb

r2_sun_lumscale_hemi

 

с аналогичным диапазоном значений - попробуй уменьшать/подогнать под себя.

Добавлено  HellRatz,

Обратите внимание на правила цитирования. Оверквоттинг на форуме запрещен. Не обязательно цитировать пост целиком, тем более предыдущий.

  • Согласен 1
  • Полезно 2
Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...