redstrate.com/content/blog/drawing-simple-cubes/scene2.js

46 lines
1.3 KiB
JavaScript
Raw Normal View History

2023-07-02 20:19:13 -04:00
const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
const renderer = new THREE.WebGLRenderer();
//renderer.setSize( window.innerWidth, window.innerHeight );
document.getElementById('scene2').appendChild(renderer.domElement);
const material = new THREE.ShaderMaterial({
vertexShader: document.getElementById('wire-vert').textContent,
fragmentShader: document.getElementById('wire-frag').textContent
});
material.wireframe = true;
const geometry = new THREE.BoxGeometry(2, 2, 2);
const cube = new THREE.Mesh(geometry, material);
scene.add(cube);
camera.position.z = 5;
function resizeCanvasToDisplaySize() {
const canvas = renderer.domElement;
const width = canvas.clientWidth;
const height = canvas.clientHeight;
// you must pass false here or three.js sadly fights the browser
renderer.setSize(width, height, false);
camera.aspect = width / height;
camera.updateProjectionMatrix();
// set render target sizes here
}
function animate() {
requestAnimationFrame( animate );
cube.rotation.x += 0.01;
cube.rotation.y += 0.01;
renderer.render(scene, camera);
}
animate();
const resizeObserver = new ResizeObserver(resizeCanvasToDisplaySize);
resizeObserver.observe(renderer.domElement, {box: 'content-box'});