ShaderLab 使用默认的 unity 天空盒

ShaderLab use default unity skybox

所有反射测试都使用 属性 设置立方体贴图,例如:

Properties {
  _Cube("Reflection Map", Cube) = "" {}
}

但我想对所有着色器使用 "Lighting" 中的天空盒。 怎么做?

使用 unity_SpecCube0,这里是使用 unity 的辅助函数进行采样的简单版本

half3 GetCube(half3 _vector, half _smoothness) {
   half mip = _smoothness * 6.0;
   half4 rgbm = UNITY_SAMPLE_TEXCUBE_LOD(unity_SpecCube0, _vector, mip);
   return DecodeHDR(rgbm, unity_SpecCube0_HDR);
}