- Home /
Is it possible to achieve this with a shader
Well first take a look at the picture below ...
Now suppose this is a single object (i mean no faces extracted from it) but has multiple UV sets (one for blue part and one for that orange) ... now let me know if it is possible to achive this with single shader and single material ... i mean if that shader could render orange texture in UV2 and blue in UV1
Answer by Namey5 · Aug 27, 2016 at 01:48 PM
It's definitely possible, and although I've never tried I'm fairly certain this will work.
Shader "Custom/2 UV Shader" {
Properties {
_Color ("Color", Color) = (1,1,1,1)
_MainTex ("Albedo (RGBA)", 2D) = "white" {}
_MainTex2 ("Albedo 2 (RGB)", 2D) = "white" {}
_Glossiness ("Smoothness", Range(0,1)) = 0.5
_Metallic ("Metallic", Range(0,1)) = 0.0
}
SubShader {
Tags { "RenderType"="Opaque" }
LOD 200
CGPROGRAM
// Physically based Standard lighting model, and enable shadows on all light types
#pragma surface surf Standard fullforwardshadows
// Use shader model 3.0 target, to get nicer looking lighting
#pragma target 3.0
sampler2D _MainTex;
sampler2D _MainTex2;
struct Input {
float2 uv_MainTex;
float2 uv2_MainTex2;
};
half _Glossiness;
half _Metallic;
fixed4 _Color;
void surf (Input IN, inout SurfaceOutputStandard o) {
// Albedo comes from a texture tinted by color
fixed4 c = lerp (tex2D (_MainTex, IN.uv_MainTex), tex2D (_MainTex2, IN.uv2_MainTex2), 1-tex2D (_MainTex, IN.uv_MainTex).a) * _Color;
o.Albedo = c.rgb;
// Metallic and smoothness come from slider variables
o.Metallic = _Metallic;
o.Smoothness = _Glossiness;
o.Alpha = c.a;
}
ENDCG
}
FallBack "Diffuse"
}
This is the normal standard shader, with the alpha value of the first texture blending between the 2 textures.
@Namey2 First of all sorry for this late comment as i was not with PC for these two days and secondly this shader is not working (FOR $$anonymous$$E) as it is blending the two textures means i m getting a blend of orange and blue in both of my UVs ...
Enable "alpha from grayscale" in the texture import section, and colour any section of the blue texture you don't want to be blue black. Alternatively, I could set it up to use a 3rd texture as a mask for the 2 main ones. The textures have to be blended, otherwise they will just be drawn at the same time.