public void CopyDepthNormalTech(GlassManager manager) { depthTechnique = manager.depthTechnique; normalTechnique = manager.normalTechnique; frontDepthTechnique = manager.frontDepthTechnique; enable54Workaround = manager.enable54Workaround; }
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 }
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); }
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); }