private bool getShadowParameterHandler(string parameterName, out string parameterValue) { switch (parameterName) { case "ShadowTechnique": switch (ShadowTechnique) { case ShadowTechnique.None: parameterValue = "None"; break; case ShadowTechnique.Simple: parameterValue = "Simple"; break; case ShadowTechnique.Depth: parameterValue = "Depth"; break; default: parameterValue = ""; return(false); } break; case "ShadowColor": parameterValue = ShadowColor.To_0_255_String(); break; case "ShadowTextureCount": parameterValue = ShadowTextureCount.ToString(); break; case "ShadowTextureSize": parameterValue = ShadowTextureSize.ToString(); break; case "ShadowFarDistance": parameterValue = ShadowFarDistance.ToString(); break; case "Help": parameterValue = ShadowParameterHelp(); break; default: parameterValue = ""; return(false); } return(true); }
public void UpdateLOD() { Camera cam = Camera.main; if (!cam) { return; } Vector3 v1 = cam.transform.position; Vector3 v2 = transform.position; float radius = range; float distance = Vector3.Distance (v1, v2) * levelOfDetailAggression; float qualityMultiplier; if (distance <= radius) { qualityMultiplier = 1.0f; } else { qualityMultiplier = radius / distance; } int qualityNew = Mathf.ClosestPowerOfTwo ((int)((int)shadowResolution * qualityMultiplier)); qualityNew = Mathf.Max (64, qualityNew); if (qualityNew != (int)shadowResolutionCurrent) { shadowResolutionCurrent = (ShadowTextureSize)qualityNew; UpdateNextFrame = true; } CheckTexture (); }