설치

npm install three

npm install @react-three/fiber

npm install @react-three/drei

Renderer, Scene, Camera 기본 역할

Scene에 3D object를 놓고 Camera로 비춘 후 Renderer를 통해 html에 보여준다.

Renderer - Scene과 Camera의 객체 데이터를 넘겨받아서 화면 안에 이미지로 렌더링을 하는 역할.

Scene - 특정한 장면 안에 Geometry와 Material로 이루어진 Mesh, 3D object, 빛, 안개, 배경색 등의 요소를 포함하고 있는 최상위 노드.

Camera - Scene에 담긴 3D 공간에 대한 정보 데이터를 카메라로 특정 위치를 비춰서 담긴 부분만 Renderer에 넘긴다.


react-three

npm install @react-three/fiber

https://docs.pmnd.rs/react-three-fiber/getting-started/introduction

npm install @react-three/drei

https://github.com/pmndrs/drei

npm install @react-three/postprocessing

https://docs.pmnd.rs/react-postprocessing/effect-composer

기본적으로 fiber, 도움을 주는 drei와 postprocssing 가 필요하다

타입스크립트에서 사용하려면 npm install --save-dev @types/three 까지 해줘야하나보다


간단한 예시


컴포넌트로서의 기본적인 구조.

import { Canvas } from "@react-three/fiber";
import { OrbitControls, PerspectiveCamera } from "@react-three/drei";

function CarShow() {
  return (
    <>
      <OrbitControls target={[0, 1, 0]} maxPolarAngle={1} />

      <PerspectiveCamera makeDefault fov={50} position={[3, 2, 5]} />

      <mesh>
        <boxGeometry args={[1, 1, 1]} />
        <meshBasicMaterial color={"red"} />
      </mesh>
    </>
  );
}

function Etc() {
  return (
    <Canvas>
      <CarShow />
    </Canvas>
  );
}

기본적으로 Canvas안에 담는다.

OrbitControls - 궤도 컨트롤 PerspectiveCamera - 시점 카메라

OrbitControls 부터 보자면 target 안의 3개의 요소는 말 그대로 궤도를 컨트롤할 때의 축을 의미하는 것 같은데..

다른 강의를 더 봐야겠다..

댓글남기기