JSFiddle - React, Tailwind, and code Playground
by realhunts
HTML
<script src="http://threejs.org/build/three.min.js"></script>
<script src="http://threejs.org/examples/js/controls/OrbitControls.js"></script>
JavaScript
// a basic three.js scene
var container, renderer, scene, camera, controls;
init();
animate();
function init() {
// renderer
renderer = new THREE.WebGLRenderer({
antialias: true
});
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.setClearColor(0xccccff);
container = document.createElement('div');
document.body.appendChild(container);
container.appendChild(renderer.domElement);
// scene
scene = new THREE.Scene();
// camera
camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 10000);
camera.position.set(0, 200, 800);
camera.lookAt(scene.position);
// (camera) controls
// mouse controls: left button to rotate,
// mouse wheel to zoom, right button to pan
controls = new THREE.OrbitControls(camera, renderer.domElement);
// light
var light = new THREE.PointLight(0xffffff);
light.position.set(100, 250, 250);
scene.add(light);
var lt = new THREE.AmbientLight( 0x404040 ); // soft white light
scene.add( lt );
// mesh
var sphereGeometry = new THREE.CylinderGeometry( 105, 105, 40, 40);
var sphere = new THREE.Mesh(sphereGeometry);
sphere.position.y = 100;
scene.add(sphere);
sphere.scale.set(4, 1, 4)
for ( var i = 0; i < sphereGeometry.faces.length; i ++ ) {
var face = sphereGeometry.faces[ i ];
face.color.setHex( Math.random() * 0xffffff );
}
var sphereMaterial = new THREE.MeshBasicMaterial({
color: 0xff0000,
vertexColors: THREE.FaceColors
});
sphere.material = sphereMaterial
//.sphere.rotation.x = Math.PI/23
sphere.position.z = -1500
sphere.parent = camera
setInterval(function(){
sphere.rotation.y = camera.rotation.y
}, 1000/60)
renderer.sortObject = true
camera.eulerOrder = "YXZ";
sphere.eulerOrder = "YXZ";
sphere.renderOrder = 9999
sphere.material.depthTest = false
sphere.position.y =...