summaryrefslogtreecommitdiffstatshomepage
path: root/docs/hlsl.txt
blob: faee0f5b33b231dc22064c8532ac886f1eeb081b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
HLSL-Related Enable Switches
----------------------------

Name                    Values		Description
hlsl_enable             0/1             Enables HLSL post-processing in Direct3D 9 modes.
yiq_enable              0/1             Enables YIQ-colorspace post-processing. Causes a
                                        performance drop but gives a much more authentic
                                        NTSC TV appearance on TV-based systems when configured
                                        properly.
hlslpath                [path]          Path to the .fx files that are in use.


Color-Processing Parameters
---------------------------

Name                    Values		Description
red_from_r              -2.0 to 2.0     These parameters define a 3x3 matrix which is multiplied
red_from_g              -2.0 to 2.0     by the incoming RGB signal. This can be used for any
red_from_b              -2.0 to 2.0     standard matrix convolution, including H/S/V or simply
green_from_r            -2.0 to 2.0     affecting the TV-style tint.
green_from_g            -2.0 to 2.0     
green_from_b            -2.0 to 2.0     
blue_from_r             -2.0 to 2.0     
blue_from_g             -2.0 to 2.0     
blue_from_b             -2.0 to 2.0     
red_scale               -2.0 to 2.0     These parameters define a value for each color channel
green_scale             -2.0 to 2.0     that is multiplied with said channel after matrix
blue_scale              -2.0 to 2.0     convolution.
red_offset              -1.0 to 1.0     These parameters define a value for each color channel
green_offset            -1.0 to 1.0     that is added to said channel after scaling and after
blue_offset             -1.0 to 1.0     matrix convolution.
saturation               0.0 to 4.0     This parameter defines the amount each color channel is
                                        raised above said channel's baseline grayscale value.
                                        A value of 0.0 gives a gamma-correct grayscale image,
                                        whereas 1.0 is full saturation, with each channel being
                                        oversaturated equally beyond that.
red_power               -4.0 to 4.0     These parameters define the exponent for each color
green_power             -4.0 to 4.0     channel that is applied after scaling, offsetting,
blue_power              -4.0 to 4.0     saturation and matrix convolution.
red_floor                0.0 to 1.0     These parameters define the lower limit of each final
green_floor              0.0 to 1.0     color channel value; 0.05, for example, raises the
blue_floor               0.0 to 1.0     minimum to 0.05 but re-scales to leave the max at 1.0.


Convergence-Processing Parameters
---------------------------------

Name                    Values		Description
red_converge_x          -150 to 150     These parameters define the overall convergence, in pixel
red_converge_y          -150 to 150     space, for each channel. Radial convergence occurs
green_converge_x        -150 to 150     relative to the center of the screen, whereas the other
green_converge_y        -150 to 150     six define overall translation values.
blue_converge_x         -150 to 150     
blue_converge_y         -150 to 150     
red_radial_converge_x   -150 to 150     
red_radial_converge_y   -150 to 150     
green_radial_converge_x -150 to 150     
green_radial_converge_y -150 to 150     
blue_radial_converge_x  -150 to 150     
blue_radial_converge_y  -150 to 150     
defocus_x                0.0 to 32.0    These parameters define the overall defocus radius for
defocus_y                0.0 to 32.0    the three post-converged beams.


Front-Surface Processing Parameters
-----------------------------------

Name                    Values		Description
red_phosphor_life        0.0 to 1.0     These parameters define the phosphor lifetime for each
green_phosphor_life      0.0 to 1.0     channel, with 0.0 representing no phosphorescence and
blue_phosphor_life       0.0 to 1.0     1.0 leaving the channel on indefinitely.
scanline_alpha           0.0 to 1.0     The overall darkness of each scanline furrow.
scanline_size            0.0 to 4.0     The overall height of each scanline.
scanline_bright_scale    0.0 to 2.0     The overall brightness multiplier for each scanline.
scanline_bright_offset   0.0 to 1.0     The overall brightness additive value for each scanline.
scanline_jitter          0.0 to 2.0     The relative scanline movement per field.
shadow_mask_alpha        0.0 to 1.0     The ovearll darkness of each shadow mask pixel.
shadow_mask_texture      [filename]     A PNG that defines the shadow mask for each pixel.
shadow_mask_x_count      1+             The count of shadow mask elements, X (usually 640-ish)
shadow_mask_y_count      1+             The count of shadow mask elements, X (usually 480-ish)
shadow_mask_usize        0.0 to 1.0     These parameters define the *in-use* pixel count on the
shadow_mask_vsize        0.0 to 1.0     X and Y axes of the shadow mask texture.
curvature                0.0 to 1.0     Screen curvature. Affects borders and shadow mask.
pincushion               0.0 to 1.0     Image curvature. Affects the source image only.
oversample_x             1.0 to 4.0     These parameters define a multiplier for each axis of the
oversample_y             1.0 to 4.0     internal render target. Powerful GPU necessary.


NTSC Processing Parameters
--------------------------

Name                    Values		Description
yiq_w                    4.1187867      W parameter for: C(t) = Y(t) + I(t)sin(Wt) + Q(t)cos(Wt)
yiq_a                    0.0            A parameter for: t = x + ay + b;
yiq_b                    0.5            B parameter for: t = x + ay + b;
yiq_fsc                  1.5            Relative color subcarrier frequency
yiq_fsc_scale            1.0            Color subcarrier frequency scale
yiq_phase_count          2              Number of frames for NTSC processing (3 for NES, else 2)