REVIEWED: shaders_multi_sample2d
This commit is contained in:
parent
aba69146f2
commit
ff6d5c8ddb
3 changed files with 22 additions and 6 deletions
|
@ -11,6 +11,8 @@ uniform sampler2D texture0;
|
||||||
uniform sampler2D texture1;
|
uniform sampler2D texture1;
|
||||||
uniform vec4 colDiffuse;
|
uniform vec4 colDiffuse;
|
||||||
|
|
||||||
|
uniform float divider;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
// Texel color fetching from texture sampler
|
// Texel color fetching from texture sampler
|
||||||
|
@ -18,7 +20,7 @@ void main()
|
||||||
vec4 texelColor1 = texture2D(texture1, fragTexCoord);
|
vec4 texelColor1 = texture2D(texture1, fragTexCoord);
|
||||||
|
|
||||||
float x = fract(fragTexCoord.s);
|
float x = fract(fragTexCoord.s);
|
||||||
float out = smoothstep(0.4, 0.6, x);
|
float final = smoothstep(divider - 0.1, divider + 0.1, x);
|
||||||
|
|
||||||
gl_FragColor = mix(texelColor0, texelColor1, out);
|
gl_FragColor = mix(texelColor0, texelColor1, final);
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,8 @@ uniform sampler2D texture0;
|
||||||
uniform sampler2D texture1;
|
uniform sampler2D texture1;
|
||||||
uniform vec4 colDiffuse;
|
uniform vec4 colDiffuse;
|
||||||
|
|
||||||
|
uniform float divider = 0.5;
|
||||||
|
|
||||||
out vec4 finalColor;
|
out vec4 finalColor;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
|
@ -19,7 +21,7 @@ void main()
|
||||||
vec4 texelColor1 = texture(texture1, fragTexCoord);
|
vec4 texelColor1 = texture(texture1, fragTexCoord);
|
||||||
|
|
||||||
float x = fract(fragTexCoord.s);
|
float x = fract(fragTexCoord.s);
|
||||||
float outVal = smoothstep(0.4, 0.6, x);
|
float final = smoothstep(divider - 0.1, divider + 0.1, x);
|
||||||
|
|
||||||
finalColor = mix(texelColor0, texelColor1, outVal);
|
finalColor = mix(texelColor0, texelColor1, final);
|
||||||
}
|
}
|
|
@ -45,6 +45,10 @@ int main(void)
|
||||||
|
|
||||||
// Get an additional sampler2D location to be enabled on drawing
|
// Get an additional sampler2D location to be enabled on drawing
|
||||||
int texBlueLoc = GetShaderLocation(shader, "texture1");
|
int texBlueLoc = GetShaderLocation(shader, "texture1");
|
||||||
|
|
||||||
|
// Get shader uniform for divider
|
||||||
|
int dividerLoc = GetShaderLocation(shader, "divider");
|
||||||
|
float dividerValue = 0.5f;
|
||||||
|
|
||||||
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
|
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
|
@ -54,7 +58,13 @@ int main(void)
|
||||||
{
|
{
|
||||||
// Update
|
// Update
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
// ...
|
if (IsKeyDown(KEY_RIGHT)) dividerValue += 0.01f;
|
||||||
|
else if (IsKeyDown(KEY_LEFT)) dividerValue -= 0.01f;
|
||||||
|
|
||||||
|
if (dividerValue < 0.0f) dividerValue = 0.0f;
|
||||||
|
else if (dividerValue > 1.0f) dividerValue = 1.0f;
|
||||||
|
|
||||||
|
SetShaderValue(shader, dividerLoc, ÷rValue, SHADER_UNIFORM_FLOAT);
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
|
|
||||||
// Draw
|
// Draw
|
||||||
|
@ -75,6 +85,8 @@ int main(void)
|
||||||
DrawTexture(texRed, 0, 0, WHITE);
|
DrawTexture(texRed, 0, 0, WHITE);
|
||||||
|
|
||||||
EndShaderMode();
|
EndShaderMode();
|
||||||
|
|
||||||
|
DrawText("Use KEY_LEFT/KEY_RIGHT to move texture mixing in shader!", 80, GetScreenHeight() - 40, 20, RAYWHITE);
|
||||||
|
|
||||||
EndDrawing();
|
EndDrawing();
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue