Files
UnrealEngineUWP/Engine/Source/Runtime/Renderer/Private/PostProcess/PostProcessCircleDOF.h
Max Chen 4cde9c20a0 Copying //UE4/Dev-Sequencer to //UE4/Main
==========================
MAJOR FEATURES + CHANGES
==========================

Change 2875025 on 2016/02/20 by Andrew.Rodham

	Sequencer: Cinematic viewport improvements
	  - Added optional letterbox overlay (defaults to 2.35:1)
	  - Added ability to change safe frame colors
	  - Added selected tracks' keys to the transport range
	  - Added buttons for jumping between selected tracks' keyframes on the transport controls
	  - Removed black padding around the viewport where possible
	  - Added ability to specify whether a combo button/menu anchor should close when its parent receives focus
	  - Separated logic of FGroupedKeyArea into FSequencerKeyCollection, so it can be used independently
	  - Added playback range to the viewport frame numbers
	  - All frame numbers are now spin boxes

	#jira UE-26429

Change 2875026 on 2016/02/20 by Thomas.Sarkanen

	Added console commands for recording sequences

	Changed plugin to a developer plugin so we can load it when the editor is in -game mode.
	Added Exec commands.
	Added some more logging to help diagnose problems when using commands.
	Added loading/saving of config for recorder settings (stored in Editor.ini).
	Also disabled controls in recorder window when recording.
	Added auto-saving of assets when in non-editor modes.
	Moved animation settings from UnrealEd to Engine module.

Change 2875036 on 2016/02/20 by Max.Chen

	Sequencer: Call RedrawAllViewports instead of RedrawLevelEditingViewports. In particular, this fixes some update issues when editing values in the key editors.

	#jira UE-26960

Change 2875046 on 2016/02/20 by Max.Preussner

	Sequencer: Fix so that clicking on UMG Animations doesn't dirty the scene.

	#jira UE-26249

Change 2875047 on 2016/02/20 by Max.Chen

	Sequencer: Add option to toggle display of channel colors/lines. View->Channel Colors

Change 2877138 on 2016/02/23 by Max.Chen

	Sequencer: Select corresponding track node when selecting key or section. Removed active/inactive selection since it was only being used in deletion and the rules for deletion are now dependent upon what is selected - delete keys and sections before deleting outliner nodes.

Change 2877143 on 2016/02/23 by Thomas.Sarkanen

	Added new math function: WindRelativeAnglesDegrees

	Given two angles in degrees, 'wind' the angle in Angle1 so that it avoids >180 degree flips.
	Good for winding rotations previously expressed as quaternions into a euler-angle representation.

Change 2877147 on 2016/02/23 by Thomas.Sarkanen

	Added the ability to import sequencer transforms from the root node of an animation sequence

	Intended for use after re-importing animations from DCC tools.
	Available in the right-click menu for transform tracks.
	Also added FindTrackBinding to UMovieScene so track bindings can be recovered from tracks.

Change 2877163 on 2016/02/23 by Max.Chen

	Sequencer: Add option to create keyframe sections as infinite. Sequencer defaults to true, UMG defaults to false.

Change 2877165 on 2016/02/23 by Max.Preussner

	Sequencer: Drawing vertical position lines when dragging keys

Change 2878748 on 2016/02/23 by Max.Chen

	Curve Editor: Switch curve type to user when flatting or straightening tangents.

	#jira UE-27277

Change 2878799 on 2016/02/23 by Frank.Fella

	Sequencer - Add folders support to the outliner.

Change 2880769 on 2016/02/24 by Andrew.Rodham

	Sequencer: Added ability to override runtime spawnable ownership in sequencer
	  - This is exposed as an option on spawnables "Keep Alive Outside Playback Range (In Sequencer)"
	  - Enabling this will stop spawnables from being destroyed when scrubbing outside of the playback range

	#jira UE-27205

Change 2880770 on 2016/02/24 by Thomas.Sarkanen

	Sequencer: Added countdown and recording indicator display when recording

	Also fixed extra popups added post-PIE when animation recordings auto shutdown.

Change 2880782 on 2016/02/24 by Max.Chen

	Sequencer: Snapping now also uses the current time as a possible snap time.

	#jira UE-26306

Change 2880793 on 2016/02/24 by Max.Chen

	Sequencer: Add +Animation to Animation track so that it's consistent with all other tracks that have a + button.

