- Home /
Question by
alone1992 · Oct 05, 2013 at 03:11 PM ·
blenderuv mappingambient-occlusion
How import ambient occlusion from blender to unity?
hello I have an simple object ambient occlusion map in blender and I want to import it to unity.
but I don't know how & where can I use that map in unity3d to have better result?
in which menu or ... I can add my ambient occlusion map to my object in unity?
thanks
Comment
Best Answer
Answer by meat5000 · Oct 05, 2013 at 03:20 PM
Select a shader on the object material that supports an Occlusion map and simply drop the file into it.
shader.jpg
(119.4 kB)
thanks , but I can't find any shader like your shader!?
Here's another
Shader "Bumped Anisotropic Specular" {
Properties {
_Color ("$$anonymous$$ain Color", Color) = (1,1,1,1)
_$$anonymous$$ainTex ("Diffuse (RGB) Alpha (A)", 2D) = "white" {}
_SpecularTex ("Specular (R) Gloss (G) Anisotropic $$anonymous$$ask (B)", 2D) = "gray" {}
_Bump$$anonymous$$ap ("Normal (Normal)", 2D) = "bump" {}
_AnisoTex ("Anisotropic Direction (RGB)", 2D) = "bump" {}
_AnisoOffset ("Anisotropic Highlight Offset", Range(-1,1)) = -0.2
_Cutoff ("Alpha Cut-Off Threshold", Range(0,1)) = 0.5
}
SubShader{
Tags { "RenderType" = "Opaque" }
CGPROGRA$$anonymous$$
struct SurfaceOutputAniso {
fixed3 Albedo;
fixed3 Normal;
fixed4 AnisoDir;
fixed3 Emission;
half Specular;
fixed Gloss;
fixed Alpha;
};
float _AnisoOffset, _Cutoff;
inline fixed4 LightingAniso (SurfaceOutputAniso s, fixed3 lightDir, fixed3 viewDir, fixed atten)
{
fixed3 h = normalize(normalize(lightDir) + normalize(viewDir));
float NdotL = saturate(dot(s.Normal, lightDir));
fixed HdotA = dot(normalize(s.Normal + s.AnisoDir.rgb), h);
float aniso = max(0, sin(radians((HdotA + _AnisoOffset) * 180)));
float spec = saturate(dot(s.Normal, h));
spec = saturate(pow(lerp(spec, aniso, s.AnisoDir.a), s.Gloss * 128) * s.Specular);
fixed4 c;
c.rgb = ((s.Albedo * _LightColor0.rgb * NdotL) + (_LightColor0.rgb * spec)) * (atten * 2);
c.a = 1;
clip(s.Alpha - _Cutoff);
return c;
}
#pragma surface surf Aniso
#pragma target 3.0
struct Input
{
float2 uv_$$anonymous$$ainTex;
float2 uv_AnisoTex;
};
sampler2D _$$anonymous$$ainTex, _SpecularTex, _Bump$$anonymous$$ap, _AnisoTex;
void surf (Input IN, inout SurfaceOutputAniso o)
{
fixed4 albedo = tex2D(_$$anonymous$$ainTex, IN.uv_$$anonymous$$ainTex);
o.Albedo = albedo.rgb;
o.Alpha = albedo.a;
o.Normal = UnpackNormal(tex2D(_Bump$$anonymous$$ap, IN.uv_$$anonymous$$ainTex));
fixed3 spec = tex2D(_SpecularTex, IN.uv_$$anonymous$$ainTex).rgb;
o.Specular = spec.r;
o.Gloss = spec.g;
o.AnisoDir = fixed4(tex2D(_AnisoTex, IN.uv_AnisoTex).rgb, spec.b);
}
ENDCG
}
FallBack "Transparent/Cutout/VertexLit"