public void CopyDepthNormalTech(GlassManager manager)
 {
     depthTechnique      = manager.depthTechnique;
     normalTechnique     = manager.normalTechnique;
     frontDepthTechnique = manager.frontDepthTechnique;
     enable54Workaround  = manager.enable54Workaround;
 }
示例#2
0
        public static void DepthNormalTechFromFrontDepth(GlassFrontDepthTechnique frontTechIn, ref GlassDepthTechnique depthTechOut, ref GlassNormalTechnique normalTechOut, bool _enable54Workaround = false)
        {
            //    TODO: replace this workaround for bug in 5.4 if better fix found
                        #if UNITY_5_4_OR_NEWER
            if (_enable54Workaround)
            {
                //	No need to change anything as long as front depth is off
            }
#endif
        }
示例#3
0
        public static GlassFrontDepthTechnique FrontDepthTechFromNormal(GlassFrontDepthTechnique currentFrontDepthTechnique, GlassNormalTechnique inputNormalTechnique, bool _enable54Workaround = false)
        {
            //    TODO: replace this workaround for bug in 5.4 if better fix found
                        #if UNITY_5_4_OR_NEWER
            if (_enable54Workaround)
            {
                return(GlassFrontDepthTechnique.DEPTH_FRONT_SHADER_OFF);
            }
#endif
            return(currentFrontDepthTechnique);
        }
示例#4
0
        public void SetFrontDepthTechnique(GlassFrontDepthTechnique technique, bool forceUpdate = false)
        {
            if (!forceUpdate)
            {
                if (technique == frontDepthTechnique)
                {
                    return;
                }
            }

            //    TODO: replace this workaround for bug in 5.4 if better fix found
            #if UNITY_5_4_OR_NEWER
            if (glassManager.enable54Workaround)
            {
                frontDepthTechnique = GlassFrontDepthTechnique.DEPTH_FRONT_SHADER_OFF;
                glassManager.frontDepthTechnique = frontDepthTechnique;
            }
            else
            {
#endif
            frontDepthTechnique = technique;
            glassManager.frontDepthTechnique = frontDepthTechnique;
#if UNITY_5_4_OR_NEWER
        }
#endif


            switch (frontDepthTechnique)
            {
            case GlassFrontDepthTechnique.DEPTH_FRONT_SHADER_ON:
                Shader.DisableKeyword("DEPTH_FRONT_SHADER_OFF");
                Shader.EnableKeyword("DEPTH_FRONT_SHADER_ON");
                break;

            case GlassFrontDepthTechnique.DEPTH_FRONT_SHADER_OFF:
                Shader.DisableKeyword("DEPTH_FRONT_SHADER_ON");
                Shader.EnableKeyword("DEPTH_FRONT_SHADER_OFF");
                break;
            }
        }
 public void UpdateNormalTechnique()
 {
     depthTechnique      = GlassDepthCamera.DepthTechFromNormal(depthTechnique, normalTechnique);
     frontDepthTechnique = GlassDepthCamera.FrontDepthTechFromNormal(frontDepthTechnique, normalTechnique, enable54Workaround);
 }
 public void UpdateDepthTechnique()
 {
     normalTechnique     = GlassDepthCamera.NormalTechFromDepth(normalTechnique, depthTechnique);
     frontDepthTechnique = GlassDepthCamera.FrontDepthTechFromDepth(frontDepthTechnique, depthTechnique, enable54Workaround);
 }