Box Tex

box-tex.js

Show Example Source
ortho([1, 0.5, 1], 0, {controls: true});

let sc;

sc = stage().mesh(geom.box(1,1,1), osc().phong()).lights();

sc = stage().mesh(
    geom.box(0.5, 0.5, 0.5),
    osc(10, 0.09, 300)
        .color(0.9, 0.7, 0.8)
        .diff(
            osc(45, 0.03, 100)
                .color(0.9, 0.9, 0.9)
                .rotateDeg(0.18)
                .pixelate(12)
                .kaleid()
        )
        .scrollX(10)
        .colorama()
        //     .luma()
        .repeatX(4)
        .repeatY(4)
        .modulate(
            osc(1, -0.9, 300)
        )
        .scale(10)
        .phong()
).lights();

const map = solid(1).add(stage().points([100,100], mat.dots(cnoise(random.num()), wnoise(random.num()).map(0,1,5,20), cnoise().saturate()))).tex(o1);
// const map = solid(1, 1, 1).sub(dots([100,100], cnoise(random.num()), wnoise(random.num()).map(0,1,4,20), cnoise()).saturate()).tex(o1);
// const map = wnoise().add(dots([1024], cnoise(random.num()), wnoise(random.num()).map(0,1,0,20), cnoise()).saturate(5)).tex(o1);
// const map = snoise(20, [rand()*10000]).tex(o1);
// const map = wnoise().tex(o1);
// const map = cnoise().tex(o1);

sc = stage().mesh(
    geom.box(1, 1, 1),
    src(map).phong(),
//   solid(1).phong({map: map})
).lights();

// todo: wrong multiply order
solid(1,1,0).mult(noise()).layer(sc).render();

update = () => {
    const box = sc.at(0);
    // box.rotation.x += 0.001;
    box.rotation.y += 0.001;
}