3. 3D and Augmented Reality
Content
1. 3D
Sphapes
var angle = 0;
var radius = 100;
let xoff = 0.0;
var fs = fullscreen();
function setup(){
createCanvas(690,400, WEBGL);
frameRate(60);
noStroke();
}
function draw(){
background(30,40, 60);
ambientLight(0, 100, 100);
directionalLight(255,255,0, +1,-1,0);
rotateX(angle);
rotateY(angle);
rotateZ(angle);
torus(noise(xoff)*400, 50, 40, 20);
radius += random(-3,3);
angle += 0.02;
xoff = xoff + 0.01;
}
function mousePressed(){
fullscreen(!fs);
return false;
}
function windowResized(){
if (fullscreen()) {
resizeCanvas(displayWidth, displayHeight);
} else {
resizeCanvas(windowWidth,windowHeight);
}
}
lighting
obj-Files
var angle = 0;
var fs = fullscreen();
var butterfly;
function preload(){
butterfly = loadModel('material/MONARCH.obj');
}
function setup(){
createCanvas(windowWidth,windowHeight, WEBGL);
noStroke();
}
function draw(){
background(30,40, 60);
ambientLight(0, 100, 100);
directionalLight(255,255,0, 0,4000,4000);
translate(mouseX-width/2, mouseY-width/2, 0);
scale(12000);
//box(200);
//rotateX(90);
rotateX(angle);
rotateY(angle);
rotateZ(angle);
model(butterfly);
angle += 0.01;
}
function touchStarted(){
fullscreen(!fs);
return false;
}
function windowResized(){
if (fullscreen()) {
resizeCanvas(displayWidth, displayHeight);
background(200);
//ellipse(200,200,50,50);
} else {
resizeCanvas(windowWidth,windowHeight);
}
}
swarm
var angle = 0;
var sizes = [];
var translatesX = [];
var translatesY = [];
var translatesZ = [];
var boxamount = 200;
function setup(){
createCanvas(windowWidth,windowHeight, WEBGL);
noStroke();
for(var i = 0; i < boxamount; i++){
sizes[i] = random(10,60);
translatesX[i] = randomGaussian(0, 100);
translatesY[i] = randomGaussian(0, 50);
translatesZ[i] = randomGaussian(0, 100);
}
}
function draw(){
background(30,40, 60);
ambientLight(40, 90, 50);
directionalLight(40,100,150, 0,-1,1);
rotateX(angle);
rotateY(angle);
rotateZ(angle);
for(var i = 0; i < boxamount; i++){
push();
translate(translatesX[i], translatesY[i], translatesZ[i])
box(sizes[i],translatesX[i]);
pop();
}
angle += 0.01;
}
FFT 3D Matrix
var song;
var angle = 0;
var xoff = 0.0;
function preload() {
song = loadSound('oregano.mp3');
}
function setup() {
createCanvas(windowWidth, windowHeight, WEBGL);
pixelDensity(1);
setAttributes('antialias', true);
fft = new p5.FFT();
song.rate(1);
stroke(255);
strokeWeight(2);
fill(255,150);
}
function draw() {
background(30, 40, 60);
//text("Press Left Button to start",10,10);
ambientLight(0, 100, 100);
directionalLight(255, 255, 0, -1, 1, -1);
rotateX(1);
rotateZ(angle);
translate(-180, -180, 0);
var spectrum = fft.analyze(256);
for (var y = 0; y < 12; y += 1) {
for (var x = 0; x < 16; x += 1) {
currentHeight = spectrum[(y * 8) + x];
push();
translate(x * 30, y * 30, 0);
scale(1, 1, sqrt(currentHeight) + 1);
//box((x+y)*2);
box(20);
pop();
}
}
xoff = xoff + 0.01;
angle += (noise(xoff)-0.5)/20;
}
function mousePressed() {
if (song.isPlaying()) {
song.stop();
} else {
song.play();
}
}
easyCam

var angle = 0;
var easycam;
var butterfly;
function setup(){
pixelDensity(1);
var canvas = createCanvas(windowWidth, windowHeight, WEBGL);
setAttributes('antialias', true);
console.log(Dw);
console.log(Dw.EasyCam.INFO);
easycam = createEasyCam();
noStroke();
}
function draw(){
background(255);
ambientLight(0, 100, 100);
directionalLight(255,255,0, 0,-1,1);
box(200);
angle += 0.01;
}