   /*-----------------------------------------------------------.
  /                       Description                           /
  '------------------------------------------------------------/

感谢原作者ceejay，采自guru3d。
初步汉化alpha版，发布于剑灵贴吧
一区绿明村 莨菪

   /*-----------------------------------------------------------.
  /                      Choose effects                         /
  '-----------------------------------------------------------*/

// Set to 1 for ON or 0 for OFF
#define USE_SMAA_ANTIALIASING 1 //[0 or 1] smaa抗锯齿：使用smaa技术进行画面抗锯齿处理。》
#define USE_FXAA_ANTIALIASING 0 //[0 or 1] fxaa抗锯齿：使用fxaa进行抗锯齿处理（不建议，目前只适用于dx9游戏，且dll文件需要更换）
#define USE_EXPLOSION     0 //[0 or 1] Explosion爆炸效果 :模糊像素，使得画面像雾面玻璃一样（没人会去用）
#define USE_CARTOON       0 //[0 or 1] Cartoon卡通黑边 : 给物体，字体边缘加上黑边，使其看起来像美式漫画一样 (与smaa抗锯齿，crt特效，全屏泛光冲突)
#define USE_ADVANCED_CRT  0 //[0 or 1] Advanced CRT旧式显示器特效 : 模拟一种旧式大块头显示器的显示效果，和多种效果冲突，且性能影响较大(不建议）
#define USE_BLOOM         0 //[0 or 1] Bloom全屏光线晕染（务必使用） : bloom光影特效，比游戏自带的晕染效果强力且耗能相比之下降低，关闭游戏自带的晕染效果后再开启》
#define USE_HDR           0 //[0 or 1] HDR :高对比度光影效果，这个效果和上面的bloom二者选一，不可以用时用，该效果使得光亮更亮，暗处更暗营造一种高对比的效果》
#define USE_LUMASHARPEN   1 //[0 or 1] LumaSharpen边缘锐化 : 可以使fxaa造成的模糊有所改善，锐化边缘，使得细节更加明显（个人建议不开启）
#define USE_LEVELS        0 //[0 or 1] Levels : 更改画面黑白平衡，提高画面对比度，但是有“可能”造成画面撕裂，不建议开启。
#define USE_TECHNICOLOR   0 //[0 or 1] TECHNICOLOR : 旧电影特效，无开启必要。
#define USE_DPX           0 //[0 or 1] Cineon DPX :dpx特效跟楼上一样，无开启必要，一样是一个模拟老电影的画面特效
#define USE_MONOCHROME    0 //[0 or 1] Monochrome : 使画面变成黑白。
#define USE_LIFTGAMMAGAIN 0 //[0 or 1] Lift Gamma Gain : 调整画面gamma值，简单来说就是更暗，或者更亮。
#define USE_TONEMAP       0 //[0 or 1] Tonemap : Adjust gamma, exposure, saturation, bleach and defog. (may cause clipping)
#define USE_VIBRANCE      1 //[0 or 1] Vibrance色彩调整（一定要开） : 智能调节色彩饱和度和鲜艳度，用hdr如果色彩过度鲜艳可以尝试把参数改为负数。
#define USE_CURVES        0 //[0 or 1] Curves : 对比度调整，影响较小。
#define USE_SEPIA         0 //[0 or 1] Sepia : Sepia tones the image.
#define USE_VIGNETTE      0 //[0 or 1] Vignette : 画面边缘加上一圈镜头，感觉像偷拍的
#define USE_DITHER        0 //[0 or 1] Dither : 和色彩调整冲突，该效果会提高色彩丰富程度，让显示器模拟更多颜色（不自然，非正常情况莫开启）
#define USE_BORDER        0 //[0 or 1] Border : 给画面加上边缘。
#define USE_SPLITSCREEN   0 //[0 or 1] Splitscreen : 分屏显示，画面分为两边，一边显示调整前，一边显示调整后。
#define USE_CUSTOM        0 //[0 or 1] Custom : Write your own shader by editing custom.h, and then enable it here.

   /*-----------------------------------------------------------.
  /                  SMAA Anti-aliasing settings                /
  '-----------------------------------------------------------*/

#define SMAA_THRESHOLD             0.08  //[0.05 to 0.20] 边缘调整参数，如果有狗牙、锯齿被遗漏，尝试把这个参数改的更低，个人建议0.08-0.12之间
#define SMAA_MAX_SEARCH_STEPS        36  //[0 to 98] 该参数开的越大，效能影响越大，决定了画面上有几成锯齿狗牙被侦测，一般16-40就够了。
#define SMAA_MAX_SEARCH_STEPS_DIAG    8  //[0 to 16] Determines the radius SMAA will search for diagonal aliased edges
#define SMAA_CORNER_ROUNDING          0  //[0 to 100] Determines the percent of antialiasing to apply to corners. 0 seems to affect fine text the least so it's the default.

