three.js dev template - module
by srinivasprabhu794
HTML
<script src="https://cdn.jsdelivr.net/npm/three@0.112.1/build/three.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/three@0.112.1/examples/js/controls/OrbitControls.js"></script>
<div id="uppermain">
</div>
<div id="lowermain">
</div>
CSS
body {
background-color: #000;
margin: 0px;
overflow: hidden;
}
body{
margin: 0;
}
#uppermain{
width: 100%;
height: 50vh;
background-image: linear-gradient(to top, #4f3c3b 0%, #596164 100%);
border-bottom: solid 2px black;
}
#lowermain{
display: flex;
flex-direction: column;
width:100%;
height: 50vh;
background-image: linear-gradient(to bottom ,white,lightgray,#565656);
}
JavaScript
var mesh, renderer, scene, camera, controls;
init();
animate();
function init() {
let upperDivElement = document.getElementById("uppermain");
// renderer
renderer = new THREE.WebGLRenderer({ alpha: true });
renderer.setSize( upperDivElement.clientWidth, upperDivElement.clientHeight );
renderer.setClearColor( 0x000000, 0 );
renderer.setPixelRatio( window.devicePixelRatio );
upperDivElement.appendChild(this.renderer.domElement);
// scene
scene = new THREE.Scene();
// camera
camera = new THREE.PerspectiveCamera( 40, upperDivElement.clientWidth / upperDivElement.clientHeight, 1, 10000 );
camera.position.set( 0, 0, 30 );
// controls
controls = new THREE.OrbitControls( camera, upperDivElement );
controls.touches.ONE = THREE.TOUCH.PAN;
controls.touches.TWO = THREE.TOUCH.DOLLY_ROTATE;
// ambient
scene.add( new THREE.AmbientLight( 0x222222 ) );
// light
var light = new THREE.DirectionalLight( 0xffffff, 1 );
light.position.set( 20,20, 0 );
scene.add( light );
// axes
scene.add( new THREE.AxesHelper( 20 ) );
// geometry
var geometry = new THREE.SphereGeometry( 5, 12, 8 );
// material
var material = new THREE.MeshPhongMaterial( {
color: 0x00ffff,
flatShading: true,
transparent: true,
opacity: 0.7,
} );
// mesh
mesh = new THREE.Mesh( geometry, material );
scene.add( mesh );
}
function animate() {
requestAnimationFrame( animate );
controls.update();
renderer.render( scene, camera );
}