Skip to content

Instantly share code, notes, and snippets.

@mrdoob
mrdoob / gist:647576
Created October 26, 2010 19:13
Three.js - Material system
// Approach 1 (links)
// Once the renderer finds a *MeshFaceMaterial*, it'll process the face material array
var common_material = [ new BitmapUVMaterial( bitmap ) ];
mesh.material = [ new MeshFaceMaterial(), new MeshColorStrokeMaterial( 0xff0000 ) ];
mesh.faces[ 0 ].material = common_material;
mesh.faces[ 1 ].material = common_material;
// Approach 2 (indices)
@na-ka-na
na-ka-na / HN.js
Created January 17, 2011 00:54
Hacker News Javascript program which generates the website
var start = new Date();
var data = eval('(' +
"[[\"1.\",\"2107773\",\"\\\"http:\\/\\/www.crunchgear.com\\/2011\\/01\\/15\\/a-brief-explanation-of-why-minecraft-matters\\/\\\"\",\"Why Minecraft Matters\",\" (crunchgear.com) \",\"50\",\"solipsist\",\" 2 hours ago | \",\"17 comments\"],[\"2.\",\"2108021\",\"\\\"http:\\/\\/antimatter15.com\\/wp\\/2011\\/01\\/the-ambiguity-of-open-and-vp8-vs-h-264\\/\\\"\",\"The Ambiguity of Open and H.264 vs. VP8\",\" (antimatter15.com) \",\"17\",\"antimatter15\",\" 1 hour ago | \",\"discuss\"],[\"3.\",\"2107618\",\"\\\"http:\\/\\/www.jamesmolloy.co.uk\\/tutorial_html\\/index.html\\\"\",\"Roll your own toy UNIX-clone OS\",\" (jamesmolloy.co.uk) \",\"57\",\"Rusky\",\" 4 hours ago | \",\"1 comment\"],[\"4.\",\"2108034\",\"\\\"http:\\/\\/nealpoole.com\\/blog\\/2011\\/01\\/http-response-splitting-on-reddit-com\\/\\\"\",\"HTTP Response Splitting Vulnerability on reddit.com\",\" (nealpoole.com) \",\"7\",\"there\",\" 1 hour ago | \",\"3 comments\"],[\"5.\",\"2107755\",\"\\\"http:\\/\
THREE.LetterZ = function () {
THREE.Geometry.call( this );
var scope = this;
vertices = [{"x":90.3,"y":0},{"x":0,"y":0},{"x":0,"y":-14.85},{"x":63.599999999999994,"y":-94.35},{"x":3,"y":-94.35},{"x":3,"y":-110.55},{"x":87.3,"y":-110.55},{"x":87.3,"y":-95.25},{"x":24,"y":-16.349999999999998},{"x":90.3,"y":-16.349999999999998}];
faces = [[9,0,1],[1,2,3],[3,4,5],[5,6,7],[8,9,1],[3,5,7],[7,8,1],[1,3,7]];
for (var i in vertices) {
@zz85
zz85 / THREE.FontText.js
Created May 24, 2011 11:46
THREE.FontText
/**
* @author mr.doob / http://mrdoob.com/
* @author philogb / http://blog.thejit.org/
* @author zz85 / http://www.lab4games.net/zz85/blog
*/
THREE.Vector2 = function ( x, y ) {
this.set(
@zz85
zz85 / THREE.Path.js & THREE.Shape.js
Created July 5, 2011 16:26
Prototype Path & Shape & Extrude Geometry Class
/**
* @author zz85 / http://www.lab4games.net/zz85/blog
* Creates free form path.
**/
THREE.Path = function (path) {
this.path = path || [];
};
var ACTIONS = {
@zz85
zz85 / THREE.Path.js & THREE.Shape.js & THREE.ExtrudeGeometry.js
Created July 10, 2011 18:16
Prototype Path & Shape & Extrude Geometry Class
/**
* @author zz85 / http://www.lab4games.net/zz85/blog
* Creates free form path.
**/
THREE.Path = function (points) {
this.path = [];
if (points) {
this.fromPoints(points);
}
@zz85
zz85 / gist:1193068
Created September 4, 2011 16:02
Triangle Blur - ShaderUtils
/**
* @author alteredq / http://alteredqualia.com/
*
* ShaderExtras currently contains:
*
* screen
* convolution
* film
* bokeh
* sepia
@zz85
zz85 / TurbulenceEffect.js
Created September 20, 2011 13:43
Turbulence Effect for Sparks.js
var perlin = new SimplexNoise();
var Turbulence = function() {
this.frequency = 1;
this.octaves = 1;
this.amplitude = 1000;
this.evolution = 0;
Turbulence._turbulenceVel = new THREE.Vector3();
};
@zz85
zz85 / pointInPolygon.js
Created October 3, 2011 00:16
Point in Polgon
// https://github.com/zz85/
// implements Point - in - Polygon
// described in "A Winding Number and Point-in-Polygon Algorithm"
// returns 0 if point is not in polygon
// returns n > 0 if contour winds around point in counter-clockwise manner n times
// returns n < 0 if contour winds around point in clockwise manner -n times
function pointInPolygon(point, contour) {
// Creates a copy of contour
var adjustedContour = [];
var i,il;
@zz85
zz85 / CombineCamera.js
Created October 5, 2011 09:14
A general purpose camera for Three.js
THREE.CombinedCamera = function ( width, height, fov, near, far, orthonear, orthofar ) {
THREE.Camera.call( this );
this.cameraO = new THREE.OrthographicCamera( width / - 2, width / 2, height / 2, height / - 2, orthonear, orthofar );
this.cameraP = new THREE.PerspectiveCamera( fov, width/height, near, far );
this.toPerspective();
};