123456789101112131415161718192021222324252627282930313233 |
- using System;
- namespace UnityEngine.PostProcessing
- {
- public sealed class FxaaComponent : PostProcessingComponentRenderTexture<AntialiasingModel>
- {
- public override bool active
- {
- get
- {
- return base.model.enabled && base.model.settings.method == AntialiasingModel.Method.Fxaa && !this.context.interrupted;
- }
- }
- public void Render(RenderTexture source, RenderTexture destination)
- {
- AntialiasingModel.FxaaSettings fxaaSettings = base.model.settings.fxaaSettings;
- Material material = this.context.materialFactory.Get("Hidden/Post FX/FXAA");
- AntialiasingModel.FxaaQualitySettings fxaaQualitySettings = AntialiasingModel.FxaaQualitySettings.presets[(int)fxaaSettings.preset];
- AntialiasingModel.FxaaConsoleSettings fxaaConsoleSettings = AntialiasingModel.FxaaConsoleSettings.presets[(int)fxaaSettings.preset];
- material.SetVector(FxaaComponent.Uniforms._QualitySettings, new Vector3(fxaaQualitySettings.subpixelAliasingRemovalAmount, fxaaQualitySettings.edgeDetectionThreshold, fxaaQualitySettings.minimumRequiredLuminance));
- material.SetVector(FxaaComponent.Uniforms._ConsoleSettings, new Vector4(fxaaConsoleSettings.subpixelSpreadAmount, fxaaConsoleSettings.edgeSharpnessAmount, fxaaConsoleSettings.edgeDetectionThreshold, fxaaConsoleSettings.minimumRequiredLuminance));
- Graphics.Blit(source, destination, material, 0);
- }
- private static class Uniforms
- {
- internal static readonly int _QualitySettings = Shader.PropertyToID("_QualitySettings");
- internal static readonly int _ConsoleSettings = Shader.PropertyToID("_ConsoleSettings");
- }
- }
- }
|