// -- Advanced SMAA settings --
#define COLOR_EDGE_DETECTION          1  //[0 or 1] 1 Enables color edge detection (slower but slightly more acurate) - 0 uses luma edge detection (faster)
#define SMAA_DIRECTX9_LINEAR_BLEND    0  //[0 or 1] Using DX9 HARDWARE? (software version doesn't matter) if so this needs to be 1 - If not, leave it at 0.
                                         //Enable this only if you use a Geforce 7xxx series or older card, or a Radeon X1xxx series or older card.

   /*-----------------------------------------------------------.
  /                  FXAA Anti-aliasing settings                /
  '-----------------------------------------------------------*/
#define FXAA_QUALITY__PRESET          9  //[1 to 9] Choose the quality preset. 9 is the highest quality.
#define fxaa_Subpix               0.400  //[0.000 to 1.000] Choose the amount of sub-pixel aliasing removal.
#define fxaa_EdgeThreshold        0.250  //[0.000 to 1.000] Edge detection threshold. The minimum amount of local contrast required to apply algorithm.
#define fxaa_EdgeThresholdMin     0.060  //[0.000 to 1.000] Darkness threshold. Trims the algorithm from processing darks.

   /*-----------------------------------------------------------.
  /                     Explosion settings                      /
  '-----------------------------------------------------------*/
#define Explosion_Radius    2.5     //[0.2 to 100.0] Amount of effect you want.


   /*-----------------------------------------------------------.
  /                      Cartoon settings                       /
  '-----------------------------------------------------------*/
#define CartoonPower         1.5     //[0.1 to 10.0] Amount of effect you want.
#define CartoonEdgeSlope     1.5     //[0.1 to 8.0] Raise this to filter out fainter edges. You might need to increase the power to compensate. Whole numbers are faster.


   /*----------------------------------------------------------.
  /                    Advanced CRT settings                   /
  '----------------------------------------------------------*/
#define CRTAmount            1.00    //[0.00 to 1.00]  Amount of CRT effect you want

#define CRTResolution        2.0     //[1.0 to 8.0]    Input size coefficent (low values gives the "low-res retro look"). Default is 1.2
#define CRTgamma             2.2     //[0.0 to 4.0]    Gamma of simulated CRT (default 2.2)
#define CRTmonitorgamma      2.4     //[0.0 to 4.0]    Gamma of display monitor (typically 2.2 is correct)
#define CRTBrightness        1.2     //[1.0 to 3.0]    Used to boost brightness a little. Default is 1.0
#define CRTScanlineIntensity 2.0     //[2.0 to 4.0]    Scanlines intensity (use integer values preferably). Default is 2.0
#define CRTScanlineGaussian  1       //[0 or 1]        Use the "new nongaussian scanlines bloom effect". Default is on

#define CRTCurvature         1       //[[0 or 1]          "Barrel effect" enabled (1) or off (0)
#define CRTCurvatureRadius   2.0     //[0.0 to 2.0]       Curvature Radius (only effective when Curvature is enabled). Default is 1.5
#define CRTCornerSize        0.0100  //[0.0000 to 0.0020] Higher values, more rounded corner. Default is 0.001
#define CRTDistance          2.00    //[0.00 to 4.00]     Simulated distance from viewer to monitor. Default is 2.00
#define CRTAngleX            0.00    //[-0.20 to 0.20]    Tilt angle in radians (X coordinates)
#define CRTAngleY           -0.15   //[-0.20 to 0.20]    Tilt angle in radians (Y coordinates). (Value of -0.15 gives the 'arcade tilt' look)
#define CRTOverScan          1.00    //[1.00 to 1.10]     Overscan (e.g. 1.02 for 2% overscan). Default is 1.01
#define CRTOversample        0       //[0 or 1]           Enable 3x oversampling of the beam profile (warning : performance hit)

   /*-----------------------------------------------------------.
  /                       Bloom settings                        /
  '-----------------------------------------------------------*/
#define BloomThreshold 25.25 //[0.00 to 50.00] 让插件知道，多亮的光需要用泛光效果，自己看口味更改数字.
#define BloomPower 2.046     //[0.000 to 8.000] 泛光强度有多强。
#define BloomWidth 0.2142    //[0.0000 to 1.0000] 泛光的宽度有多宽（上者是强度，这个是体积，好理解吧？）

   /*-----------------------------------------------------------.
  /                        HDR settings                         /
  '-----------------------------------------------------------*/
