Skip to content

Instantly share code, notes, and snippets.

@mrdoob
mrdoob / adjoint.glsl
Created September 19, 2019 10:27
Matrix3.getNormalMatrix()
// Use to transform normals with transformation of
// arbitrary non-uniform scales (including negative)
// and skewing. The code assumes the last column of m is
// [0,0,0,1]. More info here:
// https://github.com/graphitemaster/normals_revisited
mat3 adjoint( in mat4 m )
{
return mat3(
m[1][1]*m[2][2]-m[1][2]*m[2][1],
@mrdoob
mrdoob / mov2gif.sh
Created June 10, 2019 22:27
ffmpeg: mov to gif
#!/bin/sh
palette="/tmp/palette.png"
filters="fps=25,scale=640:-1:flags=lanczos"
ffmpeg -v warning -i $1 -vf "$filters,palettegen" -y $palette
ffmpeg -v warning -i $1 -i $palette -lavfi "$filters [x]; [x][1:v] paletteuse" -y $2
function JSONParseAsync( text, callback ) {
var code = 'onmessage = function ( e ) { postMessage( JSON.parse( e.data ) ); close(); }';
var blob = new Blob( [ code ], { type: 'text/plain' } );
var worker = new Worker( window.URL.createObjectURL( blob ) );
worker.addEventListener( 'message', function ( e ) { callback( e.data ); } );
worker.postMessage( text );
}
/**
* @author mrdoob / http://mrdoob.com/
*/
function Layers() {
this.mask = 1;
}
/**
* @author mrdoob / http://mrdoob.com/
*/
function html2canvas( element ) {
var range = document.createRange();
function getRect( rect ) {
@mrdoob
mrdoob / gist:f2ccd368ff773752634e
Created September 18, 2014 02:07
Workaround for Safari/iOS8 oversized innerWidth/innerHeight on threejs.org/examples/
if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
viewer.addEventListener( 'load', function ( event ) {
viewer.contentWindow.innerWidth -= 10;
viewer.contentWindow.innerHeight -= 2;
} );
}
@mrdoob
mrdoob / gist:a021c0c5ea229f6641da
Created July 16, 2014 00:18
Object3D.js (debug)
/**
* @author mrdoob / http://mrdoob.com/
* @author mikael emtinger / http://gomo.se/
* @author alteredq / http://alteredqualia.com/
* @author WestLangley / http://github.com/WestLangley
*/
THREE.Object3D = function () {
this.id = THREE.Object3DIdCount ++;