threepipe
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

index.html 1.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Threepipe React/JSX Sample</title>
  6. <style>
  7. html, body{
  8. width: 100%;
  9. height: 100%;
  10. margin: 0;
  11. overflow: hidden;
  12. }
  13. </style>
  14. <script type="module" src="../examples-utils/simple-code-preview.mjs"></script>
  15. <!-- Include Babel for JSX transformation -->
  16. <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
  17. </head>
  18. <body>
  19. <div id="root"></div>
  20. <script id="example-script" type="text/babel" data-scripts="./index.html" data-type="module">
  21. // import {ThreeViewer} from 'https://threepipe.org/dist/index.mjs'
  22. import {ThreeViewer} from './../../dist/index.mjs'
  23. import React from 'https://esm.sh/react'
  24. import ReactDOM from 'https://esm.sh/react-dom'
  25. function ThreeViewerComponent({ src, env }) {
  26. const canvasRef = React.useRef(null);
  27. React.useEffect(() => {
  28. const viewer = new ThreeViewer({canvas: canvasRef.current})
  29. // Load an environment map
  30. const envPromise = viewer.setEnvironmentMap(env)
  31. const modelPromise = viewer.load(src, {
  32. autoCenter: true,
  33. autoScale: true,
  34. })
  35. Promise.all([envPromise, modelPromise]).then(([env, model])=>{
  36. console.log('Loaded', model, env, viewer)
  37. })
  38. return () => {
  39. viewer.dispose()
  40. }
  41. }, []);
  42. return (
  43. <canvas id="three-canvas" style={{ width: 800, height: 600 }} ref={canvasRef} />
  44. )
  45. }
  46. ReactDOM.render(
  47. <ThreeViewerComponent
  48. src={'https://threejs.org/examples/models/gltf/DamagedHelmet/glTF/DamagedHelmet.gltf'}
  49. env={'https://threejs.org/examples/textures/equirectangular/venice_sunset_1k.hdr'}
  50. />,
  51. document.getElementById('root')
  52. )
  53. </script>
  54. </body>
  55. </html>