[Virtual World] Modeling

김명석·2023년 9월 13일
0

Game

목록 보기
2/4

3D models

3차원 모델이란?
3차원 공간 상의 객체이다 .
이를 수치적인 표현을 한 것을 3차원 모델이라고 한다.

수치적으로 접근한 모델은 Polygon Model 이 있다. 이뿐만 아니라 컨트롤 point로 수학적 곡면을 재현하는 것이 가능하다. 기본적인 형상들을 더하고 뺌으로써 하나의 복잡한 모양을 만들 수있다.
우리가 자주 보게되는 건 ploygon mash일 뿐이고 세상엔 표현이 있다 정도로 기억하길 바란다.

Coordinate System

우리는 가운데에 있는 데카르트의 좌표계를 주로 사용한다.

이는 크게 두가지가 있는데 왼손,오른손 좌표계가 있다.

엄지의 위치에 따라 z축의 방향이 달라진다.

tool 별 좌표계

현존하는 여러 tool들에도 각각 서로 다른 방향을 가진다. unity는 왼손 자표계를 따르며 y축이 위를 뜻한다. unreal은 같은 왼손 좌표계를 쓰나 z 축을 위축으로 삶는다. 이렇기에 unity에서 작성한 프로그램을 unreal로 옮길때 해당 부분을 고려해야한다.

Polygonal mash

정점 vertex
정점들의 집합 vertices
간선 (정점들의 연결) - edge
- face 보통 3각형으로 많이 쓴다
ㄴ 가장 적은 점으로 면을 구성할 수 있기 때문에 대부분의 그래픽 카드등이 3각형으로 인식한다.

이러한 것들의 집합으로 객체를 표현할 수 있다.

Data Structures

이를 컴퓨터의 저장하는 방법은 여러가지 있으나 대부분의 file format은 face-vertex를 사용한다.

Vertex-Vertex

각 정점에 따라 번호가 정해져있다 해당 번호에 따라 좌표가 있고, 연결된 vertex 연결 정보를 뜻한다. 이렇게 구성하면 직접적으로 면을 구성하는 정보를 제공하지 않는다. 간접적인 추론이 가능하나 이는 비효율적이다.(암묵적인 edges, faces 정보는 있지만 이를 처리하는데 연산이 필요)

Face-Vertex

위와 같은 불필요한 연산을 사용하지 않기 위해서 face 정보가 같이 있는 위와 같은 방식을 주로쓴다

  • 점이 어떤 면에 들어있는지에 대한 정보
  • face 정보

위의 방법은 충분히 좋으나 기하학적인 연산을 취할때는 조금 더 많은 정보가 있는 것이 좋다. 자료구조를 여러가지 기하학적인 방법으로 사용할 수있다.

Winged Edge

edgelist도 추가된다. edge는 face를 2개로 가르기에 왼쪽면 오른쪽 면에 대한 정보를 가지고 있다.
CW - 시계 방향
CCW - 반시계 방향
edge끝에 가장 끝에 있는 시계 반시계 방향의 edge의 대한 정보들을 가진다.
양끝에 총 4개의 edge에 대한 정보 역시 들어있다.

복잡한 mash를 단순화 할 수 있다 이를 mash simplication이라 하는데 이는 자기 주변에 연관된 edge등의 정보가 필요하다. 이러한 복잡한 연산을 위해 이와 같은 복잡한 자료구조가 필요하다.

File Format

위의 살펴본 것들을 사용하는 여러 포멧이 존재한다

주로 obj fbx 를 사용한다.

OBJ

텍스트 형식으로 있다.

  • 각 vertex 좌표
  • texture 좌표
    texture mapping을 위해 어떤 좌표를 어떻게 붙일지 대응관계를 좌표로 저장
  • normal vertex
    각 표면이 어떤 방향으로 수직인가에 따른 정보
  • faces list
    face에 대한 정보 vertex들의 대한 정보

    예시


    그냥 vertex-face라는 자료구조가 거의 그대로 text파일로 전이 되었다 라고 볼 수 있다.

0개의 댓글