1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <!-- Licensed under a BSD license. See license.html for license -->
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
- <title>Three.js - Shadertoy Prep</title>
- <style>
- html, body {
- height: 100%;
- margin: 0;
- }
- #c {
- width: 100%;
- height: 100%;
- display: block;
- }
- </style>
- </head>
- <body>
- <canvas id="c"></canvas>
- </body>
- <script type="module">
- import * as THREE from '../../build/three.module.js';
- function main() {
- const canvas = document.querySelector('#c');
- const renderer = new THREE.WebGLRenderer({canvas});
- renderer.autoClearColor = false;
- const camera = new THREE.OrthographicCamera(
- -1, // left
- 1, // right
- 1, // top
- -1, // bottom
- -1, // near,
- 1, // far
- );
- const scene = new THREE.Scene();
- const plane = new THREE.PlaneGeometry(2, 2);
- const material = new THREE.MeshBasicMaterial({
- color: 'red',
- });
- scene.add(new THREE.Mesh(plane, material));
- function resizeRendererToDisplaySize(renderer) {
- const canvas = renderer.domElement;
- const width = canvas.clientWidth;
- const height = canvas.clientHeight;
- const needResize = canvas.width !== width || canvas.height !== height;
- if (needResize) {
- renderer.setSize(width, height, false);
- }
- return needResize;
- }
- function render() {
- resizeRendererToDisplaySize(renderer);
- renderer.render(scene, camera);
- requestAnimationFrame(render);
- }
- requestAnimationFrame(render);
- }
- main();
- </script>
- </html>
|