public void ChangeMotionBlur(float amount) { MotionBlurModel.Settings MotionBlurSettings = cc.motionBlur.settings; MotionBlurSettings.shutterAngle = amount; cc.motionBlur.settings = MotionBlurSettings; PlayerPrefs.SetFloat("motionBlur", amount); }
// Token: 0x06001E9E RID: 7838 RVA: 0x0017CE38 File Offset: 0x0017B038 public override void PopulateCommandBuffer(CommandBuffer cb) { if (this.m_FirstFrame) { this.m_FirstFrame = false; return; } Material material = this.context.materialFactory.Get("Hidden/Post FX/Motion Blur"); Material mat = this.context.materialFactory.Get("Hidden/Post FX/Blit"); MotionBlurModel.Settings settings = base.model.settings; RenderTextureFormat format = this.context.isHdr ? RenderTextureFormat.DefaultHDR : RenderTextureFormat.Default; int tempRT = MotionBlurComponent.Uniforms._TempRT; cb.GetTemporaryRT(tempRT, this.context.width, this.context.height, 0, FilterMode.Point, format); if (settings.shutterAngle > 0f && settings.frameBlending > 0f) { this.reconstructionFilter.ProcessImage(this.context, cb, ref settings, BuiltinRenderTextureType.CameraTarget, tempRT, material); this.frameBlendingFilter.BlendFrames(cb, settings.frameBlending, tempRT, BuiltinRenderTextureType.CameraTarget, material); this.frameBlendingFilter.PushFrame(cb, tempRT, this.context.width, this.context.height, material); } else if (settings.shutterAngle > 0f) { cb.SetGlobalTexture(MotionBlurComponent.Uniforms._MainTex, BuiltinRenderTextureType.CameraTarget); cb.Blit(BuiltinRenderTextureType.CameraTarget, tempRT, mat, 0); this.reconstructionFilter.ProcessImage(this.context, cb, ref settings, tempRT, BuiltinRenderTextureType.CameraTarget, material); } else if (settings.frameBlending > 0f) { cb.SetGlobalTexture(MotionBlurComponent.Uniforms._MainTex, BuiltinRenderTextureType.CameraTarget); cb.Blit(BuiltinRenderTextureType.CameraTarget, tempRT, mat, 0); this.frameBlendingFilter.BlendFrames(cb, settings.frameBlending, tempRT, BuiltinRenderTextureType.CameraTarget, material); this.frameBlendingFilter.PushFrame(cb, tempRT, this.context.width, this.context.height, material); } cb.ReleaseTemporaryRT(tempRT); }
public override void PopulateCommandBuffer(CommandBuffer cb) { if (this.m_FirstFrame) { this.m_FirstFrame = false; } else { Material material = base.context.materialFactory.Get("Hidden/Post FX/Motion Blur"); Material mat = base.context.materialFactory.Get("Hidden/Post FX/Blit"); MotionBlurModel.Settings settings = base.model.settings; RenderTextureFormat format = !base.context.isHdr ? RenderTextureFormat.Default : RenderTextureFormat.DefaultHDR; int nameID = Uniforms._TempRT; cb.GetTemporaryRT(nameID, base.context.width, base.context.height, 0, FilterMode.Point, format); if ((settings.shutterAngle > 0f) && (settings.frameBlending > 0f)) { this.reconstructionFilter.ProcessImage(base.context, cb, ref settings, 2, nameID, material); this.frameBlendingFilter.BlendFrames(cb, settings.frameBlending, nameID, 2, material); this.frameBlendingFilter.PushFrame(cb, nameID, base.context.width, base.context.height, material); } else if (settings.shutterAngle > 0f) { cb.SetGlobalTexture(Uniforms._MainTex, 2); cb.Blit(2, nameID, mat, 0); this.reconstructionFilter.ProcessImage(base.context, cb, ref settings, nameID, 2, material); } else if (settings.frameBlending > 0f) { cb.SetGlobalTexture(Uniforms._MainTex, 2); cb.Blit(2, nameID, mat, 0); this.frameBlendingFilter.BlendFrames(cb, settings.frameBlending, nameID, 2, material); this.frameBlendingFilter.PushFrame(cb, nameID, base.context.width, base.context.height, material); } cb.ReleaseTemporaryRT(nameID); } }
// Token: 0x060068BA RID: 26810 RVA: 0x00027B3E File Offset: 0x00025D3E public void EOONHGFEMDO(MotionBlurModel.Settings BGBMIEJJQKC) { this.m_Settings = BGBMIEJJQKC; }
// Token: 0x060068E4 RID: 26852 RVA: 0x00027B3E File Offset: 0x00025D3E public void ENKIEEFBHFD(MotionBlurModel.Settings BGBMIEJJQKC) { this.m_Settings = BGBMIEJJQKC; }
// Token: 0x060068E2 RID: 26850 RVA: 0x00027B3E File Offset: 0x00025D3E public void FGIGNOHHBHB(MotionBlurModel.Settings BGBMIEJJQKC) { this.m_Settings = BGBMIEJJQKC; }
// Token: 0x060068E1 RID: 26849 RVA: 0x00027B3E File Offset: 0x00025D3E public void NEBHFCDDQGL(MotionBlurModel.Settings BGBMIEJJQKC) { this.m_Settings = BGBMIEJJQKC; }
// Token: 0x060068E0 RID: 26848 RVA: 0x00027B3E File Offset: 0x00025D3E public void PKDDQMMGKQD(MotionBlurModel.Settings BGBMIEJJQKC) { this.m_Settings = BGBMIEJJQKC; }
public void ProcessImage(PostProcessingContext context, CommandBuffer cb, ref MotionBlurModel.Settings settings, RenderTargetIdentifier source, RenderTargetIdentifier destination, Material material) { int num = (int)((5f * context.height) / 100f); int num2 = (((num - 1) / 8) + 1) * 8; float num3 = settings.shutterAngle / 360f; cb.SetGlobalFloat(MotionBlurComponent.Uniforms._VelocityScale, num3); cb.SetGlobalFloat(MotionBlurComponent.Uniforms._MaxBlurRadius, (float)num); cb.SetGlobalFloat(MotionBlurComponent.Uniforms._RcpMaxBlurRadius, 1f / ((float)num)); int nameID = MotionBlurComponent.Uniforms._VelocityTex; cb.GetTemporaryRT(nameID, context.width, context.height, 0, FilterMode.Point, this.m_PackedRTFormat, RenderTextureReadWrite.Linear); cb.Blit((Texture)null, nameID, material, 0); int num5 = MotionBlurComponent.Uniforms._Tile2RT; cb.GetTemporaryRT(num5, context.width / 2, context.height / 2, 0, FilterMode.Point, this.m_VectorRTFormat, RenderTextureReadWrite.Linear); cb.SetGlobalTexture(MotionBlurComponent.Uniforms._MainTex, nameID); cb.Blit(nameID, num5, material, 1); int num6 = MotionBlurComponent.Uniforms._Tile4RT; cb.GetTemporaryRT(num6, context.width / 4, context.height / 4, 0, FilterMode.Point, this.m_VectorRTFormat, RenderTextureReadWrite.Linear); cb.SetGlobalTexture(MotionBlurComponent.Uniforms._MainTex, num5); cb.Blit(num5, num6, material, 2); cb.ReleaseTemporaryRT(num5); int num7 = MotionBlurComponent.Uniforms._Tile8RT; cb.GetTemporaryRT(num7, context.width / 8, context.height / 8, 0, FilterMode.Point, this.m_VectorRTFormat, RenderTextureReadWrite.Linear); cb.SetGlobalTexture(MotionBlurComponent.Uniforms._MainTex, num6); cb.Blit(num6, num7, material, 2); cb.ReleaseTemporaryRT(num6); Vector2 vector = (Vector2.one * ((((float)num2) / 8f) - 1f)) * -0.5f; cb.SetGlobalVector(MotionBlurComponent.Uniforms._TileMaxOffs, vector); cb.SetGlobalFloat(MotionBlurComponent.Uniforms._TileMaxLoop, (float)((int)(((float)num2) / 8f))); int num8 = MotionBlurComponent.Uniforms._TileVRT; cb.GetTemporaryRT(num8, context.width / num2, context.height / num2, 0, FilterMode.Point, this.m_VectorRTFormat, RenderTextureReadWrite.Linear); cb.SetGlobalTexture(MotionBlurComponent.Uniforms._MainTex, num7); cb.Blit(num7, num8, material, 3); cb.ReleaseTemporaryRT(num7); int num9 = MotionBlurComponent.Uniforms._NeighborMaxTex; cb.GetTemporaryRT(num9, context.width / num2, context.height / num2, 0, FilterMode.Point, this.m_VectorRTFormat, RenderTextureReadWrite.Linear); cb.SetGlobalTexture(MotionBlurComponent.Uniforms._MainTex, num8); cb.Blit(num8, num9, material, 4); cb.ReleaseTemporaryRT(num8); cb.SetGlobalFloat(MotionBlurComponent.Uniforms._LoopCount, (float)Mathf.Clamp(settings.sampleCount / 2, 1, 0x40)); cb.SetGlobalTexture(MotionBlurComponent.Uniforms._MainTex, source); cb.Blit(source, destination, material, 5); cb.ReleaseTemporaryRT(nameID); cb.ReleaseTemporaryRT(num9); }
// Token: 0x060068D8 RID: 26840 RVA: 0x00027B3E File Offset: 0x00025D3E public void MECBNJIJLEG(MotionBlurModel.Settings BGBMIEJJQKC) { this.m_Settings = BGBMIEJJQKC; }
// Token: 0x060068B7 RID: 26807 RVA: 0x00027B3E File Offset: 0x00025D3E public void OONCJCLHBKC(MotionBlurModel.Settings BGBMIEJJQKC) { this.m_Settings = BGBMIEJJQKC; }
// Token: 0x060068CD RID: 26829 RVA: 0x00027B3E File Offset: 0x00025D3E public void BBKQJEJLHJL(MotionBlurModel.Settings BGBMIEJJQKC) { this.m_Settings = BGBMIEJJQKC; }
// Token: 0x060068CC RID: 26828 RVA: 0x00027B3E File Offset: 0x00025D3E public void CKEBGJBCHHE(MotionBlurModel.Settings BGBMIEJJQKC) { this.m_Settings = BGBMIEJJQKC; }
// Token: 0x060068C7 RID: 26823 RVA: 0x00027B3E File Offset: 0x00025D3E public void OLNBCBOIFPH(MotionBlurModel.Settings BGBMIEJJQKC) { this.m_Settings = BGBMIEJJQKC; }
// Token: 0x06002BF1 RID: 11249 RVA: 0x001C76D8 File Offset: 0x001C58D8 public void ProcessImage(PostProcessingContext context, CommandBuffer cb, ref MotionBlurModel.Settings settings, RenderTargetIdentifier source, RenderTargetIdentifier destination, Material material) { int num = (int)(5f * (float)context.height / 100f); int num2 = ((num - 1) / 8 + 1) * 8; float value = settings.shutterAngle / 360f; cb.SetGlobalFloat(MotionBlurComponent.Uniforms._VelocityScale, value); cb.SetGlobalFloat(MotionBlurComponent.Uniforms._MaxBlurRadius, (float)num); cb.SetGlobalFloat(MotionBlurComponent.Uniforms._RcpMaxBlurRadius, 1f / (float)num); int velocityTex = MotionBlurComponent.Uniforms._VelocityTex; cb.GetTemporaryRT(velocityTex, context.width, context.height, 0, FilterMode.Point, this.m_PackedRTFormat, RenderTextureReadWrite.Linear); cb.Blit(null, velocityTex, material, 0); int tile2RT = MotionBlurComponent.Uniforms._Tile2RT; cb.GetTemporaryRT(tile2RT, context.width / 2, context.height / 2, 0, FilterMode.Point, this.m_VectorRTFormat, RenderTextureReadWrite.Linear); cb.SetGlobalTexture(MotionBlurComponent.Uniforms._MainTex, velocityTex); cb.Blit(velocityTex, tile2RT, material, 1); int tile4RT = MotionBlurComponent.Uniforms._Tile4RT; cb.GetTemporaryRT(tile4RT, context.width / 4, context.height / 4, 0, FilterMode.Point, this.m_VectorRTFormat, RenderTextureReadWrite.Linear); cb.SetGlobalTexture(MotionBlurComponent.Uniforms._MainTex, tile2RT); cb.Blit(tile2RT, tile4RT, material, 2); cb.ReleaseTemporaryRT(tile2RT); int tile8RT = MotionBlurComponent.Uniforms._Tile8RT; cb.GetTemporaryRT(tile8RT, context.width / 8, context.height / 8, 0, FilterMode.Point, this.m_VectorRTFormat, RenderTextureReadWrite.Linear); cb.SetGlobalTexture(MotionBlurComponent.Uniforms._MainTex, tile4RT); cb.Blit(tile4RT, tile8RT, material, 2); cb.ReleaseTemporaryRT(tile4RT); Vector2 v = Vector2.one * ((float)num2 / 8f - 1f) * -0.5f; cb.SetGlobalVector(MotionBlurComponent.Uniforms._TileMaxOffs, v); cb.SetGlobalFloat(MotionBlurComponent.Uniforms._TileMaxLoop, (float)((int)((float)num2 / 8f))); int tileVRT = MotionBlurComponent.Uniforms._TileVRT; cb.GetTemporaryRT(tileVRT, context.width / num2, context.height / num2, 0, FilterMode.Point, this.m_VectorRTFormat, RenderTextureReadWrite.Linear); cb.SetGlobalTexture(MotionBlurComponent.Uniforms._MainTex, tile8RT); cb.Blit(tile8RT, tileVRT, material, 3); cb.ReleaseTemporaryRT(tile8RT); int neighborMaxTex = MotionBlurComponent.Uniforms._NeighborMaxTex; int width = context.width / num2; int height = context.height / num2; cb.GetTemporaryRT(neighborMaxTex, width, height, 0, FilterMode.Point, this.m_VectorRTFormat, RenderTextureReadWrite.Linear); cb.SetGlobalTexture(MotionBlurComponent.Uniforms._MainTex, tileVRT); cb.Blit(tileVRT, neighborMaxTex, material, 4); cb.ReleaseTemporaryRT(tileVRT); cb.SetGlobalFloat(MotionBlurComponent.Uniforms._LoopCount, (float)Mathf.Clamp(settings.sampleCount / 2, 1, 64)); cb.SetGlobalTexture(MotionBlurComponent.Uniforms._MainTex, source); cb.Blit(source, destination, material, 5); cb.ReleaseTemporaryRT(velocityTex); cb.ReleaseTemporaryRT(neighborMaxTex); }
// Token: 0x060068BC RID: 26812 RVA: 0x00027B3E File Offset: 0x00025D3E public void NFMQIGOIPLI(MotionBlurModel.Settings BGBMIEJJQKC) { this.m_Settings = BGBMIEJJQKC; }
// Token: 0x060068BE RID: 26814 RVA: 0x00027B3E File Offset: 0x00025D3E public void PKPPHCBPDQL(MotionBlurModel.Settings BGBMIEJJQKC) { this.m_Settings = BGBMIEJJQKC; }
// Token: 0x060068D9 RID: 26841 RVA: 0x00027B3E File Offset: 0x00025D3E public void FELECLDEDFH(MotionBlurModel.Settings BGBMIEJJQKC) { this.m_Settings = BGBMIEJJQKC; }
// Token: 0x060068DA RID: 26842 RVA: 0x00027B3E File Offset: 0x00025D3E public void CGGJFJNBDJC(MotionBlurModel.Settings BGBMIEJJQKC) { this.m_Settings = BGBMIEJJQKC; }
public void ProcessImage(PostProcessingContext context, CommandBuffer cb, ref MotionBlurModel.Settings settings, RenderTargetIdentifier source, RenderTargetIdentifier destination, Material material) { const float kMaxBlurRadius = 5f; // Calculate the maximum blur radius in pixels. var maxBlurPixels = (int)(kMaxBlurRadius * context.height / 100); // Calculate the TileMax size. // It should be a multiple of 8 and larger than maxBlur. var tileSize = ((maxBlurPixels - 1) / 8 + 1) * 8; // Pass 1 - Velocity/depth packing var velocityScale = settings.shutterAngle / 360f; cb.SetGlobalFloat(Uniforms._VelocityScale, velocityScale); cb.SetGlobalFloat(Uniforms._MaxBlurRadius, maxBlurPixels); cb.SetGlobalFloat(Uniforms._RcpMaxBlurRadius, 1f / maxBlurPixels); var vbuffer = Uniforms._VelocityTex; cb.GetTemporaryRT(vbuffer, context.width, context.height, 0, FilterMode.Point, m_PackedRTFormat, RenderTextureReadWrite.Linear); cb.Blit(null, vbuffer, material, (int)Pass.VelocitySetup); // Pass 2 - First TileMax filter (1/2 downsize) var tile2 = Uniforms._Tile2RT; cb.GetTemporaryRT(tile2, context.width / 2, context.height / 2, 0, FilterMode.Point, m_VectorRTFormat, RenderTextureReadWrite.Linear); cb.SetGlobalTexture(Uniforms._MainTex, vbuffer); cb.Blit(vbuffer, tile2, material, (int)Pass.TileMax1); // Pass 3 - Second TileMax filter (1/2 downsize) var tile4 = Uniforms._Tile4RT; cb.GetTemporaryRT(tile4, context.width / 4, context.height / 4, 0, FilterMode.Point, m_VectorRTFormat, RenderTextureReadWrite.Linear); cb.SetGlobalTexture(Uniforms._MainTex, tile2); cb.Blit(tile2, tile4, material, (int)Pass.TileMax2); cb.ReleaseTemporaryRT(tile2); // Pass 4 - Third TileMax filter (1/2 downsize) var tile8 = Uniforms._Tile8RT; cb.GetTemporaryRT(tile8, context.width / 8, context.height / 8, 0, FilterMode.Point, m_VectorRTFormat, RenderTextureReadWrite.Linear); cb.SetGlobalTexture(Uniforms._MainTex, tile4); cb.Blit(tile4, tile8, material, (int)Pass.TileMax2); cb.ReleaseTemporaryRT(tile4); // Pass 5 - Fourth TileMax filter (reduce to tileSize) var tileMaxOffs = Vector2.one * (tileSize / 8f - 1f) * -0.5f; cb.SetGlobalVector(Uniforms._TileMaxOffs, tileMaxOffs); cb.SetGlobalFloat(Uniforms._TileMaxLoop, (int)(tileSize / 8f)); var tile = Uniforms._TileVRT; cb.GetTemporaryRT(tile, context.width / tileSize, context.height / tileSize, 0, FilterMode.Point, m_VectorRTFormat, RenderTextureReadWrite.Linear); cb.SetGlobalTexture(Uniforms._MainTex, tile8); cb.Blit(tile8, tile, material, (int)Pass.TileMaxV); cb.ReleaseTemporaryRT(tile8); // Pass 6 - NeighborMax filter var neighborMax = Uniforms._NeighborMaxTex; var neighborMaxWidth = context.width / tileSize; var neighborMaxHeight = context.height / tileSize; cb.GetTemporaryRT(neighborMax, neighborMaxWidth, neighborMaxHeight, 0, FilterMode.Point, m_VectorRTFormat, RenderTextureReadWrite.Linear); cb.SetGlobalTexture(Uniforms._MainTex, tile); cb.Blit(tile, neighborMax, material, (int)Pass.NeighborMax); cb.ReleaseTemporaryRT(tile); // Pass 7 - Reconstruction pass cb.SetGlobalFloat(Uniforms._LoopCount, Mathf.Clamp(settings.sampleCount / 2, 1, 64)); cb.SetGlobalTexture(Uniforms._MainTex, source); cb.Blit(source, destination, material, (int)Pass.Reconstruction); cb.ReleaseTemporaryRT(vbuffer); cb.ReleaseTemporaryRT(neighborMax); }