diff options
Diffstat (limited to 'shader.vert')
| -rw-r--r-- | shader.vert | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/shader.vert b/shader.vert new file mode 100644 index 0000000..7179918 --- /dev/null +++ b/shader.vert @@ -0,0 +1,110 @@ +#version 310 es + +precision highp float; +precision highp int; + +struct VertexInput { + vec2 position; + vec2 curve_uv; + vec2 color_uv; + vec4 color1_; + vec4 color2_; + vec4 color3_; + vec4 color4_; + vec2 normal_uv; + vec3 normal1_; + vec3 normal2_; + vec3 normal3_; + vec3 normal4_; +}; +struct VertexOutput { + vec4 position; + vec2 curve_uv; + vec2 color_uv; + vec4 color1_; + vec4 color2_; + vec4 color3_; + vec4 color4_; + vec2 normal_uv; + vec3 normal1_; + vec3 normal2_; + vec3 normal3_; + vec3 normal4_; +}; +const float SQRT_2_ = 0.70710677; + +layout(location = 0) in vec2 _p2vs_location0; +layout(location = 1) in vec2 _p2vs_location1; +layout(location = 2) in vec2 _p2vs_location2; +layout(location = 3) in vec4 _p2vs_location3; +layout(location = 4) in vec4 _p2vs_location4; +layout(location = 5) in vec4 _p2vs_location5; +layout(location = 6) in vec4 _p2vs_location6; +layout(location = 7) in vec2 _p2vs_location7; +layout(location = 8) in vec3 _p2vs_location8; +layout(location = 9) in vec3 _p2vs_location9; +layout(location = 10) in vec3 _p2vs_location10; +layout(location = 11) in vec3 _p2vs_location11; +layout(location = 0) smooth out vec2 _vs2fs_location0; +layout(location = 1) smooth out vec2 _vs2fs_location1; +layout(location = 2) smooth out vec4 _vs2fs_location2; +layout(location = 3) smooth out vec4 _vs2fs_location3; +layout(location = 4) smooth out vec4 _vs2fs_location4; +layout(location = 5) smooth out vec4 _vs2fs_location5; +layout(location = 6) smooth out vec2 _vs2fs_location6; +layout(location = 7) smooth out vec3 _vs2fs_location7; +layout(location = 8) smooth out vec3 _vs2fs_location8; +layout(location = 9) smooth out vec3 _vs2fs_location9; +layout(location = 10) smooth out vec3 _vs2fs_location10; + +float square(float in_) { + return (in_ * in_); +} + +float cube(float in_1) { + return ((in_1 * in_1) * in_1); +} + +vec3 lerp(vec3 a, vec3 b, float t) { + return (((b - a) * t) + a); +} + +vec3 oklab_to_linear_srgb(vec3 color) { + float _e10 = cube(((color.x + (0.39633778 * color.y)) + (0.21580376 * color.z))); + float _e20 = cube(((color.x - (0.105561346 * color.y)) - (0.06385417 * color.z))); + float _e30 = cube(((color.x - (0.08948418 * color.y)) - (1.2914855 * color.z))); + return vec3((((4.0767417 * _e10) - (3.3077116 * _e20)) + (0.23096994 * _e30)), (((-1.268438 * _e10) + (2.6097574 * _e20)) - (0.34131938 * _e30)), (((-0.0041960864 * _e10) - (0.7034186 * _e20)) + (1.7076147 * _e30))); +} + +void main() { + VertexInput vertex = VertexInput(_p2vs_location0, _p2vs_location1, _p2vs_location2, _p2vs_location3, _p2vs_location4, _p2vs_location5, _p2vs_location6, _p2vs_location7, _p2vs_location8, _p2vs_location9, _p2vs_location10, _p2vs_location11); + VertexOutput out_ = VertexOutput(vec4(0.0), vec2(0.0), vec2(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec4(0.0), vec2(0.0), vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0)); + out_.position = vec4(vertex.position, 1.0, 1.0); + out_.curve_uv = vertex.curve_uv; + out_.color_uv = vertex.color_uv; + out_.color1_ = vertex.color1_; + out_.color2_ = vertex.color2_; + out_.color3_ = vertex.color3_; + out_.color4_ = vertex.color4_; + out_.normal_uv = vertex.normal_uv; + out_.normal1_ = vertex.normal1_; + out_.normal2_ = vertex.normal2_; + out_.normal3_ = vertex.normal3_; + out_.normal4_ = vertex.normal4_; + VertexOutput _e29 = out_; + gl_Position = _e29.position; + _vs2fs_location0 = _e29.curve_uv; + _vs2fs_location1 = _e29.color_uv; + _vs2fs_location2 = _e29.color1_; + _vs2fs_location3 = _e29.color2_; + _vs2fs_location4 = _e29.color3_; + _vs2fs_location5 = _e29.color4_; + _vs2fs_location6 = _e29.normal_uv; + _vs2fs_location7 = _e29.normal1_; + _vs2fs_location8 = _e29.normal2_; + _vs2fs_location9 = _e29.normal3_; + _vs2fs_location10 = _e29.normal4_; + gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); + return; +} + |
