JSFiddle - React, Tailwind, and code Playground
by realhunts
HTML
<script src="http://threejs.org/build/three.min.js"></script>
<script src="http://threejs.org/examples/js/controls/OrbitControls.js"></script>
<script src="https://rawcdn.githack.com/Fyrestar/THREE.BufferGeometry-toIndexed/master/BufferGeometryToIndexed.js"></script>
JavaScript
// a basic three.js scene
var container, renderer, scene, camera, controls;
init();
animate();
function init() {
// renderer
renderer = new THREE.WebGLRenderer({
antialias: false
});
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.setClearColor(0xccccff);
container = document.createElement('div');
document.body.appendChild(container);
container.appendChild(renderer.domElement);
// scene
scene = new THREE.Scene();
// camera
camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 10000);
camera.position.set(0, 200, 800);
camera.lookAt(scene.position);
// (camera) controls
// mouse controls: left button to rotate,
// mouse wheel to zoom, right button to pan
controls = new THREE.OrbitControls(camera, renderer.domElement);
var ambient = new THREE.AmbientLight("#6122A1");
scene.add(ambient);
// light
var light = new THREE.PointLight(0xffffff);
light.position.set(100, 250, 250);
scene.add(light);
// mesh
var sphereGeometry = new THREE.BoxBufferGeometry(100, 100, 100).toNonIndexed();
var sphereMaterial = new THREE.MeshLambertMaterial({
color: 0xff0000
});
var sphere = new THREE.Mesh(sphereGeometry, sphereMaterial);
sphere.position.y = 300;
scene.add(sphere);
var sp = new THREE.BoxBufferGeometry(100, 100, 100)
var geo = new THREE.BufferGeometry()
geo.merge(sp)
//console.log(sp)
var pos = sphere.geometry.attributes.position.array
//create modifiable box
const geometry = new THREE.BufferGeometry();
const MAX_POINTS = 500;
const vertices = new Float32Array(MAX_POINTS * 3);
var newPos = [-50, -50, -50, 25, 50, -50, 25, -50, -50]
//[-50, -50, 50, 25, -50, 50]
var ind = 0
for(var i = 0; i<newPos.length; i++){
vertices[i] = newPos[i];
}
...