threepipe
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

1 год назад
1 год назад
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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/global-loading.mjs"></script>
  15. <script type="module" src="../examples-utils/simple-code-preview.mjs"></script>
  16. <!-- Include Babel for JSX transformation -->
  17. <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
  18. </head>
  19. <body>
  20. <div id="root"></div>
  21. <script id="example-script" type="text/babel" data-scripts="./index.html" data-type="module">
  22. // import {ThreeViewer, LoadingScreenPlugin} from 'https://unpkg.com/threepipe@latest/dist/index.mjs'
  23. import {ThreeViewer, LoadingScreenPlugin, _testFinish, _testStart} from './../../dist/index.mjs'
  24. import React from 'https://esm.sh/react@18'
  25. import ReactDOM from 'https://esm.sh/react-dom@18'
  26. function ThreeViewerComponent({ src, env }) {
  27. const canvasRef = React.useRef(null);
  28. React.useEffect(() => {
  29. const viewer = new ThreeViewer({canvas: canvasRef.current,
  30. plugins: [LoadingScreenPlugin],
  31. })
  32. // Load an environment map
  33. const envPromise = viewer.setEnvironmentMap(env)
  34. const modelPromise = viewer.load(src, {
  35. autoCenter: true,
  36. autoScale: true,
  37. })
  38. Promise.all([envPromise, modelPromise]).then(([env, model])=>{
  39. console.log('Loaded', model, env, viewer)
  40. _testFinish()
  41. })
  42. return () => {
  43. viewer.dispose()
  44. }
  45. }, []);
  46. return (
  47. <canvas id="three-canvas" style={{ width: 800, height: 600 }} ref={canvasRef} />
  48. )
  49. }
  50. _testStart()
  51. ReactDOM.render(
  52. <ThreeViewerComponent
  53. src={'https://threejs.org/examples/models/gltf/DamagedHelmet/glTF/DamagedHelmet.gltf'}
  54. env={'https://threejs.org/examples/textures/equirectangular/venice_sunset_1k.hdr'}
  55. />,
  56. document.getElementById('root')
  57. )
  58. </script>
  59. </body>
  60. </html>