JSFiddle - React, Tailwind, and code Playground
by Paul West
HTML
<script src="//cdn.rawgit.com/mrdoob/three.js/master/build/three.min.js"></script>
CSS
body {
overflow: hidden;
margin: 0;
}
JavaScript
let camera, scene, renderer, material;
let t = 0, colorHSL = {};
const geometry = new THREE.PlaneGeometry();
var init = function(){
camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 0.01, 10 );
camera.position.z = 1;
scene = new THREE.Scene();
material = new THREE.MeshBasicMaterial( { color: 0xffffff, vertexColors: THREE.FaceColors } );
new THREE.Color(0x00ff00).getHSL(colorHSL); // save current color value as HSL
console.log(colorHSL);
const mesh = new THREE.Mesh( geometry, material );
scene.add( mesh );
renderer = new THREE.WebGLRenderer( { antialias: true } );
renderer.setPixelRatio( window.devicePixelRatio );
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );
}
var animate = function() {
requestAnimationFrame( animate );
t += 0.01;
const l = Math.abs( Math.cos( t ) ); // only animate lightness between [0,1]
scene.children[0].geometry.faces[0].color.setHSL( colorHSL.h, colorHSL.s, l );
geometry.colorsNeedUpdate = true
//material.color.setHSL( colorHSL.h, colorHSL.s, l );
renderer.render( scene, camera );
}
init();
animate();