#define HDRPower 1.20  //[0.00 to 8.00] 这个数字降低的话，画面会变得更加亮
#define radius2  0.85  //[0.00 to 8.00] 提高这个数字会让hdr效果和光亮度大大大幅度提高，小心更改，不要改太厉害。建议1.1以下。

   /*-----------------------------------------------------------.
  /                     LumaSharpen settings                    /
  '-----------------------------------------------------------*/
// -- Sharpening --
#define sharp_strength 0.90   //[0.10 to 3.00] 边缘锐化力度
#define sharp_clamp    0.035  //[0.000 to 1.000] Limits maximum amount of sharpening a pixel recieves - Default is 0.035

// -- Advanced sharpening settings --
#define pattern 2        //[1|2|3|4] Choose a sample pattern. 1 = Fast, 2 = Normal, 3 = Wider, 4 = Pyramid shaped.
#define offset_bias 1.0  //[0.0 to 6.0] Offset bias adjusts the radius of the sampling pattern.
                         //I designed the pattern for offset_bias 1.0, but feel free to experiment.

// -- Debug sharpening settings --
#define show_sharpen 0   //[0 or 1] Visualize the strength of the sharpen (multiplied by 4 to see it better)

   /*----------------------------------------------------------.
  /                       Levels settings                      /
  '----------------------------------------------------------*/

#define Levels_black_point 16    //[0 to 255] The black point is the new black - literally. Everything darker than this will become completely black. Default is 16.0
#define Levels_white_point 235   //[0 to 255] The new white point. Everything brighter than this becomes completely white. Default is 235.0

//Colors between the two points will stretched, which increases contrast, but details above and below the points are lost (this is called clipping).


   /*-----------------------------------------------------------.
  /                      TECHNICOLOR settings                   /
  '-----------------------------------------------------------*/
#define TechniAmount 0.4         //[0.00 to 1.00]
#define TechniPower  4.0         //[0.00 to 8.00]
#define redNegativeAmount   0.88 //[0.00 to 1.00]
#define greenNegativeAmount 0.88 //[0.00 to 1.00]
#define blueNegativeAmount  0.88 //[0.00 to 1.00]


   /*-----------------------------------------------------------.
  /                      Cineon DPX settings                    /
  '-----------------------------------------------------------*/
#define Red   8.0  //[1.0 to 15.0]
#define Green 8.0  //[1.0 to 15.0]
#define Blue  8.0  //[1.0 to 15.0]

#define ColorGamma    2.5  //[0.1 to 2.5] Adjusts the colorfulness of the effect in a manner similar to Vibrance. 1.0 is neutral.
#define DPXSaturation 3.0  //[0.0 to 8.0] Adjust saturation of the effect. 1.0 is neutral.

#define RedC   0.36  //[0.60 to 0.20]
#define GreenC 0.36  //[0.60 to 0.20]
#define BlueC  0.34  //[0.60 to 0.20]

#define Blend 0.2    //[0.00 to 1.00] How strong the effect should be.


   /*-----------------------------------------------------------.
  /                      Monochrome settings                    /
  '-----------------------------------------------------------*/
#define Monochrome_conversion_values float3(0.18,0.41,0.41) //[0.00 to 1.00] Percentage of RGB to include (should sum up to 1.00)


   /*-----------------------------------------------------------.
  /                      Lift Gamma Gain settings               /
  '-----------------------------------------------------------*/
#define RGB_Lift  float3(1.000, 1.000, 1.000)  //[0.000 to 2.000] Adjust shadows for Red, Green and Blue.
#define RGB_Gamma float3(1.000, 1.000, 1.000)  //[0.000 to 2.000] Adjust midtones for Red, Green and Blue
#define RGB_Gain  float3(1.000, 1.000, 1.000)  //[0.000 to 2.000] Adjust highlights for Red, Green and Blue

//Note that a value of 1.000 is a neutral setting that leave the color unchanged.

   /*-----------------------------------------------------------.
  /                        Tonemap settings                     /
  '-----------------------------------------------------------*/
#define Gamma       1.000  //[0.000 to 2.000] Adjust midtones. 1.000 is neutral. This setting does exactly the same as the one in Lift Gamma Gain, only with less control.

#define Exposure    0.000  //[-1.000 to 1.000] Adjust exposure

#define Saturation  0.000  //[-1.000 to 1.000] Adjust saturation

#define Bleach      0.000  //[0.000 to 1.000] Brightens the shadows and fades the colors

#define Defog       0.000  //[0.000 to 1.000] How much of the color tint to remove
#define FogColor float3(0.00, 0.00, 2.55) //[0.00 to 2.55, 0.00 to 2.55, 0.00 to 2.55] What color to remove - default is blue


   /*-----------------------------------------------------------.
  /                       Vibrance settings                     /
  '-----------------------------------------------------------*/
