12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- <!-- 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>
- body {
- margin: 0;
- }
- #c {
- width: 100vw;
- height: 100vh;
- display: block;
- }
- </style>
- </head>
- <body>
- <canvas id="c"></canvas>
- </body>
- <script src="resources/threejs/r102/three.min.js"></script>
- <script>
- 'use strict';
- /* global THREE */
- function main() {
- const canvas = document.querySelector('#c');
- const renderer = new THREE.WebGLRenderer({canvas: 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.PlaneBufferGeometry(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>
|