Skip to content

Instantly share code, notes, and snippets.

@khalilgharbaoui
Created July 18, 2016 01:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save khalilgharbaoui/cc6d39ab467a04a4b2de45c894175b49 to your computer and use it in GitHub Desktop.
Save khalilgharbaoui/cc6d39ab467a04a4b2de45c894175b49 to your computer and use it in GitHub Desktop.
RiftSketch - Dragon Fire Cubes - Tree.js
var t3 = THREE;
var light = new t3.PointLight();
light.position.set(20, 10, 10);
scene.add(light);
var makeCube = function(x, y, z) {
var cube = new t3.Mesh(
new t3.BoxGeometry(1, 2, 1),
new t3.MeshLambertMaterial({
color: 'white'
})
);
cube.position.set(-20, .1, -40).add(
new t3.Vector3(x, y, z));
scene.add(cube);
return cube;
};
var spacing = 1.01;
var cubes = [];
var rows = 25;
var cols = 25;
for (var r = 0; r < rows; r++) {
for (var c = 0; c < cols; c++) {
if (c === 0) {
cubes[r] = [];
}
cubes[r][c] = makeCube(r * spacing, 0, c * spacing);
}
}
var i = 0;
return function() {
i += 0.01
for (var r = 0; r < rows; r++) {
for (var c = 0; c < cols; c++) {
var cube = cubes[r][c];
var height = (
Math.sin((r / rows + i) * Math.PI * 3) +
Math.sin((c / cols + i) * Math.PI * 3)) / 2;
cube.position.setY(height + 17);
cube.material.color.setRGB(height * 1, height* Math.PI/22,height /12);
cube.rotation.y += i * height / 40;
cube.rotation.x += i * height / 30;
cube.rotation.z += i * height /25;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment