three.js dev template
HTML
<script src="https://rawgit.com/mrdoob/three.js/dev/build/three.js"></script>
<script src="https://rawgit.com/mrdoob/three.js/dev/examples/js/controls/OrbitControls.js"></script>
<script src="https://rawgit.com/mrdoob/three.js/dev/examples/js/loaders/HDRCubeTextureLoader.js"></script>
<script src="https://rawgit.com/mrdoob/three.js/dev/examples/js/pmrem/PMREMGenerator.js"></script>
<script src="https://rawgit.com/mrdoob/three.js/dev/examples/js/pmrem/PMREMCubeUVPacker.js"></script>
<script src="https://rawgit.com/mrdoob/three.js/dev/examples/js/loaders/RGBELoader.js"></script>
CSS
body {
background-color: #000;
margin: 0px;
overflow: hidden;
}
JavaScript
// Simple three.js example
var meshStandard, meshCustom, renderer, scene, camera, controls;
init();
animate();
function init() {
// renderer
renderer = new THREE.WebGLRenderer();
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );
// scene
scene = new THREE.Scene();
// camera
camera = new THREE.PerspectiveCamera( 40, window.innerWidth / window.innerHeight, 1, 10000 );
camera.position.set(0, 0, 40);
// controls
controls = new THREE.OrbitControls( camera );
// light
var light = new THREE.DirectionalLight( 0xffffff, 1 );
light.position.set( 20,20, 0 );
scene.add( light )
// geometry
var geometry = new THREE.SphereGeometry(5, 64, 16);
// material
var material = new THREE.MeshStandardMaterial( {
color: 0x00ffff,
roughness: 0,
metalness: 1
} );
// mesh
meshStandard = new THREE.Mesh( geometry, material );
meshStandard.position.x = -10;
scene.add( meshStandard );
let standard = THREE.ShaderLib['standard'];
let customMaterial = new THREE.ShaderMaterial({
lights: true,
fragmentShader: standard.fragmentShader,
vertexShader: standard.vertexShader,
uniforms: THREE.UniformsUtils.clone(standard.uniforms),
});
customMaterial.uniforms.diffuse.value = new THREE.Color(0x00ffff);
customMaterial.uniforms.roughness.value = 0;
customMaterial.uniforms.metalness.value = 1;
meshCustom = new THREE.Mesh( geometry, customMaterial );
meshCustom.position.x = 10;
scene.add( meshCustom );
var genCubeUrls = function (prefix, postfix) {
return [
prefix + 'px' + postfix, prefix + 'nx' + postfix,
prefix + 'py' + postfix, prefix + 'ny' + postfix,
prefix + 'pz' + postfix, prefix + 'nz' + postfix
];
};
var hdrUrls =...