Showing posts with label ShaderForge. Show all posts
Showing posts with label ShaderForge. Show all posts

Monday, August 14, 2017

Dependent Texture Reads

Not dependent:
float3 nonDependentTextureRead = tex2D(_MainTexture, input.texcoord).xyz;

Dependent:
float3 DependentTextureRead = tex2D(_MainTexture, input.texcoord.zw).xyz;
float3 DependentTextureRead = tex2D(_MainTexture, input.texcoord.yx).xyz;
float3 DependentTextureRead = tex2D(_MainTexture, input.texcoord*2.0).xyz;

==========================

struct v2f{
 half2 uv : TEXCOORDn; //pass uvs direcly
 half4 packed2uvs : TEXCOORDn; //afraid of dependent texture read, avoid packing 2 uvs into 1 varying
 half4 packed4Scalars : TEXCOORDn; //for general purpose scalar packing
}

tex2D(_Texture,i.uv); //good, fastest
tex2D(_Texture,i.uv.xy); //afraid of dependent texture read, depends on driver?. avoid
tex2D(_Texture,i.uv.zw); //afraid of dependent texture read. avoid

Wednesday, March 8, 2017

Unity Shader Property Names

Legacy

  • _MainTex (Texture, diffuse color in the RGB channels, transparency in the A channel)
  • _Color (Color, diffuse color tint. This is multiplied by _MainTex)
  • _SpecMap (Texture, specular map)
  • _SpecColor (Color, specular color tint)
  • _Shininess (Value or Slider, controls glossiness)
  • _BumpMap (Texture, normal map)
  • _TransparencyLM (Texture, rgb channels define colored transparency)
  • _Illum (Texture, for emissive materials. This will be a mask of _MainTex * _Color)

Standard

  • Albedo  (diffuse color)
  • Normal (tangent space normal, if written)
  • Emission
  • Specular (specular power in 0..1 range)
  • Gloss (specular intensity)
  • Alpha (alpha for transparencies)

Physical (metallic)

  • Albedo (base - diffuse or specular - color)
  • Normal (tangent space normal, if written)
  • Emission
  • Metallic (0=non-metal, 1=metal)
  • Smoothness (0=rough, 1=smooth)
  • Occlusion (occlusion - default 1)
  • Alpha (alpha for transparencies)

Physical (specular)

  • Albedo (diffuse color)
  • Specular (specular color)
  • Normal (tangent space normal, if written)
  • Emission
  • Smoothness (0=rough, 1=smooth)
  • Occlusion (occlusion  - default 1)
  • Alpha (alpha for transparencies)

Sunday, January 22, 2017

Unity3D Shader LOD Stuff

Unity3D Documentation:


  • Shader LOD Values
    VertexLit kind of shaders = 100
    Decal, Reflective VertexLit = 150
    Diffuse = 200
    Diffuse Detail, Reflective Bumped Unlit, Reflective Bumped VertexLit = 250
    Bumped, Specular = 300
    Bumped Specular = 400
    Parallax = 500
    Parallax Specular = 600
  • Global Shader LOD Setting

Shader Forge: