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 -...