three.js dev template

by Kearnan Kelly

HTML

<script src="https://cdn.jsdelivr.net/npm/[email protected]/build/three.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/examples/js/controls/OrbitControls.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 = 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 );
    
    
    
    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 jpgUrls = genCubeUrls('https://rawgit.com/mrdoob/three.js/dev/examples/textures/cube/skybox/', '.jpg');
		var loader = new THREE.CubeTextureLoader();
    loader.load(jpgUrls,function(tex){
    //scene.background = tex;
    var vertexShader = [
    "varying vec3 vWorldPosition;",
		"#include <common>",
		"void main() {",

		"vWorldPosition = transformDirection( position, modelMatrix );",

		"#include <begin_vertex>",
		//"#include <project_vertex>",
    "vec4 mvPosition = vec4( transformed, 1.0 );",

		"gl_Position =projectionMatrix * mvPosition;",

		"gl_Position.z = gl_Position.w;", // set z to camera.far

		"}"
    ].join("\n");
    var...