feat: launch in webxr
This commit is contained in:
parent
61a461bff8
commit
e1481ce730
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
cert.pem
|
||||||
|
key.pem
|
||||||
1
README.md
Normal file
1
README.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
|
||||||
13
main.js
13
main.js
@ -7,13 +7,17 @@
|
|||||||
import * as THREE from 'three';
|
import * as THREE from 'three';
|
||||||
import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
|
import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
|
||||||
import * as BufferGeometryUtils from 'three/addons/utils/BufferGeometryUtils.js';
|
import * as BufferGeometryUtils from 'three/addons/utils/BufferGeometryUtils.js';
|
||||||
|
import { VRButton } from 'three/addons/webxr/VRButton.js';
|
||||||
|
|
||||||
// Initialise scene
|
// Initialise scene
|
||||||
const scene = new THREE.Scene();
|
const scene = new THREE.Scene();
|
||||||
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
|
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
|
||||||
|
|
||||||
const renderer = new THREE.WebGLRenderer();
|
const renderer = new THREE.WebGLRenderer();
|
||||||
renderer.setSize(window.innerWidth, window.innerHeight);
|
renderer.setSize(window.innerWidth, window.innerHeight);
|
||||||
|
renderer.xr.enabled = true;
|
||||||
document.body.appendChild(renderer.domElement);
|
document.body.appendChild(renderer.domElement);
|
||||||
|
document.body.appendChild(VRButton.createButton(renderer));
|
||||||
|
|
||||||
// Set up lights
|
// Set up lights
|
||||||
const ambientLight = new THREE.AmbientLight(0x404040);
|
const ambientLight = new THREE.AmbientLight(0x404040);
|
||||||
@ -245,12 +249,7 @@ window.addEventListener('resize', () => {
|
|||||||
renderer.setSize(window.innerWidth, window.innerHeight);
|
renderer.setSize(window.innerWidth, window.innerHeight);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Animation loop
|
renderer.setAnimationLoop(() => {
|
||||||
function animate() {
|
|
||||||
requestAnimationFrame(animate);
|
|
||||||
|
|
||||||
controls.update();
|
controls.update();
|
||||||
renderer.render(scene, camera);
|
renderer.render(scene, camera);
|
||||||
}
|
});
|
||||||
animate();
|
|
||||||
|
|
||||||
|
|||||||
14
server.py
Normal file
14
server.py
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
from http.server import HTTPServer, SimpleHTTPRequestHandler
|
||||||
|
import ssl
|
||||||
|
|
||||||
|
server_address = ('0.0.0.0', 4443)
|
||||||
|
httpd = HTTPServer(server_address, SimpleHTTPRequestHandler)
|
||||||
|
|
||||||
|
context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
|
||||||
|
context.load_cert_chain(certfile='cert.pem', keyfile='key.pem')
|
||||||
|
|
||||||
|
httpd.socket = context.wrap_socket(httpd.socket, server_side=True)
|
||||||
|
|
||||||
|
print('Serving HTTPS on 0.0.0.0 port 4443...')
|
||||||
|
httpd.serve_forever()
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user