venus

by felipefsalazar

HTML

<script src="https://threejs.org/build/three.min.js"></script>
<script src="https://threejs.org/examples/js/loaders/OBJLoader.js"></script>
<script src="https://threejs.org/examples/js/controls/OrbitControls.js"></script>

CSS

body {
      overflow: hidden;
      margin: 0;
    }

JavaScript

//SETUP DA TELA
var points, geometry;
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
camera.position.set(0, 5, 10);
var renderer = new THREE.WebGLRenderer();
renderer.setClearColor(0x404040);
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);

//CONTROLE com o MOUSE
var controls = new THREE.OrbitControls(camera, renderer.domElement);

//LUZ
var light = new THREE.DirectionalLight(0xffffff, 0.5);
light.position.setScalar(100);
scene.add(light);
scene.add(new THREE.AmbientLight(0xffffff, 0.5));

//GRID CINZA NA TELA
scene.add(new THREE.GridHelper(100, 100));

//LOAD DO OBJETO
var objLoader = new THREE.OBJLoader();

objLoader.load('https://raw.githubusercontent.com/felipefsalazar/venus/master/venuspeq.obj',


  function(object) {

    child = object.children[0];
    geometry = new THREE.Geometry().fromBufferGeometry(child.geometry);
    geometry.computeFaceNormals();
    geometry.mergeVertices(geometry);
    geometry.computeVertexNormals();
    geometry = new THREE.BufferGeometry().fromGeometry(geometry);

    scene.add(object);

    //MALHA DA ESTATUA
    var plane = new THREE.Mesh(geometry, new THREE.MeshBasicMaterial({
      wireframe: true,
      color: "blue"
    }));
    scene.add(plane);

    //PONTOS NA ESTÁTUA PARA MEXER
    points = new THREE.Points(geometry, new THREE.PointsMaterial({
      size: 0.15,
      color: "yellow"
    }));
    scene.add(points);


    //MALHA DA ESTATUA (wireframe)
    //venuspeq = new THREE.Mesh(geometry, mesh);

    //ROTAÇÃO DO OBJETO
    //object.rotation.x = -Math.PI * 0.5;

    //BOX DE AJUDA DO OBJETO
    //var box = new THREE.Box3().setFromObject(object);
    //var box3Helper = new THREE.Box3Helper(box);
    //scene.add(box3Helper);



  });


var raycaster = new THREE.Raycaster();
raycaster.params.Points.threshold = 0.25;
var mouse = new THREE.Vector2();
var intersects = null;
var plane =...