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
// saveImage.js | |
const dataURLtoBlob = (dataurl) => { | |
var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1], | |
bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n); | |
while(n--){ | |
u8arr[n] = bstr.charCodeAt(n); | |
} | |
return new Blob([u8arr], {type:mime}); | |
} |
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
// fov in Radians, camera position in [x, y, z] | |
const fovHeight = Math.tan(camera.fov / 2) * camera.position[2] | |
const fovWidth = fovHeight * camera.aspectRatio |
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
// From glfx.js : https://github.com/evanw/glfx.js | |
float random(vec3 scale, float seed) { | |
/* use the fragment position for a different seed per-pixel */ | |
return fract(sin(dot(gl_FragCoord.xyz + seed, scale)) * 43758.5453 + seed); | |
} | |
float rand(vec2 co){ | |
return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453); | |
} |
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
vec3 align(vec3 pos, vec3 dir) { | |
vec3 initDir = vec3(1.0, 0.0, 0.0); | |
vec3 axis = cross(dir, initDir); | |
float angle = acos(dot(dir, initDir)); | |
return rotate(pos, axis, angle); | |
} |
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
float map(float value, float start, float end, float newStart, float newEnd) { | |
float percent = (value - start) / (end - start); | |
if (percent < 0.0) { | |
percent = 0.0; | |
} | |
if (percent > 1.0) { | |
percent = 1.0; | |
} | |
float newValue = newStart + (newEnd - newStart) * percent; | |
return newValue; |
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
// compression.js | |
const defaultPrecision = 10; | |
const encode = (a, b, mPrecision=defaultPrecision) => { | |
const precision = mPrecision; | |
const base = Math.floor(Math.sqrt(Math.pow(93, precision))); | |
let lat = a, lng = b; | |
let lng935 = Math.floor( ( parseFloat(lng) +180)*base/360 ); | |
let lat935 = Math.floor( ( parseFloat(lat) +90)*base/180 ); |
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
const dropArea = window; | |
const preventDefaults = (e)=> { | |
e.preventDefault() | |
e.stopPropagation(); | |
} | |
;['dragenter', 'dragover', 'dragleave', 'drop'].forEach(eventName => { | |
dropArea.addEventListener(eventName, preventDefaults, false); | |
}) |
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
#extension GL_EXT_shader_texture_lod : enable | |
uniform samplerCube uRadianceMap; | |
uniform samplerCube uIrradianceMap; | |
#define saturate(x) clamp(x, 0.0, 1.0) | |
#define PI 3.1415926535897932384626433832795 | |
const float A = 0.15; |
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
vec4 when_eq(vec4 x, vec4 y) { | |
return 1.0 - abs(sign(x - y)); | |
} | |
vec4 when_neq(vec4 x, vec4 y) { | |
return abs(sign(x - y)); | |
} | |
vec4 when_gt(vec4 x, vec4 y) { | |
return max(sign(x - y), 0.0); |
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
R G B | |
Silver 0.971519 0.959915 0.915324 | |
Aluminium 0.913183 0.921494 0.924524 | |
Gold 1 0.765557 0.336057 | |
Copper 0.955008 0.637427 0.538163 | |
Chromium 0.549585 0.556114 0.554256 | |
Nickel 0.659777 0.608679 0.525649 | |
Titanium 0.541931 0.496791 0.449419 | |
Cobalt 0.662124 0.654864 0.633732 | |
Platinum 0.672411 0.637331 0.585456 |