final

by YouTingKuo

HTML

<div id="info">final homework</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r76/three.min.js"></script>
<script src="https://dl.dropboxusercontent.com/u/3587259/Code/Threejs/OrbitControls.js">
</script>
<script  src="https://rawgit.com/banksean/304522/raw/8f481c980fe34e6930d44c61c59d7851f4235a3c/perlin-noise-simplex.js"></script>

<script src="https://www.clicktorelease.com/code/bumpy-metaballs/js/MarchingCubes.js"></script>

<div id="container"></div>

CSS

#info {
  position: absolute;
  top: 0px;
  width: 100%;
  padding: 10px;
  text-align: center;
  color: #ffff00
}
body {
  overflow: hidden;
}

JavaScript

var camera, scene, renderer, container;
var mesh, controls, boat, effect;
var clock = new THREE.Clock();
var start = Date.now();
var resolution, numBlobs, sign = -1;


init();
animate();

function init() { 
  var width = window.innerWidth;
  var height = window.innerHeight;

  renderer = new THREE.WebGLRenderer({
    antialias: true
  });
  renderer.setSize(width, height);
  renderer.setClearColor(0x888888);
  document.body.appendChild(renderer.domElement);
  scene = new THREE.Scene();
  camera = new THREE.PerspectiveCamera(45, width / height, 0.1, 10000);
  camera.position.set(-600, 250, -700); //-600 250 -700
  camera.lookAt(new THREE.Vector3(0, 0, 0));
	
  // spotlight
 		var light = new THREE.PointLight();
    light.position.set(400, 200, 0);
    scene.add(light);
    var light2 = light.clone();
    light2.position.set(-400, 200, 0);
    scene.add(light2);
    var light3 = light.clone();
    light3.position.set(0, 200, 400);
    //scene.add(light3);
    var light4 = light.clone();
    light4.position.set(0, 200, -400);
    //scene.add(light4);
		
  controls = new THREE.OrbitControls(camera, renderer.domElement);

	var loader = new THREE.ObjectLoader();
  loader.load ('https://youtingkuo.github.io/model/tree.json', 
  function ( obj ) {
    obj.scale.set (0.025,0.025,0.025);
  	obj.position.set(-300, 0, 380);
    obj.castShadow = true;
    obj.receiveShadow = true;
    scene.add( obj );
    var obj2 = obj.clone();
    obj2.position.set(300, 0, 380);
    scene.add(obj2);
  });

	var loader2 = new THREE.ObjectLoader();
  loader2.load ('https://youtingkuo.github.io/model/open-fishing-boat.json', 
  function ( obj ) {
  	boat = obj;
    obj.scale.set (20,20,20);
  	obj.position.set(-400, 0.1, -400); // -3.1 ~ 10.1
    obj.castShadow = true;
    obj.receiveShadow = true;
    obj.rotation.y = -Math.PI/2;
    scene.add( obj );
  });

  var meshFunc = function(u0, v0) {
    return new THREE.Vector3(1000 * u0 - 500, 
    5 * Math.sin(20 * (u0 + v0)),
    1000 * v0 -...