Шейдер OutLine не работает вблизи от камеры

Шейдеры и все-все-все.

Шейдер OutLine не работает вблизи от камеры

Сообщение Kakaha_228 13 апр 2023, 21:32

Приветствую. Около года назад нашёл на просторах интернета шейдер для подсвечивания объектов (outline). Тогда сидел на Unity 5.6.7f1 и там он работал просто отлично. НО сейчас я перешел на LTS версию 2020.3.47f1 и на ней он так же хорошо работает, но стоит приблизить камеру к нему достаточно близко, подсвечивание перестаёт работать. Отдаляю камеру, снова подсвечивается. А в моей игре нужно подсвечивать только на близком расстоянии (скриптом это реализовал очень просто). В общем, в шейдерах я не силён, вот и пишу сюда, может кто сможет помочь. Собственно, вот сам шейдер:

Shader "Outlined/Uniform"
{
Properties
{
_Color("Main Color", Color) = (0.5,0.5,0.5,1)
_MainTex ("Texture", 2D) = "white" {}
_OutlineColor ("Outline color", Color) = (0,0,0,1)
_OutlineWidth ("Outlines width", Range (0.0, 2.0)) = 1.1
}

CGINCLUDE
#include "UnityCG.cginc"

struct appdata
{
float4 vertex : POSITION;
};

struct v2f
{
float4 pos : POSITION;
};

uniform float _OutlineWidth;
uniform float4 _OutlineColor;
uniform sampler2D _MainTex;
uniform float4 _Color;

ENDCG

SubShader
{
Tags{ "Queue" = "Transparent" "IgnoreProjector" = "True" }

Pass //Outline
{
ZWrite Off
Cull Back
CGPROGRAM

#pragma vertex vert
#pragma fragment frag

v2f vert(appdata v)
{
appdata original = v;
v.vertex.xyz += _OutlineWidth * normalize(v.vertex.xyz);

v2f o;
o.pos = UnityObjectToClipPos(v.vertex);
return o;

}

half4 frag(v2f i) : COLOR
{
return _OutlineColor;
}

ENDCG
}

Tags{ "Queue" = "Geometry"}

CGPROGRAM
#pragma surface surf Lambert

struct Input {
float2 uv_MainTex;
};

void surf (Input IN, inout SurfaceOutput o) {
fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;
o.Albedo = c.rgb;
o.Alpha = c.a;
}
ENDCG
}
Fallback "Diffuse"
}

Пробовал предпинимать следующее:
- делал Near у камер ближе, но это так же относится и к редактору, так что это не помогло.
- увеличивал масштаб как самой модели, так и всех объектов на сцене в целом, так же не помогло.

Вот скриншоты проблемы:
https://files.fm/thumb_show.php?i=j7pjegt3w
https://files.fm/thumb_show.php?i=fq3jvdwxg
Да не нужна мне подпись...
Аватара пользователя
Kakaha_228
UNIт
 
Сообщения: 60
Зарегистрирован: 21 фев 2021, 14:12

Re: Шейдер OutLine не работает вблизи от камеры

Сообщение 1max1 13 апр 2023, 22:48

У меня тоже не работает этот шейдер, вообще)
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Шейдер OutLine не работает вблизи от камеры

Сообщение Kakaha_228 14 апр 2023, 15:44

1max1 писал(а):У меня тоже не работает этот шейдер, вообще)

А ты Outlines width у материала изменял?
Да не нужна мне подпись...
Аватара пользователя
Kakaha_228
UNIт
 
Сообщения: 60
Зарегистрирован: 21 фев 2021, 14:12

Re: Шейдер OutLine не работает вблизи от камеры

Сообщение 1max1 14 апр 2023, 16:54

Я все параметры крутил туда сюда, ничего не менялось) Может нужны правильные настройки пайплайна или камеры, хз.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51


Вернуться в Shader Lab

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3