Skip to content

Commit

Permalink
Merge pull request #70 from Monroe88/lcd-shader_parameters
Browse files Browse the repository at this point in the history
Parameters for lcd-shader and color shader updates.
  • Loading branch information
hizzlekizzle committed May 12, 2016
2 parents f632597 + 88b5e40 commit d9e47db
Show file tree
Hide file tree
Showing 22 changed files with 297 additions and 143 deletions.
40 changes: 12 additions & 28 deletions handheld/gba-color.cg
Expand Up @@ -6,47 +6,31 @@
*/

// Shader that replicates the LCD dynamics from a GameBoy Advance

#pragma parameter display_gamma "Light Intensity" 1.8 1.0 2.5 0.05
#ifdef PARAMETER_UNIFORM
uniform float display_gamma;
uniform float target_gamma;
uniform float sat;
uniform float lum;
uniform float contrast;
uniform float blr;
uniform float blg;
uniform float blb;
uniform float r;
uniform float g;
uniform float b;
uniform float rg;
uniform float rb;
uniform float gr;
uniform float gb;
uniform float br;
uniform float bg;
uniform float overscan_percent_x;
uniform float overscan_percent_y;
#else
#define display_gamma 1.8
#endif

#define display_gamma 1.45
#define target_gamma 2.2
#define sat 1.0
#define lum 0.99
#define lum 1.0
#define contrast 1.0
#define blr 0.0
#define blg 0.0
#define blb 0.0
#define r 0.85
#define g 0.695
#define b 0.73
#define rg 0.085
#define r 0.84
#define g 0.67
#define b 0.74
#define rg 0.08
#define rb 0.17
#define gr 0.17
#define gb 0.10
#define gr 0.16
#define gb 0.09
#define br 0.0
#define bg 0.26
#define overscan_percent_x 0.0
#define overscan_percent_y 0.0
#endif

