12345678910111213141516171819202122232425262728293031323334353637 |
- #if PPV2_EXISTS
- using System;
- using BIRPToURPConversionExtensions;
- using UnityEditor;
- using UnityEngine.Rendering;
- using BIRPRendering = UnityEngine.Rendering.PostProcessing;
- using URPRendering = UnityEngine.Rendering.Universal;
-
- namespace UnityEditor.Rendering.Universal
- {
- public class MotionBlurConverter : PostProcessEffectSettingsConverter
- {
- protected override Type OldSettingsType { get; } = typeof(BIRPRendering.MotionBlur);
-
- protected override void ConvertToTarget(BIRPRendering.PostProcessEffectSettings oldSettings, VolumeProfile targetProfile)
- {
- var oldMotionBlur = oldSettings as BIRPRendering.MotionBlur;
-
- var newVolumeComponent = AddVolumeComponentToAsset<URPRendering.MotionBlur>(targetProfile);
-
- newVolumeComponent.active = oldMotionBlur.active;
-
- // Note: These settings cannot provide visual parity,
- // but this scale factor provides a good starting point.
- oldMotionBlur.shutterAngle.Convert(newVolumeComponent.intensity, scale: 1f / 360f, oldMotionBlur.enabled);
-
- newVolumeComponent.quality.overrideState = oldMotionBlur.sampleCount.overrideState;
- if (oldMotionBlur.sampleCount >= 24)
- newVolumeComponent.quality.value = URPRendering.MotionBlurQuality.High;
- else if (oldMotionBlur.sampleCount > 12)
- newVolumeComponent.quality.value = URPRendering.MotionBlurQuality.Medium;
- else
- newVolumeComponent.quality.value = URPRendering.MotionBlurQuality.Low;
- }
- }
- }
- #endif
|