avatar

Transparent шейдер Unity3d

Спросил ,
Привет всем. Шейдеры я пишу не важно, даже очень.
Мне нужно написать Transparent шейдер чтобы он в тоже время был двусторонним, но у меня получается артефакт в виде просвечивании объекта.

Это всё является одним мешем.

При использовании шейдера Nature/Tree Soft Occlusion Levels я добиваюсь нужного эффекта, но он мне немного не подходит.

6 ответов

avatar
Код бы чтоль выложил. Вообще, в таких штуках решает порядок вывода: выводить надо сначала дальние объекты, потом близкие.
avatar
Я вроде писал что я плохо пишу шейдеры. И то что это всё один объект.
Shader "Wheels" {
	Properties {
	    _Color ("Main Color", Color) = (1,0.5,0.5,1)
		_MainTex ("Texture", 2D) = "white" {}
	}
	SubShader {
		Tags {"RenderType" = "TreeTransparentCutout" "Queue"="Transparent" }		
		cull off

								
		CGPROGRAM
		#pragma surface surf Lambert alpha

		sampler2D _MainTex;
		fixed4 _Color;

		struct Input {
			float2 uv_MainTex;
		};

		void surf (Input IN, inout SurfaceOutput o){
		float4 tex = tex2D (_MainTex, IN.uv_MainTex) * _Color;
		
		o.Albedo = tex.rgb;
		o.Alpha = tex.a;
      }
		ENDCG
	} 
	FallBack "Diffuse"
}
avatar
А что этот шейдер должен делать и чего ты хочешь этим добиться?
avatar
Ты вообще читал вопрос? Он должен быть с альфой и быть в тоже время двусторонним
avatar
Посмотри уроки про струмфи. Сам тоже подобное сделать хотел. И сделал, минут 30 поизучав его.
avatar
Ну, на это я тебе скажу только одно: шикарная постановка задачи.
Только зарегистрированные и авторизованные пользователи могут отвечать на вопросы.