aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authoreggmund <joshuacolclough2@googlemail.com>2019-05-15 17:55:19 +0100
committereggmund <joshuacolclough2@googlemail.com>2019-05-15 17:55:19 +0100
commita7c5e3cab70e00a287c561d06cef9fbb7b7e49ce (patch)
tree35be10d7e7d0ddfaa1ed079111b32b3b6783c959 /examples
parent998b4180e1d3a9b6188699fd811c9b3abe537eac (diff)
downloadraylib-a7c5e3cab70e00a287c561d06cef9fbb7b7e49ce.tar.gz
raylib-a7c5e3cab70e00a287c561d06cef9fbb7b7e49ce.zip
Updating julia set example.
Now dividing by the zoom instead of multiplying (in the shader), so zoom works as expected. Also zoom increase/decrease is now scaled depending on the current zoom.
Diffstat (limited to 'examples')
-rw-r--r--examples/shaders/resources/shaders/glsl330/julia_shader.fs12
-rw-r--r--examples/shaders/shaders_julia_set.c8
2 files changed, 10 insertions, 10 deletions
diff --git a/examples/shaders/resources/shaders/glsl330/julia_shader.fs b/examples/shaders/resources/shaders/glsl330/julia_shader.fs
index b1331d84..8e6815a5 100644
--- a/examples/shaders/resources/shaders/glsl330/julia_shader.fs
+++ b/examples/shaders/resources/shaders/glsl330/julia_shader.fs
@@ -15,10 +15,10 @@ const int MAX_ITERATIONS = 255; // Max iterations to do.
// Square a complex number
vec2 complexSquare(vec2 z)
{
- return vec2(
- z.x * z.x - z.y * z.y,
- z.x * z.y * 2.0
- );
+ return vec2(
+ z.x * z.x - z.y * z.y,
+ z.x * z.y * 2.0
+ );
}
// Convert Hue Saturation Value color into RGB
@@ -33,8 +33,8 @@ vec3 hsv2rgb(vec3 c)
void main()
{
// The pixel coordinates scaled so they are on the mandelbrot scale.
- vec2 z = vec2(((gl_FragCoord.x + offset.x)/screenDims.x) * 2.5 * zoom,
- ((screenDims.y - gl_FragCoord.y + offset.y)/screenDims.y) * 1.5 * zoom); // y also flipped due to opengl
+ vec2 z = vec2((((gl_FragCoord.x + offset.x)/screenDims.x) * 2.5)/zoom,
+ (((screenDims.y - gl_FragCoord.y + offset.y)/screenDims.y) * 1.5)/zoom); // y also flipped due to opengl
int iterations = 0;
/*
diff --git a/examples/shaders/shaders_julia_set.c b/examples/shaders/shaders_julia_set.c
index 36eceb23..f984d5e3 100644
--- a/examples/shaders/shaders_julia_set.c
+++ b/examples/shaders/shaders_julia_set.c
@@ -40,14 +40,14 @@ int main()
// Load julia set shader
// NOTE: Defining 0 (NULL) for vertex shader forces usage of internal default vertex shader
- Shader shader = LoadShader(0, "resources/shaders/glsl330/julia_shader.fs");
+ Shader shader = LoadShader(0, "julia_shader.fs");
// c constant to use in z^2 + c
float c[2] = { POINTS_OF_INTEREST[0][0], POINTS_OF_INTEREST[0][1] };
// Offset and zoom to draw the julia set at. (centered on screen and 1.6 times smaller)
float offset[2] = { -(float)screenWidth/2, -(float)screenHeight/2 };
- float zoom = 1.6f;
+ float zoom = 1.0f;
Vector2 offsetSpeed = { 0.0f, 0.0f };
@@ -111,8 +111,8 @@ int main()
// Probably offset movement should be proportional to zoom level
if (IsMouseButtonDown(MOUSE_LEFT_BUTTON) || IsMouseButtonDown(MOUSE_RIGHT_BUTTON))
{
- if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) zoom -= 0.003f;
- if (IsMouseButtonDown(MOUSE_RIGHT_BUTTON)) zoom += 0.003f;
+ if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) zoom += zoom * 0.003f;
+ if (IsMouseButtonDown(MOUSE_RIGHT_BUTTON)) zoom -= zoom * 0.003f;
Vector2 mousePos = GetMousePosition();