@PhilMcLaren

Какие могут быть отличия в работе пиксельного шейдера в веб плеере по сравнению с редактором?

Шейдер создает эффект glow для спрайта, фактически создавая копию текстуры, залитую выбранным цветом. Созданная копия помещается за исходным спрайтом, таким образом получается "подсветка" по контуру непрозрачной части текстуры. В редакторе работает отлично, но в билде под веб плеер шейдер как будто иначе читает альфа-канал и заливает всю область текстуры.
Выглядит в редакторе:
4641280fc9bd42dab74f1482af72f711.png
Выглядит в веб плеере:
98581ec676bf45448145ce795027bcaa.png

Самая упоминаемая проблема с шейдерами в веб плеере - отсутствие файла шейдера в билде при использовании Shader.Find, но это точно не мой случай, шейдер в плеере работает. Хотя на всякий случай уже клал его в сериализуемое поле, ничего не изменилось.

Пасс в шейдере один.
Собака зарыта где-то здесь:
half4 frag (v2f i) : COLOR
			{
				float blurAmount = _Radius * 0.0275;

				half4 sum;
								
				float a=0;
								
				for (float w = -4; w < 5; w ++)
				{
					for (float h = -4; h < 5; h ++)
					{		
							float4 buv = float4(i.uv.x + w * blurAmount, i.uv.y + h * blurAmount, 0, 0);
							half4 tex = tex2Dlod(_MainTex, buv) * (0.025 * (5 - abs(float(h)) + 1));
							
							if (buv.x > 0 && buv.x < 1 && buv.y > 0 && buv.y < 1)
							{
								sum += tex;
								a += tex.a / 4;
							}
					}
				}

				sum.rgb = lerp(_Color, _SecondColor, a);

				sum.a=_Color.a * a * _Transparency;
				
				return sum;
			}


Спасибо уделившим внимание
  • Вопрос задан
  • 2512 просмотров
Решения вопроса 1
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
Читал, что с tex2Dlod бывают проблемы, которые решаются добавлением
#pragma target 3.0
и/или
#pragma glsl
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы