| | |
| | | namespace UnityEngine.PostProcessing |
| | | { |
| | | public sealed class VignetteComponent : PostProcessingComponentRenderTexture<VignetteModel> |
| | | { |
| | | static class Uniforms |
| | | { |
| | | internal static readonly int _Vignette_Color = Shader.PropertyToID("_Vignette_Color"); |
| | | internal static readonly int _Vignette_Center = Shader.PropertyToID("_Vignette_Center"); |
| | | internal static readonly int _Vignette_Settings = Shader.PropertyToID("_Vignette_Settings"); |
| | | internal static readonly int _Vignette_Mask = Shader.PropertyToID("_Vignette_Mask"); |
| | | internal static readonly int _Vignette_Opacity = Shader.PropertyToID("_Vignette_Opacity"); |
| | | } |
| | | |
| | | public override bool active |
| | | { |
| | | get |
| | | { |
| | | return model != null && model.enabled |
| | | && !context.interrupted; |
| | | } |
| | | } |
| | | |
| | | public override void Prepare(Material uberMaterial) |
| | | { |
| | | var settings = model.settings; |
| | | uberMaterial.SetColor(Uniforms._Vignette_Color, settings.color); |
| | | |
| | | if (settings.mode == VignetteModel.Mode.Classic) |
| | | { |
| | | uberMaterial.SetVector(Uniforms._Vignette_Center, settings.center); |
| | | uberMaterial.EnableKeyword("VIGNETTE_CLASSIC"); |
| | | float roundness = (1f - settings.roundness) * 6f + settings.roundness; |
| | | uberMaterial.SetVector(Uniforms._Vignette_Settings, new Vector4(settings.intensity * 3f, settings.smoothness * 5f, roundness, settings.rounded ? 1f : 0f)); |
| | | } |
| | | else if (settings.mode == VignetteModel.Mode.Masked) |
| | | { |
| | | if (settings.mask != null && settings.opacity > 0f) |
| | | { |
| | | uberMaterial.EnableKeyword("VIGNETTE_MASKED"); |
| | | uberMaterial.SetTexture(Uniforms._Vignette_Mask, settings.mask); |
| | | uberMaterial.SetFloat(Uniforms._Vignette_Opacity, settings.opacity); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | namespace UnityEngine.PostProcessing
|
| | | {
|
| | | public sealed class VignetteComponent : PostProcessingComponentRenderTexture<VignetteModel>
|
| | | {
|
| | | static class Uniforms
|
| | | {
|
| | | internal static readonly int _Vignette_Color = Shader.PropertyToID("_Vignette_Color");
|
| | | internal static readonly int _Vignette_Center = Shader.PropertyToID("_Vignette_Center");
|
| | | internal static readonly int _Vignette_Settings = Shader.PropertyToID("_Vignette_Settings");
|
| | | internal static readonly int _Vignette_Mask = Shader.PropertyToID("_Vignette_Mask");
|
| | | internal static readonly int _Vignette_Opacity = Shader.PropertyToID("_Vignette_Opacity");
|
| | | }
|
| | |
|
| | | public override bool active
|
| | | {
|
| | | get
|
| | | {
|
| | | return model != null && model.enabled
|
| | | && !context.interrupted;
|
| | | }
|
| | | }
|
| | |
|
| | | public override void Prepare(Material uberMaterial)
|
| | | {
|
| | | var settings = model.settings;
|
| | | uberMaterial.SetColor(Uniforms._Vignette_Color, settings.color);
|
| | |
|
| | | if (settings.mode == VignetteModel.Mode.Classic)
|
| | | {
|
| | | uberMaterial.SetVector(Uniforms._Vignette_Center, settings.center);
|
| | | uberMaterial.EnableKeyword("VIGNETTE_CLASSIC");
|
| | | float roundness = (1f - settings.roundness) * 6f + settings.roundness;
|
| | | uberMaterial.SetVector(Uniforms._Vignette_Settings, new Vector4(settings.intensity * 3f, settings.smoothness * 5f, roundness, settings.rounded ? 1f : 0f));
|
| | | }
|
| | | else if (settings.mode == VignetteModel.Mode.Masked)
|
| | | {
|
| | | if (settings.mask != null && settings.opacity > 0f)
|
| | | {
|
| | | uberMaterial.EnableKeyword("VIGNETTE_MASKED");
|
| | | uberMaterial.SetTexture(Uniforms._Vignette_Mask, settings.mask);
|
| | | uberMaterial.SetFloat(Uniforms._Vignette_Opacity, settings.opacity);
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|