struct input
{
Expand Down
7 changes: 5 additions & 2 deletions handheld/lcd-shader/lcd-pass-0.cg
Expand Up @@ -22,9 +22,12 @@
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//config //
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#pragma parameter response_time "LCD Response Time" 0.333 0.0 1.0 0.01
#ifdef PARAMETER_UNIFORM;
uniform float response_time;
#else
#define response_time 0.333 //simulate response time, higher values result in longer color transition periods - [0, 1]

#endif
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//structs //
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Expand Down
43 changes: 37 additions & 6 deletions handheld/lcd-shader/lcd-pass-1.cg
Expand Up @@ -22,10 +22,40 @@
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//config //
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#pragma parameter cell_scale "LCD Cell Scale" 1.0 1.0 5.0 1.0
#pragma parameter triad_color_0_r "LCD Red Triad Color R" 1.0 0.0 1.0 0.1
#pragma parameter triad_color_0_g "LCD Red Triad Color G" 0.0 0.0 1.0 0.1
#pragma parameter triad_color_0_b "LCD Red Triad Color B" 1.0 0.0 1.0 0.1
#pragma parameter triad_color_1_r "LCD Green Triad Color R" 1.0 0.0 1.0 0.1
#pragma parameter triad_color_1_g "LCD Green Triad Color G" 1.0 0.0 1.0 0.1
#pragma parameter triad_color_1_b "LCD Green Triad Color B" 0.0 0.0 1.0 0.1
#pragma parameter triad_color_2_r "LCD Blue Triad Color R" 0.0 0.0 1.0 0.1
#pragma parameter triad_color_2_g "LCD Blue Triad Color G" 1.0 0.0 1.0 0.1
#pragma parameter triad_color_2_b "LCD Blue Triad Color B" 1.0 0.0 1.0 0.1
#ifdef PARAMETER_UNIFORM
uniform float cell_scale;
uniform float triad_color_0_r;
uniform float triad_color_0_g;
uniform float triad_color_0_b;
uniform float triad_color_1_r;
uniform float triad_color_1_g;
uniform float triad_color_1_b;
uniform float triad_color_2_r;
uniform float triad_color_2_g;
uniform float triad_color_2_b;
#else
#define cell_scale 1.0 //scales LCD cell width by an integer value, recommend leaving at 1.0 at normal viewing distance or color separation will be severe
//if increased it should be at 1/3 the output scale which itself should be a multiple of 3 (ex. cell_scale = 2.0 when output is at 6x scale, 3.0 at 9x, etc...)

//if increased it should be at 1/3 the output scale which itself should be a multiple of 3 (ex. cell_scale = 2.0 when output is at 6x scale, 3.0 at 9x, etc...)
#define triad_color_0_r 1.0
#define triad_color_0_g 0.0
#define triad_color_0_b 1.0
#define triad_color_1_r 1.0
#define triad_color_1_g 1.0
#define triad_color_1_b 0.0
#define triad_color_2_r 0.0
#define triad_color_2_g 1.0
#define triad_color_2_b 1.0
#endif
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//structs //
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Expand Down Expand Up @@ -75,9 +105,10 @@ void main_vertex( float4 position : POSITION,
//fragment definitions //
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#define triad_color_0 fixed3(1.0, 0.0, 1.0) //magenta
#define triad_color_1 fixed3(1.0, 1.0, 0.0) //yellow
#define triad_color_2 fixed3(0.0, 1.0, 1.0) //cyan

#define triad_color_0 fixed3(triad_color_0_r, triad_color_0_g, triad_color_0_b) //magenta
#define triad_color_1 fixed3(triad_color_1_r, triad_color_1_g, triad_color_1_b) //yellow
#define triad_color_2 fixed3(triad_color_2_r, triad_color_2_g, triad_color_2_b) //cyan

//#define triad_color_0 fixed3(0.0, 0.0, 1.0) //blue
//#define triad_color_1 fixed3(1.0, 0.0, 0.0) //red
Expand Down
18 changes: 16 additions & 2 deletions handheld/lcd-shader/lcd-pass-2.cg
Expand Up @@ -22,9 +22,23 @@
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//config //
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#pragma parameter LCD_to_input_ratio "LCD to Input Ratio" 0.9 0.0 1.0 0.01
#pragma parameter bg_tint_r "LCD Background Tint (Red)" 0.0 0.0 1.0 0.01
#pragma parameter bg_tint_g "LCD Background Tint (Green)" 0.0 0.0 1.0 0.01
#pragma parameter bg_tint_b "LCD Background Tint (Blue)" 0.0 0.0 1.0 0.01
#ifdef PARAMETER_UNIFORM
uniform float LCD_to_input_ratio;
uniform float bg_tint_r;
uniform float bg_tint_g;
uniform float bg_tint_b;
#else
#define LCD_to_input_ratio 0.9 //the ratio of blending between the LCD pixels and the input image, higher values result in stronger LCD magenta/yellow/cyan bands - [0, 1]
#define bg_tint fixed3(0.0, 0.0, 0.0) //color to tint the background image in RGB format - each color component ranges from 0.0 (none) to 1.0 (fully saturated)
#define bg_tint_r 0.0
#define bg_tint_g 0.0
#define bg_tint_b 0.0
#endif

#define bg_tint fixed3(bg_tint_r, bg_tint_g, bg_tint_b) //color to tint the background image in RGB format - each color component ranges from 0.0 (none) to 1.0 (fully saturated)

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//structs //
Expand Down
8 changes: 7 additions & 1 deletion handheld/lcd-shader/lcd-pass-3.cg
Expand Up @@ -25,9 +25,15 @@

//values related to color blending on the darkened vertical lines of the output image

#pragma parameter LCD_blending "LCD Blending" 0.2 0.0 0.5 0.01
#pragma parameter original_blending "Original Blending" 0.2 0.0 0.5 0.01
#ifdef PARAMETER_UNIFORM
uniform float LCD_blending;
uniform float original_blending;
#else
#define LCD_blending 0.2 //contribution of LCD colors to the blended output, higher values apply more color - [0.0, 0.5]
#define original_blending 0.2 //contribution of the original input colors to the blended output, higher values apply more color - [0.0, 0.5]

#endif
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//structs //
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Expand Down
33 changes: 33 additions & 0 deletions handheld/lcd-shader/lcd-shader-gba-color.cgp
@@ -0,0 +1,33 @@
shaders = 5
shader0 = lcd-pass-0.cg
shader1 = lcd-pass-1.cg
shader2 = lcd-pass-2.cg
shader3 = lcd-pass-3.cg
shader4 = ../gba-color.cg

scale_type0 = viewport
scale0 = 1

scale_type1 = source
scale1 = 1

scale_type2 = source
scale2 = 1

scale_type3 = source
scale3 = 1

scale_type4 = source
scale4 = 1

filter_linear0 = false
filter_linear1 = false
filter_linear2 = false
filter_linear3 = false
filter_linear4 = false

textures = BACKGROUND
BACKGROUND = ..\lcd-shader\background.png
BACKGROUND_linear = true
parameters = "display_gamma"
display_gamma = "2.200000"
33 changes: 33 additions & 0 deletions handheld/lcd-shader/lcd-shader-nds-color.cgp
@@ -0,0 +1,33 @@
shaders = 5
shader0 = lcd-pass-0.cg
shader1 = lcd-pass-1.cg
shader2 = lcd-pass-2.cg
shader3 = lcd-pass-3.cg
shader4 = ../nds-color.cg

scale_type0 = viewport
scale0 = 1

scale_type1 = source
scale1 = 1

scale_type2 = source
scale2 = 1

scale_type3 = source
scale3 = 1

scale_type4 = source
scale4 = 1

filter_linear0 = false
filter_linear1 = false
filter_linear2 = false
filter_linear3 = false
filter_linear4 = false

textures = BACKGROUND
BACKGROUND = ..\lcd-shader\background.png
BACKGROUND_linear = true
parameters = "display_gamma"
display_gamma = "2.200000"
33 changes: 33 additions & 0 deletions handheld/lcd-shader/lcd-shader-psp-color.cgp
@@ -0,0 +1,33 @@
shaders = 5
shader0 = lcd-pass-0.cg
shader1 = lcd-pass-1.cg
shader2 = lcd-pass-2.cg
shader3 = lcd-pass-3.cg
shader4 = ../psp-color.cg

scale_type0 = viewport
scale0 = 1

scale_type1 = source
scale1 = 1

scale_type2 = source
scale2 = 1

scale_type3 = source
scale3 = 1

scale_type4 = source
scale4 = 1

filter_linear0 = false
filter_linear1 = false
filter_linear2 = false
filter_linear3 = false
filter_linear4 = false

textures = BACKGROUND
BACKGROUND = ..\lcd-shader\background.png
BACKGROUND_linear = true
parameters = "display_gamma"
display_gamma = "2.200000"
33 changes: 33 additions & 0 deletions handheld/lcd-shader/lcd-shader-vba-color.cgp
@@ -0,0 +1,33 @@
shaders = 5
shader0 = lcd-pass-0.cg
shader1 = lcd-pass-1.cg
shader2 = lcd-pass-2.cg
shader3 = lcd-pass-3.cg
shader4 = ../vba-color.cg

scale_type0 = viewport
scale0 = 1

scale_type1 = source
scale1 = 1

scale_type2 = source
scale2 = 1

scale_type3 = source
scale3 = 1

scale_type4 = source
scale4 = 1

filter_linear0 = false
filter_linear1 = false
filter_linear2 = false
filter_linear3 = false
filter_linear4 = false

textures = BACKGROUND
BACKGROUND = ..\lcd-shader\background.png
BACKGROUND_linear = true
parameters = "display_gamma"
display_gamma = "2.200000"
14 changes: 7 additions & 7 deletions handheld/lcd_cgwg/lcd-grid-v2-gba-color-motionblur.cgp
Expand Up @@ -16,17 +16,17 @@ scale_type2 = "viewport"
scale2 = "1.0"

parameters = "RSUBPIX_R;RSUBPIX_G;RSUBPIX_B;GSUBPIX_R;GSUBPIX_G;GSUBPIX_B;BSUBPIX_R;BSUBPIX_G;BSUBPIX_B;gain;gamma;blacklevel;ambient;BGR"
RSUBPIX_R = "1.000000"
RSUBPIX_R = "0.750000"
RSUBPIX_G = "0.000000"
RSUBPIX_B = "0.000000"
GSUBPIX_R = "0.000000"
GSUBPIX_G = "1.000000"
GSUBPIX_G = "0.750000"
GSUBPIX_B = "0.000000"
BSUBPIX_R = "0.000000"
BSUBPIX_G = "0.000000"
BSUBPIX_B = "1.000000"
gain = "1.250000"
gamma = "3.000000"
blacklevel = "0.050000"
BSUBPIX_B = "0.750000"
gain = "1.500000"
gamma = "2.300000"
blacklevel = "0.000000"
ambient = "0.000000"
BGR = "1.000000"
BGR = "0.000000"
14 changes: 7 additions & 7 deletions handheld/lcd_cgwg/lcd-grid-v2-gba-color.cgp
Expand Up @@ -11,17 +11,17 @@ scale_type1 = "viewport"
scale1 = "1.0"

parameters = "RSUBPIX_R;RSUBPIX_G;RSUBPIX_B;GSUBPIX_R;GSUBPIX_G;GSUBPIX_B;BSUBPIX_R;BSUBPIX_G;BSUBPIX_B;gain;gamma;blacklevel;ambient;BGR"
RSUBPIX_R = "1.000000"
RSUBPIX_R = "0.750000"
RSUBPIX_G = "0.000000"
RSUBPIX_B = "0.000000"
GSUBPIX_R = "0.000000"
GSUBPIX_G = "1.000000"
GSUBPIX_G = "0.750000"
GSUBPIX_B = "0.000000"
BSUBPIX_R = "0.000000"
BSUBPIX_G = "0.000000"
BSUBPIX_B = "1.000000"
gain = "1.250000"
gamma = "3.000000"
blacklevel = "0.050000"
BSUBPIX_B = "0.750000"
gain = "1.500000"
gamma = "2.300000"
blacklevel = "0.000000"
ambient = "0.000000"
BGR = "1.000000"
BGR = "0.000000"
12 changes: 6 additions & 6 deletions handheld/lcd_cgwg/lcd-grid-v2-motionblur.cgp
Expand Up @@ -12,17 +12,17 @@ filter_linear0 = "false"
filter_linear1 = "false"

parameters = "RSUBPIX_R;RSUBPIX_G;RSUBPIX_B;GSUBPIX_R;GSUBPIX_G;GSUBPIX_B;BSUBPIX_R;BSUBPIX_G;BSUBPIX_B;gain;gamma;blacklevel;ambient;BGR"
RSUBPIX_R = "1.000000"
RSUBPIX_R = "0.750000"
RSUBPIX_G = "0.000000"
RSUBPIX_B = "0.000000"
GSUBPIX_R = "0.000000"
GSUBPIX_G = "1.000000"
GSUBPIX_G = "0.750000"
GSUBPIX_B = "0.000000"
BSUBPIX_R = "0.000000"
BSUBPIX_G = "0.000000"
BSUBPIX_B = "1.000000"
gain = "1.250000"
gamma = "3.000000"
blacklevel = "0.050000"
BSUBPIX_B = "0.750000"
gain = "1.500000"
gamma = "2.300000"
blacklevel = "0.000000"
ambient = "0.000000"
BGR = "0.000000"

0 comments on commit d9e47db

Please sign in to comment.