diff options
| author | Andrew Lee <andrew@alee14.me> | 2025-09-18 01:41:42 -0400 |
|---|---|---|
| committer | Andrew Lee <andrew@alee14.me> | 2025-09-18 01:44:43 -0400 |
| commit | bef7bfad876fb37f6e337a699174c499c43abf33 (patch) | |
| tree | 95c33a62791b8acd7e427cc504492368979c17b0 /src/components/3DModels.jsx | |
| parent | 7889ea6ab03e922af1cb954d49913bb050cbec13 (diff) | |
| download | personal-website-bef7bfad876fb37f6e337a699174c499c43abf33.tar.gz personal-website-bef7bfad876fb37f6e337a699174c499c43abf33.tar.bz2 personal-website-bef7bfad876fb37f6e337a699174c499c43abf33.zip | |
Revamped project page; Switch to React; Updated pkgs
Diffstat (limited to 'src/components/3DModels.jsx')
| -rw-r--r-- | src/components/3DModels.jsx | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/components/3DModels.jsx b/src/components/3DModels.jsx new file mode 100644 index 0000000..4d8507e --- /dev/null +++ b/src/components/3DModels.jsx @@ -0,0 +1,25 @@ +import { Canvas, useLoader } from "@react-three/fiber"; +import { OrbitControls } from "@react-three/drei"; +import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader"; + +const Model = ({ model, scale }) => { + const gltf = useLoader(GLTFLoader, model); + return ( + <> + <primitive object={gltf.scene} scale={scale} /> + </> + ); +}; + +export default function ThreeJSModels({ modelName, scale = 2 }) { + return ( + <div> + <Canvas style={{ width: '70%', height: '70%', borderRadius: '10px', paddingBottom: '.5em' }}> + <Model model={modelName} scale={scale} /> + <ambientLight intensity={1.5} /> + <directionalLight color="white" position={[0, 2, 0]} /> + <OrbitControls /> + </Canvas> + </div> + ) +} |
