-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
11,606 changed files
with
256,532 additions
and
6 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# Set the default behavior, in case people don't have core.autocrlf set. | ||
* text=auto | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
*.pyc | ||
.DS_Store | ||
node_modules | ||
out | ||
extra | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
{ | ||
"_id": "22RaBcCzsbaXEzCh5", | ||
"owner": { | ||
"_id": "DMjrQbvFJZiBrahNH", | ||
"createdAt": { | ||
"$date": { | ||
"$numberLong": "1684316626390" | ||
} | ||
}, | ||
"profile": { | ||
"name": null, | ||
"avatarUrl": "https://avatars.githubusercontent.com/JeminShin2?s=200" | ||
}, | ||
"username": "jeminshin2" | ||
}, | ||
"createdAt": { | ||
"$date": { | ||
"$numberLong": "1684316663590" | ||
} | ||
}, | ||
"modifiedAt": { | ||
"$date": { | ||
"$numberLong": "1684316857456" | ||
} | ||
}, | ||
"origId": null, | ||
"name": "Making A Grid", | ||
"notes": "", | ||
"rank": { | ||
"$numberDouble": "1.6403155062990533" | ||
}, | ||
"private": false, | ||
"unlisted": true, | ||
"username": "jeminshin2", | ||
"avatarUrl": "https://avatars.githubusercontent.com/JeminShin2?s=200", | ||
"settings": "{\"num\":10000,\"mode\":\"LINES\",\"sound\":\"\",\"lineSize\":\"NATIVE\",\"backgroundColor\":[0,0,0,1],\"shader\":\"// Jemin.Shin\\n// Exercise Making A Grid\\n// CS250 Spring 2022\\n\\nvoid main() {\\n float down = floor(sqrt(vertexCount));\\n float across = floor(vertexCount/down);\\n \\n float x = mod(vertexId, across);\\n float y = floor(vertexId/across);\\n \\n float u = x / (across - 1.);\\n float v = y / (across - 1.);\\n \\n float ux = u * 2. - 1.;\\n float vy = v * 2. - 1.;\\n \\n gl_Position = vec4(ux * sin(time), vy * cos(time), 0., 0.5);\\n \\n gl_PointSize = 10.0;\\n gl_PointSize *= 20./across;\\n gl_PointSize *= resolution.x / 400.;\\n \\n \\n v_color = vec4(1,0,0,1);\\n \\n}\"}", | ||
"screenshotURL": "data/images/images-d2fsmpwp2mvlmqnit-thumbnail.jpg", | ||
"hasSound": "", | ||
"views": { | ||
"$numberInt": "2" | ||
}, | ||
"likes": { | ||
"$numberInt": "0" | ||
}, | ||
"revisionId": "KzeoJ5ejF8jQ3XPrm" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
<!DOCTYPE html> | ||
<html> | ||
<head> | ||
|
||
<meta charset="utf-8"> | ||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"> | ||
|
||
<meta name="description" content="vertexshaderart"> | ||
<meta name="keywords" content="webgl glsl graphics"> | ||
<meta name="thumbnail" content="https://vertexshaderart.com/data/images/images-d2fsmpwp2mvlmqnit-thumbnail.jpg"> | ||
|
||
<meta property="og:title" content="vertexshaderart - Making A Grid - by jeminshin2"> | ||
<meta property="og:type" content="website"> | ||
<meta property="og:image" content="https://vertexshaderart.com/data/images/images-d2fsmpwp2mvlmqnit-thumbnail.jpg"> | ||
<meta property="og:description" content="vertexshadertart"> | ||
<meta property="og:url" content="https://vertexshaderart.com/art/22RaBcCzsbaXEzCh5"> | ||
|
||
<meta name="twitter:card" content="summary_large_image"> | ||
<meta name="twitter:domain" content="webgpufundamentals.org"> | ||
<meta name="twitter:title" content="vertexshaderart - Making A Grid - by jeminshin2"> | ||
<meta name="twitter:url" content="https://vertexshaderart.com/art/22RaBcCzsbaXEzCh5"> | ||
<meta name="twitter:description" content="vertexshaderart"> | ||
<meta name="twitter:image:src" content=https://vertexshaderart.com/data/images/images-d2fsmpwp2mvlmqnit-thumbnail.jpg"> | ||
|
||
<title>vertexshaderart - Making A Grid - by jeminshin2</title> | ||
|
||
<link rel="stylesheet" href="../../style.css"> | ||
</head> | ||
<body> | ||
<iframe src="../../src/?art=22RaBcCzsbaXEzCh5" | ||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
{ | ||
"_id": "23ezRZjpZK82TqNJr", | ||
"owner": { | ||
"_id": "B7Kfai5f9h3MxwJcP", | ||
"createdAt": { | ||
"$date": { | ||
"$numberLong": "1445777397953" | ||
} | ||
}, | ||
"username": "gman", | ||
"profile": { | ||
"info": " contact: [@greggman](http://twitter.com/greggman), [github](http://github.com/greggman), [blog](http://greggman.com)\nnew stuff: [webgl](http://webglfundamentals.com), [twgl](http://twgljs.org), [threejsfundamentals](https://threejsfundamentals.org)\nold stuff: [chrome](http://chromium.org), [locoroco](https://www.youtube.com/watch?v=pFKpyScxv0k), [CTR](https://www.youtube.com/watch?v=3O8FK5d67cM), [Zombie Revenge](https://www.youtube.com/watch?v=Xw8yNik8Q-A), [and others...](http://games.greggman.com/game/games_o_the_greggman/)\n\nSome stuff you might want to look at\n\n* [A uniform grid based on `vertexCount` and the window dimensions](https://www.vertexshaderart.com/art/NPohkmBgKdTBhML8P)\n* [Tons of matrix functions](https://www.vertexshaderart.com/art/nr3EiyXWLMpwoouHt)\n\nNote: All the shaders I've posted are licensed [CC0](https://creativecommons.org/publicdomain/zero/1.0/)", | ||
"avatarUrl": "https://secure.gravatar.com/avatar/dcc0309895c3d6db087631813efaa9d1?default=retro&size=200" | ||
} | ||
}, | ||
"createdAt": { | ||
"$date": { | ||
"$numberLong": "1451079504674" | ||
} | ||
}, | ||
"modifiedAt": { | ||
"$date": { | ||
"$numberLong": "1545783344624" | ||
} | ||
}, | ||
"origId": "bpN3ufoDGdkJjxFsQ", | ||
"name": "xmas", | ||
"notes": "", | ||
"rank": { | ||
"$numberDouble": "10.853248709487326" | ||
}, | ||
"private": false, | ||
"unlisted": false, | ||
"username": "gman", | ||
"avatarUrl": "https://secure.gravatar.com/avatar/dcc0309895c3d6db087631813efaa9d1?default=retro&size=200", | ||
"settings": "{\"num\":100000,\"mode\":\"TRIANGLES\",\"sound\":\"https://soundcloud.com/user-811313743/a-charlie-brown-christmas-skating\",\"lineSize\":\"NATIVE\",\"backgroundColor\":[0,0.5882352941176471,0.6901960784313725,1],\"shader\":\"/*\\n\\n _____, ____, ___, ___, __ _, \\n(-| | | (-|_, (-|_) (-|_) (-\\\\ | \\n _| | |_, _|__, _| \\\\_, _| \\\\_, \\\\| \\n( ( ( ( (__/ \\n ____ __ _, ___, ____, ____ ____, _____, ___, ____ \\n (-/ ` (-|__| (-|_) (-| (-(__`(-| (-| | | (-|_\\\\_,(-(__`\\n \\\\___, _| |_, _| \\\\_, _|__, ____) _| _| | |_, _| ) ____)\\n ( ( ( ( ( ( ( ( \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n*/\\n\\n#define PI radians(180.0)\\n\\nvec3 hsv2rgb(vec3 c) {\\n c = vec3(c.x, clamp(c.yz, 0.0, 1.0));\\n vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\\n vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\\n return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\\n}\\n\\n\\nmat4 rotY( float angle ) {\\n float s = sin( angle );\\n float c = cos( angle );\\n \\t\\n return mat4( \\n c, 0,-s, 0,\\n 0, 1, 0, 0,\\n s, 0, c, 0,\\n 0, 0, 0, 1); \\n}\\n\\n\\nmat4 rotZ( float angle ) {\\n float s = sin( angle );\\n float c = cos( angle );\\n \\t\\n return mat4( \\n c,-s, 0, 0, \\n s, c, 0, 0,\\n 0, 0, 1, 0,\\n 0, 0, 0, 1); \\n}\\n\\nmat4 trans(vec3 trans) {\\n return mat4(\\n 1, 0, 0, 0,\\n 0, 1, 0, 0,\\n 0, 0, 1, 0,\\n trans, 1);\\n}\\n\\nmat4 ident() {\\n return mat4(\\n 1, 0, 0, 0,\\n 0, 1, 0, 0,\\n 0, 0, 1, 0,\\n 0, 0, 0, 1);\\n}\\n\\nmat4 scale(vec3 s) {\\n return mat4(\\n s[0], 0, 0, 0,\\n 0, s[1], 0, 0,\\n 0, 0, s[2], 0,\\n 0, 0, 0, 1);\\n}\\n\\nmat4 uniformScale(float s) {\\n return mat4(\\n s, 0, 0, 0,\\n 0, s, 0, 0,\\n 0, 0, s, 0,\\n 0, 0, 0, 1);\\n}\\n\\nmat4 persp(float fov, float aspect, float zNear, float zFar) {\\n float f = tan(PI * 0.5 - 0.5 * fov);\\n float rangeInv = 1.0 / (zNear - zFar);\\n\\n return mat4(\\n f / aspect, 0, 0, 0,\\n 0, f, 0, 0,\\n 0, 0, (zNear + zFar) * rangeInv, -1,\\n 0, 0, zNear * zFar * rangeInv * 2., 0);\\n}\\n\\nmat4 trInv(mat4 m) {\\n mat3 i = mat3(\\n m[0][0], m[1][0], m[2][0], \\n m[0][1], m[1][1], m[2][1], \\n m[0][2], m[1][2], m[2][2]);\\n vec3 t = -i * m[3].xyz;\\n \\n return mat4(\\n i[0], t[0], \\n i[1], t[1],\\n i[2], t[2],\\n 0, 0, 0, 1);\\n}\\n\\nmat4 transpose(mat4 m) {\\n return mat4(\\n m[0][0], m[1][0], m[2][0], m[3][0], \\n m[0][1], m[1][1], m[2][1], m[3][1],\\n m[0][2], m[1][2], m[2][2], m[3][2],\\n m[0][3], m[1][3], m[2][3], m[3][3]);\\n}\\n\\nmat4 lookAt(vec3 eye, vec3 target, vec3 up) {\\n vec3 zAxis = normalize(eye - target);\\n vec3 xAxis = normalize(cross(up, zAxis));\\n vec3 yAxis = cross(zAxis, xAxis);\\n\\n return mat4(\\n xAxis, 0,\\n yAxis, 0,\\n zAxis, 0,\\n eye, 1);\\n}\\n\\nmat4 inverse(mat4 m) {\\n float\\n a00 = m[0][0], a01 = m[0][1], a02 = m[0][2], a03 = m[0][3],\\n a10 = m[1][0], a11 = m[1][1], a12 = m[1][2], a13 = m[1][3],\\n a20 = m[2][0], a21 = m[2][1], a22 = m[2][2], a23 = m[2][3],\\n a30 = m[3][0], a31 = m[3][1], a32 = m[3][2], a33 = m[3][3],\\n\\n b00 = a00 * a11 - a01 * a10,\\n b01 = a00 * a12 - a02 * a10,\\n b02 = a00 * a13 - a03 * a10,\\n b03 = a01 * a12 - a02 * a11,\\n b04 = a01 * a13 - a03 * a11,\\n b05 = a02 * a13 - a03 * a12,\\n b06 = a20 * a31 - a21 * a30,\\n b07 = a20 * a32 - a22 * a30,\\n b08 = a20 * a33 - a23 * a30,\\n b09 = a21 * a32 - a22 * a31,\\n b10 = a21 * a33 - a23 * a31,\\n b11 = a22 * a33 - a23 * a32,\\n\\n det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\\n\\n return mat4(\\n a11 * b11 - a12 * b10 + a13 * b09,\\n a02 * b10 - a01 * b11 - a03 * b09,\\n a31 * b05 - a32 * b04 + a33 * b03,\\n a22 * b04 - a21 * b05 - a23 * b03,\\n a12 * b08 - a10 * b11 - a13 * b07,\\n a00 * b11 - a02 * b08 + a03 * b07,\\n a32 * b02 - a30 * b05 - a33 * b01,\\n a20 * b05 - a22 * b02 + a23 * b01,\\n a10 * b10 - a11 * b08 + a13 * b06,\\n a01 * b08 - a00 * b10 - a03 * b06,\\n a30 * b04 - a31 * b02 + a33 * b00,\\n a21 * b02 - a20 * b04 - a23 * b00,\\n a11 * b07 - a10 * b09 - a12 * b06,\\n a00 * b09 - a01 * b07 + a02 * b06,\\n a31 * b01 - a30 * b03 - a32 * b00,\\n a20 * b03 - a21 * b01 + a22 * b00) / det;\\n}\\n\\nmat4 cameraLookAt(vec3 eye, vec3 target, vec3 up) {\\n #if 1\\n return inverse(lookAt(eye, target, up));\\n #else\\n vec3 zAxis = normalize(target - eye);\\n vec3 xAxis = normalize(cross(up, zAxis));\\n vec3 yAxis = cross(zAxis, xAxis);\\n\\n return mat4(\\n xAxis, 0,\\n yAxis, 0,\\n zAxis, 0,\\n -dot(xAxis, eye), -dot(yAxis, eye), -dot(zAxis, eye), 1); \\n #endif\\n \\n}\\n// hash function from https://www.shadertoy.com/view/4djSRW\\nfloat hash(float p) {\\n\\tvec2 p2 = fract(vec2(p * 5.3983, p * 5.4427));\\n p2 += dot(p2.yx, p2.xy + vec2(21.5351, 14.3137));\\n\\treturn fract(p2.x * p2.y * 95.4337);\\n}\\n\\nfloat m1p1(float v) {\\n return v * 2. - 1.;\\n}\\n\\nfloat inv(float v) {\\n return 1. - v;\\n}\\n\\nvec3 getQPoint(const float id) {\\n float outId = mix(id, 8. - id, step(2.5, id));\\n float ux = floor(outId / 6.) + mod(outId, 2.);\\n float vy = mod(floor(outId / 2.) + floor(outId / 3.), 2.); \\n vec3 pos = vec3(ux, vy, 0); \\n return pos;\\n}\\n\\nvoid main() {\\n float vId = vertexId;\\n float numStems = 6.;\\n float quadsPerStem = 5.;\\n float pointsPerStem = quadsPerStem * 6.;\\n float pointsPerFlake = pointsPerStem * numStems;\\n float numFlakes = floor(vertexCount / pointsPerFlake);\\n float quadId = mod(floor(vId / 6.), quadsPerStem);\\n float stemId = floor(vId / pointsPerStem);\\n float flakeId = floor(vId / pointsPerFlake);\\n float stemV = stemId / numStems;\\n float flakeV = flakeId / numFlakes;\\n \\n vec3 p = getQPoint(mod(vId, 6.));\\n \\n vec3 camera = vec3(0, 0, 1);\\n vec3 target = vec3(0, 0, 0);\\n vec3 up = vec3(0, 1, 0);\\n \\n float z = hash(flakeId) * -10.;\\n\\n mat4 m = persp(radians(45.), resolution.x / resolution.y, 0.1, 20.);\\n m *= cameraLookAt(camera, target, up);\\n m *= trans(vec3(\\n (z + 1.5) * 1. * m1p1(hash(flakeId * 0.171)) + 0.05 * sin(time * mix(0.91, 0.2, hash(flakeId * 0.951))), \\n mix(1.5, -1.5, fract(hash(flakeId * .654) + time * mix(0.01, 0.03, hash(flakeId * 0.543)))), \\n z));\\n m *= uniformScale(mix(0.05, 0.1, hash(flakeId * 0.243)));\\n m *= rotZ(time * hash(flakeId));\\n m *= rotY(time * hash(flakeId));\\n m *= rotZ(stemV * PI * 2. + mix(1.5, -1.5, fract(time * mix(-0.3, 0.3, hash(flakeId * 0.843)))));\\n m *= scale(vec3(0.1, m1p1(hash(flakeId * 0.123 + quadId * 0.711 + p.x)) * 0.3, 1));\\n m *= trans(vec3(quadId, -0.5, 0));\\n gl_Position = m * vec4(p, 1);\\n \\n v_color = vec4(1);\\n v_color.a = mix(1.0, 0.0, hash(flakeId));\\n v_color = vec4(v_color.rgb * v_color.a, v_color.a);\\n}\"}", | ||
"screenshotURL": "data/images/images-w1f0zzufayogu5orv-thumbnail.jpg", | ||
"hasSound": true, | ||
"views": { | ||
"$numberInt": "732" | ||
}, | ||
"likes": { | ||
"$numberInt": "6" | ||
}, | ||
"revisionId": "GFfdfWjMoqChPBxf9" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
<!DOCTYPE html> | ||
<html> | ||
<head> | ||
|
||
<meta charset="utf-8"> | ||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"> | ||
|
||
<meta name="description" content="vertexshaderart"> | ||
<meta name="keywords" content="webgl glsl graphics"> | ||
<meta name="thumbnail" content="https://vertexshaderart.com/data/images/images-w1f0zzufayogu5orv-thumbnail.jpg"> | ||
|
||
<meta property="og:title" content="vertexshaderart - xmas - by gman"> | ||
<meta property="og:type" content="website"> | ||
<meta property="og:image" content="https://vertexshaderart.com/data/images/images-w1f0zzufayogu5orv-thumbnail.jpg"> | ||
<meta property="og:description" content="vertexshadertart"> | ||
<meta property="og:url" content="https://vertexshaderart.com/art/23ezRZjpZK82TqNJr"> | ||
|
||
<meta name="twitter:card" content="summary_large_image"> | ||
<meta name="twitter:domain" content="webgpufundamentals.org"> | ||
<meta name="twitter:title" content="vertexshaderart - xmas - by gman"> | ||
<meta name="twitter:url" content="https://vertexshaderart.com/art/23ezRZjpZK82TqNJr"> | ||
<meta name="twitter:description" content="vertexshaderart"> | ||
<meta name="twitter:image:src" content=https://vertexshaderart.com/data/images/images-w1f0zzufayogu5orv-thumbnail.jpg"> | ||
|
||
<title>vertexshaderart - xmas - by gman</title> | ||
|
||
<link rel="stylesheet" href="../../style.css"> | ||
</head> | ||
<body> | ||
<iframe src="../../src/?art=23ezRZjpZK82TqNJr" | ||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
{ | ||
"_id": "23rhC2bHw8GtaXfa3", | ||
"owner": { | ||
"_id": "8zztH8K59zQaKjuQX", | ||
"createdAt": { | ||
"$date": { | ||
"$numberLong": "1677359387406" | ||
} | ||
}, | ||
"profile": { | ||
"first_name": "James", | ||
"last_name": "Andrew", | ||
"avatarUrl": "https://lh3.googleusercontent.com/a/AGNmyxa3JZWJm88yunQiCwAfn9zM-tkF1s8O-hJsYEynRw=s96-c" | ||
}, | ||
"username": "james2" | ||
}, | ||
"createdAt": { | ||
"$date": { | ||
"$numberLong": "1677785484409" | ||
} | ||
}, | ||
"modifiedAt": { | ||
"$date": { | ||
"$numberLong": "1677785484409" | ||
} | ||
}, | ||
"origId": null, | ||
"name": "Amoeba 1", | ||
"notes": "The Amoeba", | ||
"rank": { | ||
"$numberDouble": "1.7558558945872287" | ||
}, | ||
"private": false, | ||
"unlisted": true, | ||
"username": "james2", | ||
"avatarUrl": "https://lh3.googleusercontent.com/a/AGNmyxa3JZWJm88yunQiCwAfn9zM-tkF1s8O-hJsYEynRw=s96-c", | ||
"settings": "{\"num\":20000,\"mode\":\"LINE_LOOP\",\"sound\":\"\",\"lineSize\":\"NATIVE\",\"backgroundColor\":[0,0,0,1],\"shader\":\"//KDrawmode=GL_LINE_LOOP\\n//KVerticesNumber=20000\\n\\n#define turning 1.4//KParameter0 1.4>>100.\\n#define rotateXcos 1.//KParameter1 1.>>5.\\n#define rotateYcos 1.//KParameter2 1.>>5.\\n#define rotateZcos 1.//KParameter3 1.>>5.\\n#define spikeFactor 4. //KParameter4 1.>>10.\\n#define spikeFactor2 4. //KParameter5 1.>>100.\\n\\n#define PI radians(180.)\\n\\nvec3 hsv2rgb(vec3 c) {\\n c = vec3(c.x, clamp(c.yz, 0.0, 1.0));\\n vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\\n vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\\n return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\\n}\\n\\nstruct point {\\n vec3 position;\\n float a;\\n float b;\\n float rad;\\n float snd;\\n};\\n\\npoint getPoint(float i) {\\n\\n float pointsPerTurn = floor(sqrt(vertexCount) * 2.);\\n pointsPerTurn -= mod(pointsPerTurn, 16.);\\n pointsPerTurn++;\\n float turns = vertexCount / pointsPerTurn;\\n \\n float a = (PI + PI / turns) * i; //(acos(1.0 - 2.0 * i) / PI);\\n float b = 2. * PI * i * turns;\\n \\n\\n a -= mod(vertexId, 2.) * PI / (turns - 1.);\\n a = clamp(a, 0., PI);\\n\\n \\n float spike = pow(cos(a * spikeFactor), 4.);\\n bool middle = a > PI / 8. && a < PI * 7. / 8.;\\n if (middle) {\\n\\t spike *= pow(sin(b * spikeFactor2), 4.);\\n }\\n \\n float snd = pow(texture2D(sound, vec2(0.005, spike*0.025)).a, 4.);\\n\\n float rad = 0.35; \\n rad += spike * 0.35;\\n rad += snd * 0.2; \\n\\n \\n float x = sin(a);\\n float y = cos(a); \\n float z = sin(b) * x;\\n x *= cos(b);\\n \\n return point(vec3(x, y, z) * rad, a, b, rad, snd); \\t\\n}\\n\\nvoid main() {\\n \\n point p1 = getPoint(vertexId / vertexCount);\\n// point p2 = getPoint((vertexId - 1.) / vertexCount);\\n// point p3 = getPoint((vertexId - 2.) / vertexCount);\\n// vec3 normal = normalize(cross(p2.position - p1.position, p3.position - p1.position));\\n \\n \\n float mx = sin(time - p1.rad) * turning;\\n// float mx = PI * -mouse.y;\\n float my = time - p1.rad;\\n// float my = PI * -mouse.x;\\n float mz = sin(time * 0.44 - p1.rad);\\n mat2 rotateX = mat2(cos(mx)*rotateXcos, -sin(mx), sin(mx), cos(mx));\\n mat2 rotateY = mat2(cos(my)*rotateYcos, -sin(my), sin(my), cos(my));\\n mat2 rotateZ = mat2(cos(mz)*rotateZcos, -sin(mz), sin(mz), cos(mz));\\n\\n p1.position.yz *= rotateX;\\n p1.position.xz *= rotateY;\\n p1.position.xy *= rotateZ; \\n\\n \\n float screenZ = -0.;\\n float eyeZ = -4.5;\\n float perspective = (eyeZ - screenZ) / (p1.position.z - eyeZ);\\n p1.position.xy *= perspective;\\n \\n float aspect = resolution.x / resolution.y;\\n p1.position.x /= aspect;\\n \\n gl_Position = vec4(p1.position, 1);\\n \\n gl_PointSize = 2. - p1.position.z * 5.;\\n\\n\\n float h = fract(p1.b / (2. * PI));\\n float s = (p1.rad - 0.5 * p1.snd) * 3.;\\n \\n if (p1.a < PI / 8.) {\\n \\ts = mix(s, 0., 1. - p1.a / (PI / 8.));\\n } else if (p1.a > PI * 7. / 8.) {\\n \\ts = mix(s, 0., 1. - (PI - p1.a) / (PI / 8.)); \\n }\\n float v = 0.4 - p1.position.z * 2.;\\n// float v = normal.z * 0.5 + 0.5; \\n \\n v_color = vec4(hsv2rgb(vec3(h, s, v)), 1);\\n}\"}", | ||
"screenshotURL": "data/images/images-hv1jz5edj50qxtz7o-thumbnail.jpg", | ||
"hasSound": "", | ||
"views": { | ||
"$numberInt": "3" | ||
}, | ||
"likes": { | ||
"$numberInt": "0" | ||
}, | ||
"revisionId": "GHTGeuTJ9t3kqf4FA" | ||
} |
Oops, something went wrong.