Gold Material

by Kirubel Girma

HTML

<script src="//cdn.rawgit.com/mrdoob/three.js/master/build/three.min.js"></script>
<script src="https://threejs.org/examples/js/controls/OrbitControls.js"></script>

CSS

body {
	  margin: 0;
}

JavaScript

var camera, scene, renderer;

init();
animate();

function init() {

  camera = new THREE.PerspectiveCamera(70, window.innerWidth / window.innerHeight, 1, 10000);
  camera.position.set(0, 0, 1000);

  scene = new THREE.Scene();

  var light = new THREE.AmbientLight(0xb5b5b5); // soft white light
  scene.add(light);

	var r = "http://xeolabs.com/images/scenejs/reflection/london/";
  var urls3 = [
    r + "pos-x.png",
    r + "neg-x.png",
    r + "pos-y.png",
    r + "neg-y.png",
    r + "pos-z.png",
    r + "neg-z.png"
  ];

  var r = "https://threejs.org/examples/textures/cube/Bridge2/";
  var urls = [
    r + "posx.jpg",
    r + "negx.jpg",
    r + "posy.jpg",
    r + "negy.jpg",
    r + "posz.jpg",
    r + "negz.jpg"
  ];

  var r = "https://i.ibb.co/";
  var urls2 = [
    r + "Y01xrZd/nz.png",
    r + "Y01xrZd/nz.png",
    r + "19g0VLd/nx.png",
    r + "Y01xrZd/nz.png",
    r + "Y01xrZd/nz.png",
    r + "Y01xrZd/nz.png"

  ];

  var textureCube = new THREE.CubeTextureLoader().load(urls3);
  textureCube.format = THREE.RGBFormat;
  var goldColor = new THREE.Color("rgb(243, 201, 104)");

  var sphere1 = new THREE.SphereBufferGeometry(400.0, 60, 24, 100, 9);
  var torus1 = new THREE.TorusGeometry(400.0, 60, 24, 100, 100);
  var material = new THREE.MeshBasicMaterial({
    specular: 0xffffff,
    emissive: 0xffffff,
    color: goldColor,
    shininess: 100,
    metalness: 1,
    envMap: textureCube,
  });
  
  var mesh = new THREE.Mesh(torus1, material);
  scene.add(mesh);

  //

  renderer = new THREE.WebGLRenderer();
  renderer.setClearColor(0xffffff, 1);
  renderer.setPixelRatio(window.devicePixelRatio);
  renderer.setSize(window.innerWidth, window.innerHeight);
  document.body.appendChild(renderer.domElement);

  //

  var controls = new THREE.OrbitControls(camera, renderer.domElement);
  controls.minDistance = 500;
  controls.maxDistance = 2500;

  window.addEventListener('resize', onWindowResize, false);
}

function onWindowResize() {
  camera.aspect =...