134 lines
4.3 KiB
Ucode
134 lines
4.3 KiB
Ucode
/**
|
|
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
|
|
*
|
|
* Depth of Field post process effect
|
|
*
|
|
*/
|
|
class DOFAndBloomEffect extends DOFEffect
|
|
native;
|
|
|
|
/** A scale applied to blooming colors. */
|
|
var(Bloom) float BloomScale;
|
|
|
|
/** Any component of a pixel's color must be larger than this to contribute bloom. */
|
|
var(Bloom) float BloomThreshold;
|
|
|
|
/** Multiplies against the bloom color. */
|
|
var(Bloom) color BloomTint;
|
|
|
|
/**
|
|
* Scene color luminance must be less than this to receive bloom.
|
|
* This behaves like Photoshop's screen blend mode and prevents over-saturation from adding bloom to already bright areas.
|
|
* The default value of 1 means that a pixel with a luminance of 1 won't receive any bloom, but a pixel with a luminance of .5 will receive half bloom.
|
|
*/
|
|
var(Bloom) float BloomScreenBlendThreshold;
|
|
|
|
/** A multiplier applied to all reads of scene color. */
|
|
var deprecated float SceneMultiplier;
|
|
|
|
/** the radius of the bloom effect 0..64 */
|
|
var(Bloom) float BlurBloomKernelSize;
|
|
|
|
var deprecated bool bEnableReferenceDOF;
|
|
|
|
`if(`__TW_HQ_BLOOM_)
|
|
/** Scales the final bloom color before applying to the scene */
|
|
var(HQ_Bloom) float BloomIntensity;
|
|
|
|
/** Width multiplier for the blur kernel. Larger values equal width bloom. */
|
|
var(HQ_Bloom) float BloomWidth;
|
|
|
|
/** During the bright-pass phase, the candidate color at each pixel is scaled by this
|
|
* value before applying the threshold. */
|
|
var(HQ_Bloom) float Exposure;
|
|
|
|
/** Threshold value for determining which pixels contribute to bloom. Pixel colors
|
|
* are scaled by Exposure before applying the threshold. */
|
|
var(HQ_Bloom) float BloomThreshold2;
|
|
`endif
|
|
|
|
/**
|
|
* Allows to specify the depth of field type. Choose depending on performance and quality needs.
|
|
* "SimpleDOF" blurs the out of focus content and recombines that with the unblurred scene (fast, almost constant speed).
|
|
* "ReferenceDOF" makes use of dynamic branching in the pixel shader and features circular Bokeh shape effects (slow for big Kernel Size).
|
|
`if(`__TW_POSTPROCESS_)
|
|
* "VariableWidthDOF" uses a summed area table for constant-time variable-width blur.
|
|
`endif
|
|
* "BokehDOF" allows to specify a Bokeh texture and a bigger radius (requires D3D11, slow when using a lot of out of focus content)
|
|
*/
|
|
var(DepthOfField) enum EDOFType
|
|
{
|
|
DOFType_SimpleDOF<DisplayName=SimpleDOF>,
|
|
DOFType_ReferenceDOF<DisplayName=ReferenceDOF>,
|
|
DOFType_BokehDOF<DisplayName=BokehDOF>,
|
|
`if(`__TW_POSTPROCESS_)
|
|
DOFType_VariableWidthDOF<DisplayName=VariableWidthDOF>,
|
|
`endif
|
|
} DepthOfFieldType;
|
|
|
|
/**
|
|
* Allows to specify the quality of the chose Depth of Field Type.
|
|
* This meaning depends heavily on the current implementation and that might change.
|
|
* If performance is important the lowest acceptable quality should be used.
|
|
*/
|
|
var(DepthOfField) enum EDOFQuality
|
|
{
|
|
DOFQuality_Low<DisplayName=Low>,
|
|
DOFQuality_Medium<DisplayName=Medium>,
|
|
DOFQuality_High<DisplayName=High>,
|
|
} DepthOfFieldQuality;
|
|
|
|
/** only used if BokehDOF is enabled */
|
|
var(DepthOfField) Texture2D BokehTexture;
|
|
|
|
cpptext
|
|
{
|
|
// UPostProcessEffect interface
|
|
|
|
/**
|
|
* Creates a proxy to represent the render info for a post process effect
|
|
* @param WorldSettings - The world's post process settings for the view.
|
|
* @return The proxy object.
|
|
*/
|
|
virtual class FPostProcessSceneProxy* CreateSceneProxy(const FPostProcessSettings* WorldSettings);
|
|
|
|
/**
|
|
* @param View - current view
|
|
* @return TRUE if the effect should be rendered
|
|
*/
|
|
virtual UBOOL IsShown(const FSceneView* View) const;
|
|
|
|
// UObject interface
|
|
|
|
/**
|
|
* Called after this instance has been serialized. UberPostProcessEffect should only
|
|
* ever exists in the SDPG_PostProcess scene
|
|
*/
|
|
virtual void PostLoad();
|
|
|
|
/**
|
|
* This allows to print a warning when the effect is used.
|
|
*/
|
|
virtual void OnPostProcessWarning(FString& OutWarning) const
|
|
{
|
|
OutWarning = TEXT("Warning: DOFAndBloom should no longer be used, use Uberpostprocess instead.");
|
|
}
|
|
}
|
|
|
|
defaultproperties
|
|
{
|
|
BloomScale=1.0
|
|
BloomThreshold=1.0
|
|
BloomTint=(R=255,G=255,B=255)
|
|
BloomScreenBlendThreshold=10
|
|
BlurKernelSize=16.0
|
|
BlurBloomKernelSize=16.0
|
|
bEnableReferenceDOF=false
|
|
|
|
`if(`__TW_HQ_BLOOM_)
|
|
BloomIntensity=1.05
|
|
BloomWidth=4
|
|
Exposure=1.25
|
|
BloomThreshold2=0.6
|
|
`endif
|
|
} |