Threejs - UV test1
by black strings
HTML
<script src="https://cdn.jsdelivr.net/npm/[email protected]/build/three.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/examples/js/controls/OrbitControls.js"></script>
CSS
/* fix mouse click offset errors when doing drags */
body {
margin: 0;
}
JavaScript
var scene, renderer, camera;
var controls;
init();
lightSetup();
animate();
function init() {
renderer = new THREE.WebGLRenderer({
antialias: true
});
var width = window.innerWidth;
var height = window.innerHeight;
renderer.setSize(width, height);
document.body.appendChild(renderer.domElement);
scene = new THREE.Scene();
scene.rotation.x = -Math.PI / 2;
var gridXZ = new THREE.GridHelper(1000, 100);
scene.add(gridXZ);
gridXZ.rotation.x = -Math.PI / 2;
var axes = new THREE.AxesHelper(1000);
scene.add(axes);
camera = new THREE.PerspectiveCamera(45, width / height, 1, 10000);
camera.position.y = 50;
camera.position.z = 50;
camera.lookAt(new THREE.Vector3(0, 0, 0));
controls = new THREE.OrbitControls(camera, renderer.domElement);
const loader = new THREE.TextureLoader();
const texture = loader.load('https://threejs.org/examples/textures/uv_grid_opengl.jpg', (texture) => {
const geometry = new THREE.BoxGeometry(10, 10, 10);
const material = new THREE.MeshBasicMaterial({
map: texture
});
const mesh = new THREE.Mesh(geometry, material);
accessFaces(geometry);
accessUV(geometry);
scene.add(mesh);
});
}
function getAngleBetweenTwoVectorsInRad(p1, p2) {
let result;
if (p1 && p2) {
const angle1 = Math.atan2(p1.y, p1.x);
const angle2 = Math.atan2(p2.y, p2.x);
result = (angle2 - angle1);
} else {
throw new Error(`Cannot get angle: one (or both) vector(s) is null.`);
}
return result;
}
function animate() {
controls.update();
requestAnimationFrame(animate);
renderer.render(scene, camera);
}
function lightSetup() {
if (scene) {
var dirLight = new THREE.DirectionalLight();
dirLight.position.set(3, 2, 1);
dirLight.position.multiplyScalar(10);
scene.add(dirLight);
}
}
function createSphereInstancedMesh(color, points) {
var geometry = new THREE.SphereGeometry(1, 10, 10);
var material = new THREE.MeshBasicMaterial({
color:...