#define Vibrance     0.22  //[-1.00 to 1.00] 数字越大，画面越鲜艳，反之，改为负数画面就越暗淡一些，在使用hdr时，如果觉得太鲜艳，可以改为负数。
#define Vibrance_RGB_balance float3(1.00, 1.00, 1.00) //[-10.00 to 10.00,-10.00 to 10.00,-10.00 to 10.00] A per channel multiplier to the Vibrance strength so you can give more boost to certain colors over others


   /*-----------------------------------------------------------.
  /                        Curves settings                      /
  '-----------------------------------------------------------*/
#define Curves_mode        0 //[0|1|2] Choose what to apply contrast to. 0 = Luma, 1 = Chroma, 2 = both Luma and Chroma. Default is 0 (Luma)
#define Curves_contrast 0.15 //[-1.00 to 1.00] The amount of contrast you want

// -- Advanced curve settings --
#define Curves_formula     2 //[1|2|3|4|5|6|7|8|9|10] The contrast s-curve you want to use.
                             //1 = Sine, 2 = Abs split, 3 = Smoothstep, 4 = Exp formula, 5 = Simplified Catmull-Rom (0,0,1,1), 6 = Perlins Smootherstep
                             //7 = Abs add, 8 = Techicolor Cinestyle, 9 = Parabola, 10 = Half-circles.
                             //Note that Technicolor Cinestyle is practically identical to Sine, but runs slower. In fact I think the difference might only be due to rounding errors.
                             //I prefer 2 myself, but 3 is a nice alternative with a little more effect (but harsher on the highlight and shadows) and it's the fastest formula.

   /*-----------------------------------------------------------.
  /                         Sepia settings                      /
  '-----------------------------------------------------------*/
#define ColorTone float3(1.40, 1.10, 0.90) //[0.00 to 2.55, 0.00 to 2.55, 0.00 to 2.55] What color to tint the image
#define GreyPower  0.11                    //[0.00 to 1.00] How much desaturate the image before tinting it
#define SepiaPower 0.58                    //[0.00 to 1.00] How much to tint the image


   /*-----------------------------------------------------------.
  /                       Vignette settings                     /
  '-----------------------------------------------------------*/
#define VignetteType       1  //[1|2|3] 1 = Original, 2 = New, 3 = TV style
#define VignetteRatio   1.00  //[0.15 to 6.00]  Sets a width to height ratio. 1.00 (1/1) is perfectly round, while 1.60 (16/10) is 60 % wider than it's high.
#define VignetteRadius  1.00  //[-1.00 to 3.00] lower values = stronger radial effect from center
#define VignetteAmount -1.00  //[-2.00 to 1.00] Strength of black. -2.00 = Max Black, 1.00 = Max White.
#define VignetteSlope      8  //[2 to 16] How far away from the center the change should start to really grow strong (odd numbers cause a larger fps drop than even numbers)
#define VignetteCenter float2(0.500, 0.500)  //[0.000 to 1.000, 0.000 to 1.000] Center of effect for VignetteType 1. 2 and 3 do not obey this setting.


   /*-----------------------------------------------------------.
  /                        Dither settings                      /
  '-----------------------------------------------------------*/
#define dither_method      1  //[1 or 2] 1 = Ordered dithering (very good and very fast), 2 = Random dithering (different but slightly slower dithering)

//Note that the patterns used by Dither, makes an image harder to compress.
//This can make your screenshots and video recordings take up more space.


   /*-----------------------------------------------------------.
  /                        Border settings                      /
  '-----------------------------------------------------------*/
#define border_width float2(1,20)     //[0 to 2048, 0 to 2048] (X,Y)-width of the border. Measured in pixels.
#define border_color float3(0, 0, 0)  //[0 to 255, 0 to 255, 0 to 255] What color the border should be. In integer RGB colors, meaning 0,0,0 is black and 255,255,255 is full white.


   /*-----------------------------------------------------------.
  /                     Splitscreen settings                    /
  '-----------------------------------------------------------*/
#define splitscreen_mode   1  //[1|2|3|4|5|6]  1 = Vertical 50/50 split, 2 = Vertical 25/50/25 split, 3 = Vertical 50/50 angled split, 4 = Horizontal 50/50 split, 5 = Horizontal 25/50/25 split, 6 = Curvy vertical 50/50 split

   /*-----------------------------------------------------------.
  /                       Custom settings                       /
  '-----------------------------------------------------------*/
#define custom_strength  1.0 //[0.00 to 1.00] Adjust the strength of the effect
