mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2026-04-25 19:42:20 +00:00
Add scanlines effect
This commit is contained in:
parent
4459432c64
commit
5f7f29a5b5
6 changed files with 15 additions and 4 deletions
|
|
@ -2982,7 +2982,8 @@ SHADER_FLAG_CONTRAST = 3 --- @type ShaderFlag
|
|||
SHADER_FLAG_EXPOSURE = 4 --- @type ShaderFlag
|
||||
SHADER_FLAG_DITHERING = 5 --- @type ShaderFlag
|
||||
SHADER_FLAG_POSTERIZATION = 6 --- @type ShaderFlag
|
||||
SHADER_FLAG_MAX = 7 --- @type ShaderFlag
|
||||
SHADER_FLAG_SCANLINES = 7 --- @type ShaderFlag
|
||||
SHADER_FLAG_MAX = 8 --- @type ShaderFlag
|
||||
|
||||
--- @alias ShaderFlag
|
||||
--- | `SHADER_FLAG_HUE`
|
||||
|
|
@ -2992,6 +2993,7 @@ SHADER_FLAG_MAX = 7 --- @type ShaderFlag
|
|||
--- | `SHADER_FLAG_EXPOSURE`
|
||||
--- | `SHADER_FLAG_DITHERING`
|
||||
--- | `SHADER_FLAG_POSTERIZATION`
|
||||
--- | `SHADER_FLAG_SCANLINES`
|
||||
--- | `SHADER_FLAG_MAX`
|
||||
|
||||
--- @type integer
|
||||
|
|
|
|||
|
|
@ -1340,7 +1340,8 @@
|
|||
| SHADER_FLAG_EXPOSURE | 4 |
|
||||
| SHADER_FLAG_DITHERING | 5 |
|
||||
| SHADER_FLAG_POSTERIZATION | 6 |
|
||||
| SHADER_FLAG_MAX | 7 |
|
||||
| SHADER_FLAG_SCANLINES | 7 |
|
||||
| SHADER_FLAG_MAX | 8 |
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
|
|
|
|||
|
|
@ -506,6 +506,12 @@ static struct ShaderProgram *gfx_opengl_create_and_load_new_shader(struct ColorC
|
|||
append_line(fs_buf, &fs_len, "int levels = int(uShaderFlagValues[6]);");
|
||||
append_line(fs_buf, &fs_len, "texel.rgb = floor(texel.rgb * levels) / levels;");
|
||||
append_line(fs_buf, &fs_len, "}");
|
||||
|
||||
// scan lines
|
||||
append_line(fs_buf, &fs_len, "if (uShaderFlags[7] == 1) {");
|
||||
append_line(fs_buf, &fs_len, "float scan = sin(gl_FragCoord.y * 1.5) * 0.04;");
|
||||
append_line(fs_buf, &fs_len, "texel.rgb -= scan * uShaderFlagValues[7];");
|
||||
append_line(fs_buf, &fs_len, "}");
|
||||
}
|
||||
|
||||
if (opt_fog) {
|
||||
|
|
|
|||
|
|
@ -126,7 +126,7 @@ Color gFogColor = { 0xFF, 0xFF, 0xFF };
|
|||
f32 gFogIntensity = 1;
|
||||
|
||||
int gShaderFlags[SHADER_FLAG_MAX] = { 0 };
|
||||
f32 gDefaultShaderFlagValues[SHADER_FLAG_MAX] = { 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 8.0f };
|
||||
f32 gDefaultShaderFlagValues[SHADER_FLAG_MAX] = { 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 8.0f, 1.0f };
|
||||
f32 gShaderFlagValues[SHADER_FLAG_MAX] = { 0 };
|
||||
bool gShaderFlagsScreen = false;
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ enum ShaderFlag {
|
|||
SHADER_FLAG_EXPOSURE,
|
||||
SHADER_FLAG_DITHERING,
|
||||
SHADER_FLAG_POSTERIZATION,
|
||||
SHADER_FLAG_SCANLINES,
|
||||
SHADER_FLAG_MAX
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1547,7 +1547,8 @@ char gSmluaConstants[] = ""
|
|||
"SHADER_FLAG_EXPOSURE=4\n"
|
||||
"SHADER_FLAG_DITHERING=5\n"
|
||||
"SHADER_FLAG_POSTERIZATION=6\n"
|
||||
"SHADER_FLAG_MAX=7\n"
|
||||
"SHADER_FLAG_SCANLINES=7\n"
|
||||
"SHADER_FLAG_MAX=8\n"
|
||||
"GRAPH_RENDER_ACTIVE=(1 << 0)\n"
|
||||
"GRAPH_RENDER_CHILDREN_FIRST=(1 << 1)\n"
|
||||
"GRAPH_RENDER_BILLBOARD=(1 << 2)\n"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue