JSFiddle - React, Tailwind, and code Playground
HTML
<script src="http://threejs.org/build/three.min.js"></script>
JavaScript
var renderer = new THREE.WebGLRenderer();
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
var dirLight = new THREE.DirectionalLight( 0xffffff, 1 );
dirLight.position.set( -1, 1.75, 1 );
dirLight.position.multiplyScalar( 50 );
scene.add( dirLight );
geometry = new THREE.SphereGeometry( 10, 32, 32 );
function color(v) {
var c = new THREE.Color();
c.r = (10 + v.y)/20;
c.g = (10 + v.y)/10 + Math.sin(v.x/10 * Math.PI) - 0.3;
c.b = 1 - (10 + v.y)/20;
return c;
}
for(var i = 0; i < geometry.faces.length; ++i) {
var face = geometry.faces[i];
face.vertexColors[0] = color(geometry.vertices[face.a]);
face.vertexColors[1] = color(geometry.vertices[face.b]);
face.vertexColors[2] = color(geometry.vertices[face.c]);
}
var object = new THREE.Mesh( geometry, new THREE.MeshPhongMaterial({vertexColors: THREE.VertexColors}) );
object.position.z = -50;
scene.add(object);
function render() {
requestAnimationFrame(render);
object.rotation.x += 0.01;
object.rotation.y += 0.01;
renderer.render(scene, camera);
}
render();