본문 바로가기

College Study/GLSL26

[GLSL] Translate https://thebookofshaders.com/08/ The Book of Shaders Gentle step-by-step guide through the abstract and complex universe of Fragment Shaders. thebookofshaders.com #ifdef GL_ES precision mediump float; #endif uniform vec2 u_resolution; uniform vec2 u_mouse; uniform float u_time; float bar (vec2 loc, vec2 size, vec2 coord){ vec2 lb = loc - size/2.; vec2 rt = loc + size/2.; vec2 st = step(lb, coord.. 2022. 1. 6.
[GLSL] Polar Shapes https://thebookofshaders.com/07/ The Book of Shaders Gentle step-by-step guide through the abstract and complex universe of Fragment Shaders. thebookofshaders.com A circle is a figure with the same radius regardless of the angle from the center. But this time, let's make a shape that changes the distance to the center according to the angle. Declare the variables a, d, and r in the default code... 2022. 1. 6.
[GLSL] Circle Shapes https://thebookofshaders.com/07/ The Book of Shaders Gentle step-by-step guide through the abstract and complex universe of Fragment Shaders. thebookofshaders.com Let's make mirrored circle wave. New default codes: #ifdef GL_ES precision mediump float; #endif uniform vec2 u_resolution; uniform vec2 u_mouse; uniform float u_time; void main(){ vec2 coord = gl_FragCoord.xy/u_resolution; coord.x *= .. 2022. 1. 6.
[GLSL] Circle https://thebookofshaders.com/07/ To make circle, the functions ‘length’ and ‘distance’ are often used. // Author @patriciogv - 2015 // http://patriciogonzalezvivo.com #ifdef GL_ES precision mediump float; #endif uniform vec2 u_resolution; uniform vec2 u_mouse; uniform float u_time; void main(){ vec2 st = gl_FragCoord.xy/u_resolution; float pct = 0.0; vec2 toCenter = vec2(0.5)-st; pct = length(to.. 2022. 1. 6.
[GLSL] Rectangle https://thebookofshaders.com/07/ The Book of Shaders Gentle step-by-step guide through the abstract and complex universe of Fragment Shaders. thebookofshaders.com After listening to the lecture, followed the memory and wrote the code below. #ifdef GL_ES precision mediump float; #endif #define TWO_PI 6.28318530718 uniform vec2 u_resolution; uniform float u_time; vec3 rect(vec2 coord, vec2 loc, ve.. 2022. 1. 5.
[GLSL] Qualifier https://thebookofshaders.com/06/ The Book of Shaders Gentle step-by-step guide through the abstract and complex universe of Fragment Shaders. thebookofshaders.com int newFunction(in vec4 aVec4, // read-only out vec3 aVec3, // write-only inout int aInt); // read-write The default is in. The inout qualifier is similar to a call by reference. 2022. 1. 5.
[GLSL] Atan https://thebookofshaders.com/06/ The Book of Shaders Gentle step-by-step guide through the abstract and complex universe of Fragment Shaders. thebookofshaders.com As you probably know there are different ways to organize color besides by red, green and blue channels. HSB stands for Hue, Saturation and Brightness (or Value) and is a more intuitive and useful organization of colors. #ifdef GL_ES p.. 2022. 1. 5.
[GLSL] Mix https://thebookofshaders.com/06/ The Book of Shaders Gentle step-by-step guide through the abstract and complex universe of Fragment Shaders. thebookofshaders.com In GLSL there is a very useful function, mix( ), that lets you mix two values in percentages. Can you guess what the percentage range is? Yes, values between 0.0 and 1.0! Check the following code at line 18 and see how we are using the.. 2022. 1. 5.
[GLSL] Color https://thebookofshaders.com/06/ The Book of Shaders Gentle step-by-step guide through the abstract and complex universe of Fragment Shaders. thebookofshaders.com vec3 red = vec3(1.0,0.0,0.0); red.x = 1.0; red.y = 0.0; red.z = 0.0; vec4 vector; vector[0] = vector.r = vector.x = vector.s; vector[1] = vector.g = vector.y = vector.t; vector[2] = vector.b = vector.z = vector.p; vector[3] = vector.a .. 2022. 1. 5.