React/ReactThreeFiber

Geometry

최 수빈 2025. 3. 4. 23:18

 

Geometry

 

기하학적 구조

mesh의 모양(shape)을 정의하는 컴포넌트

 

Three.js에서는 Geometry가 삼각형(Tris)들로 이루어진 구조로 표현됨

모든 Geometry는 BuffetGeometry 클래스를 상속받아 사용됨

 

 

*Three.js에서 Geometry를 삼각형(Tris)으로 만드는 이유

  • 삼각형은 가장 단순한 다각형
  • 삼각형은 가장 적은 점(Vertices)으로 면(Face)을 만들 수 있는 도형
  • 다른 다각형도 삼각형의 조합으로 만들 수 있음
    사각형(Quadrangle) → 삼각형 2개로 구성
    오각형(Pentagon) → 삼각형 3개로 구성

 

*High Poly vs. Low Poly

 

High Poly : 삼각형 개수가 많아 곡면이 부드럽게 표현됨

Low Poly : 삼각형 개수가 적어 성능이 좋지만, 모델이 각지게 표현됨

→ 과거 게임에서는 낮은 성능의 컴퓨터에서도 원활히 렌더링할 수 있도록 Low Poly 모델을 사용

→ 최근에는 AI 업스케일링을 통해 저해상도 모델도 선명하게 보이도록 보정하는 기술이 사용되고 있음

 

 

*SphereGeometry - 곡면 표현

  • Segment 개수를 조절하면 구의 부드러움을 조정할 수 있음
  • Segment가 많을 수록 부드럽고 곡선이 잘 표현됨
  • Segment가 적으면 각진 형태로 표현됨

→ 적절한 Poly 개수 조절이 중요

→ 성능을 고려해야 하지만, Low Poly면 모양이 깨질 수 있음

 

 

 

카드 만들기

 

방법 1.  PlaneGeometry 사용

<mesh>
  <planeGeometry args={[1, 1.6]} />
  <meshStandardMaterial color={"white"} />
</mesh>

PlaneGeometry는 기본적으로 두께가 없어서, 얇은 직사각형 표현에 적합

 

 

방법 2. BoxGeometry 사용

<mesh>
  <boxGeometry args={[1, 0.01, 1.6]} />
  <meshStandardMaterial color={"white"} />
</mesh>

BoxGeometry는 얇은 두께를 조절할 수 있어, 실제 카드처럼 표현 가능

 

 

 

App.jsx + mesh

<boxGeometry>를 사용- 가로 1, 두께 0.02, 세로 1.6의 white color 직사각형 박스생성

App.jsx

 

boxGeometry

 

'React > ReactThreeFiber' 카테고리의 다른 글

Obj 3D & Transform  (0) 2025.03.06
Material & Texture  (1) 2025.03.05
GUI Controller  (2) 2025.03.03
3D 개발을 도와주는 도구들 - OrbitControls, AxesHelper, GridHelper  (0) 2025.03.02
Scene  (0) 2025.02.28