Change 2880812 on 2016/02/24 by Max.Chen

	Sequencer: Fix adjusting the leading edge of a shot section so that it cuts into the shot rather than adjusts the start time.

	#jira UE-26306

Change 2881624 on 2016/02/25 by Andrew.Rodham

	Changing shader version GUID to fix corrupt shaders in ddc

Change 2882408 on 2016/02/25 by Thomas.Sarkanen

	Asset/actors stored in TLazyObjectPtrs can now reference game content from engine

	This is a legitimate use case as lazy object ptrs are designed to reference assets/actors cross-domain.

Change 2882409 on 2016/02/25 by Thomas.Sarkanen

[CL 2899785 by Max Chen in Main branch]
2016-03-08 16:55:04 -05:00

102 lines
3.3 KiB
C++

// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.
/*=============================================================================
PostProcessDOF.h: Post process Depth of Field implementation.
=============================================================================*/
#pragma once
#include "RenderingCompositionGraph.h"
// down sample and setup DOF input
// ePId_Input0: SceneColor
// ePId_Input1: SceneDepth
// derives from TRenderingCompositePassBase<InputCount, OutputCount>
class FRCPassPostProcessCircleDOFSetup : public TRenderingCompositePassBase<2, 2>
{
public:
FRCPassPostProcessCircleDOFSetup(bool bInNearBlurEnabled) : bNearBlurEnabled ( bInNearBlurEnabled ) {}
// interface FRenderingCompositePass ---------
virtual void Process(FRenderingCompositePassContext& Context) override;
virtual void Release() override { delete this; }
virtual FPooledRenderTargetDesc ComputeOutputDesc(EPassOutputId InPassOutputId) const override;
private:
bool bNearBlurEnabled;
};
// ePId_Input0: DOFInput or DOFInputTemporalAA
class FRCPassPostProcessCircleDOFDilate : public TRenderingCompositePassBase<1, 1>
{
public:
FRCPassPostProcessCircleDOFDilate(void) {}
// interface FRenderingCompositePass ---------
virtual void Process(FRenderingCompositePassContext& Context) override;
virtual void Release() override { delete this; }
virtual FPooledRenderTargetDesc ComputeOutputDesc(EPassOutputId InPassOutputId) const override;
};
// ePId_Input0: setup results for far
// ePId_Input1: setup results for near, might have been processed by the dilate pass
// derives from TRenderingCompositePassBase<InputCount, OutputCount>
class FRCPassPostProcessCircleDOF : public TRenderingCompositePassBase<2, 2>
{
public:
FRCPassPostProcessCircleDOF(bool bInNearBlurEnabled) : bNearBlurEnabled ( bInNearBlurEnabled ) {}
// interface FRenderingCompositePass ---------
virtual void Process(FRenderingCompositePassContext& Context) override;
virtual void Release() override { delete this; }
virtual FPooledRenderTargetDesc ComputeOutputDesc(EPassOutputId InPassOutputId) const override;
private:
bool bNearBlurEnabled;
template <uint32 NearBlurEnable, uint32 Quality>
FShader* SetShaderTempl(const FRenderingCompositePassContext& Context);
};
// derives from TRenderingCompositePassBase<InputCount, OutputCount>
// ePId_Input0: Full res scene color
// ePId_Input1: output 0 from the DOFSetup (possibly further blurred)
// ePId_Input2: output 1 from the DOFSetup (possibly further blurred)
class FRCPassPostProcessCircleDOFRecombine : public TRenderingCompositePassBase<3, 1>
{
public:
FRCPassPostProcessCircleDOFRecombine(bool bInNearBlurEnabled) : bNearBlurEnabled ( bInNearBlurEnabled ) {}
// interface FRenderingCompositePass ---------
virtual void Process(FRenderingCompositePassContext& Context) override;
virtual void Release() override { delete this; }
virtual FPooledRenderTargetDesc ComputeOutputDesc(EPassOutputId InPassOutputId) const override;
private:
bool bNearBlurEnabled;
template <uint32 NearBlurEnable, uint32 Quality>
FShader* SetShaderTempl(const FRenderingCompositePassContext& Context);
};
// to verify this can be used: http://www.radical.org/aov
// @return in mm, assuming the sensor in the DepthOfField settings
float ComputeFocalLengthFromFov(const FSceneView& View);
FVector4 CircleDofHalfCoc(const FSceneView& View);