JSFiddle - React, Tailwind, and code Playground

by realhunts

HTML

<!--script src="https://rawgit.com/mrdoob/three.js/master/build/three.js"></script-->
<script src="https://rawgit.com/mrdoob/three.js/dev/build/three.js"></script>
<script src="https://rawgit.com/mrdoob/three.js/master/examples/js/loaders/DDSLoader.js"></script>
<script src="https://www.titansoftime.com/webgl/OrbitalControlsOriginal.js"></script>
<script src="https://www.titansoftime.com/webgl/Stats.min.js"></script>

CSS

html, body{
  margin:0;
  padding:0;
}

#info{
 position:absolute;
}

#info div{
  
  float:right;
  width:100px;
  height:40px;
  line-height:40px;
  background:#888;
  opacity:0.8;
  border-radius:8px;
  text-align:center;
  margin-right:20px;
  padding:3px;  
  
}

#info div a{
  
  color:#fff;
  text-decoration:none;
  display:block;
  height:100%;
  width:100%;
  
}

JavaScript

var scene, camera, renderer, ambient, directional, controls, stats;
var meshes=[], geoCache={}, matCache={}, loadingQueue={};
var clock, jsLoader, ddsLoader, imageLoader;
var meshCount = 200;
var zoneSize = 1000;

init();
animate();

function init() {
    
    scene = new THREE.Scene();
    
    camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 10000 );
    camera.position.set(500, 50, 0);
    //camera.lookAt(scene.position);    
    //camera.lookAt(new THREE.Vector3(200,50,0));
    
    ambient = new THREE.AmbientLight(0xffffff);    
    scene.add(ambient);
    
    scene.fog = new THREE.FogExp2(0x333333,0.002);
    
    stats = new Stats();
		stats.showPanel( 1 );
		document.body.appendChild( stats.dom );    
    
    directional = new THREE.DirectionalLight(0xffffff,1);
    directional.position.set(1,1,0);
    scene.add(directional);
     
    clock = new THREE.Clock();
    
    jsLoader = new THREE.JSONLoader();    
    ddsLoader = new THREE.DDSLoader();
    imageLoader = new THREE.TextureLoader();
    
    renderer = new THREE.WebGLRenderer({antialias:true,precision:'mediump'});
    renderer.setSize( window.innerWidth, window.innerHeight );
    renderer.setClearColor( 0x87ceeb, 1 );
    
    controls = new THREE.OrbitControls( camera, renderer.domElement );   
    controls.target.set(0,50,0);
    
    document.body.appendChild( renderer.domElement );
    
    loadFloor();

  //  loadGeometry(53);
    
}

function loadMaterial(id){
    
	//var map = ddsLoader.load('https://www.titansoftime.com/textures/'+id+'_1024.dds');
  var map = tex = imageLoader.load('https://www.titansoftime.com/textures/'+id+'_1024.png');
    
	return new THREE.MeshPhongMaterial({map:map,side:THREE.DoubleSide,alphaTest:0.5,fog:true}); 

}

function loadGeometry(id){	

		jsLoader.load('https://www.titansoftime.com/models/'+id+'.js',function(geo){
  
			var bgeo = new THREE.BufferGeometry().fromGeometry(geo);

			geo.dispose();
        
     ...