(function (global, factory) { if (typeof define === "function" && define.amd) { define(["exports", "three"], factory); } else if (typeof exports !== "undefined") { factory(exports, require("three")); } else { var mod = { exports: {} }; factory(mod.exports, global.three); global.scene = mod.exports; } })(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, THREE) { "use strict"; Object.defineProperty(_exports, "__esModule", { value: true }); _exports.default = void 0; THREE = _interopRequireWildcard(THREE); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } var camera, scene, renderer, group; function init(canvas, width, height, pixelRatio, path) { camera = new THREE.PerspectiveCamera(40, width / height, 1, 1000); camera.position.z = 200; scene = new THREE.Scene(); scene.fog = new THREE.Fog(0x444466, 100, 400); scene.background = new THREE.Color(0x444466); group = new THREE.Group(); scene.add(group); // we don't use ImageLoader since it has a DOM dependency (HTML5 image element) var loader = new THREE.ImageBitmapLoader().setPath(path); loader.setOptions({ imageOrientation: 'flipY' }); loader.load('textures/matcaps/matcap-porcelain-white.jpg', function (imageBitmap) { var texture = new THREE.CanvasTexture(imageBitmap); var geometry = new THREE.IcosahedronGeometry(5, 8); var materials = [new THREE.MeshMatcapMaterial({ color: 0xaa24df, matcap: texture }), new THREE.MeshMatcapMaterial({ color: 0x605d90, matcap: texture }), new THREE.MeshMatcapMaterial({ color: 0xe04a3f, matcap: texture }), new THREE.MeshMatcapMaterial({ color: 0xe30456, matcap: texture })]; for (var i = 0; i < 100; i++) { var material = materials[i % materials.length]; var mesh = new THREE.Mesh(geometry, material); mesh.position.x = random() * 200 - 100; mesh.position.y = random() * 200 - 100; mesh.position.z = random() * 200 - 100; mesh.scale.setScalar(random() + 1); group.add(mesh); } renderer = new THREE.WebGLRenderer({ antialias: true, canvas: canvas }); renderer.setPixelRatio(pixelRatio); renderer.setSize(width, height, false); animate(); }); } function animate() { // group.rotation.x = Date.now() / 4000; group.rotation.y = -Date.now() / 4000; renderer.render(scene, camera); if (self.requestAnimationFrame) { self.requestAnimationFrame(animate); } else {// Firefox } } // PRNG var seed = 1; function random() { var x = Math.sin(seed++) * 10000; return x - Math.floor(x); } var _default = init; _exports.default = _default; });