ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [컴퓨터 그래픽스] Modeling(polygon mesh)
    컴퓨터그래픽스 2024. 2. 16. 13:47

    1. Implicit representation vs Explicit representation

    ​

    쉽게 말해 전자는 수학적인 식을 통한 렌더링, 후자는 polygon mesh를 통한 렌더링(오른쪽)을 말한다.

    polygon mesh를 이용한 방법은 물체를 완벽하게 나타내진 않지만, 우리 컴퓨터의 GPU는 이를 processing 하는 것에 최적화 되어있다.

    ​

    ​

    2. Polygon Mesh.

    이렇게 물체의 표면을 삼각형, 또는 사각형으로 쪼개놓은 놈들을 polygon mesh 라고 하는데, 보통 triangle이 많이 쓰인다. Mesh가 촘촘해지면 보기는 좋은데, 계산량이 많이 늘어난다.

    ​

    메쉬에 대한 데이터는 다음과 같이 index 형태로 저장된다.

    위에 주전자 그림과 함께 보면 더 이해가 편하다. 단순하게 좌표를 저장해 놓은 vertex array와, index array가 구분되어 있는데, 이는 duplicate data를 방지하기 위함이다.

    ​

    index array 선언 순서는 반시계방향!! 이다. 단 첫 번째 정점은 아무거나 뽑아도 무방하다. (t1의 정점 0, 1, 2 중 아무거나 먼저 써도 되지만, 꼭 반시계 방향을 지켜야 한다는 뜻이다) (내 학점 갉아먹은 중요한 내용이다)

    ​

    ​

     

    조금 더 자세히 설명하자면, 각 메쉬의 법선 벡터(Normal)는 저렇게 물체의 바깥쪽으로 뻗어 있어야 한다. 이때 오른속을 위의 사진처럼 위치시키면 엄지를 법선 벡터라 했을 때 나머지 손가락이 반시계 방향으로 돌고 있는 것을 확인할 수 있다.

    ​

    방금 언급한 Normal은 바로 평면에서의 법선 벡터(triangle normal)다. 그러나 더 중요한 것은 꼭지점의서의 법선 벡터다(vertex normal).

    이는 다음과 같은 식으로 계산된다.

    한 꼭지점을 둘러싸고 있는 6개 평면의 noraml을 계산하고, 그 normal의 normal을 계산하는 방식이라 생각하면 편하다. (연산량무엇)

    ​

    ​

    ​

    polygon mesh는 오프라인에서 그래픽스 프로그램을 통해 만들어지고, unity와 같은 응용 프로그램으로 넘겨진다. 이때 내보내기 과정을 export, 불러오기 과정을 import라 하는데 명칭은 다른 분야에서 사용하는 것과 흡사하다.

    ​

    export를 할 때는 다양한 파일 포맷이 있는데, 그 중 .obj 를 가장 많이 사용한다. 요 파일은 그림과 같이 정점의 위치, 정점에서의 normal, 인덱스를 가지고 있다.

    ​

    .obj 파일은 import를 통해 그래픽스 응용 프로그램의 메모리 공간으로 옮겨진다. 한 물체가 지닌 정점의 개수(=인덱스의 개수)를 알면 메모리 관리에 용이하다.

Designed by Tistory.