ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Chapter 1.2 Polygon mesh
    3차원 그래픽스/Polygon mesh 2019. 2. 11. 23:08

    이 문서는 개인 공부용으로 쓰였습니다.

    - 게임 프로그래밍을 위한 3차원 그래픽스 (한정현)


    Chapter 1.2 Polygon mesh


    0. 정의


    - GPU는 폴리곤 메쉬 처리에 최적화되어 있다.

    폴리곤 메쉬의 정점들은 부드러운 곡면을 샘플링한 점들에 불과하다.

    폴리곤 메쉬는 정확한 표현법이 아닌 근사적 표현법이다.



    OpenGL - 볼록 폴리곤 (평면성과 볼록성) : 처리 속도를 빠르게 하기 위해

    Direct3D - 삼각형 폴리곤 (삼각형 메쉬)





    _ 메쉬의 해상도가 올라갈수록 본래의 곡면과 흡사해지지만

    메쉬를 처리하기 위한 시간이 증가하여 효율성은 떨어지게 된다.


    _ 저해상도의 메쉬를 고해상도로 변환하는 과정은 세분화

    _ 반대의 과정은 간략화라 한다.




    1. 폴리곤 메쉬 표현 기법


    - 삼각형 메쉬를 표현하는 가장 단순한 방법은

    삼각형을 구성하는 세 개의 정점을 순서대로 나열하는 것이다.


    _ 이 표현법은 삼각형 리스트라 부르고, 정점들이 저장된 메모리 공간은 정점 버퍼라 부른다.





    t1 (0,1) (0,0) (1,1) 

    t2 (0,0) (1,0) (1,1)

    t3 (1,1) (1,1) (2,1)


    상당히 직관적이지만, 데이터를 중복해 저장한다는 단점이 있다.



    _ 인덱스 버퍼

    정점 버퍼에 정점들을 중복 없이 저장하고, 이들을 가리키는 인덱스의 별도로 저장.

    정점 위치뿐만 아니라 정점의 노멀, 텍스처 좌표 등 다양한 데이터가 포함된다.


    0 (0,1)    t1 (0,1,2)

    1 (0,0)    t2 (1,3,2)

    2 (1,1)    t3 (2,3,4)

    3 (1,0)

    4 (2,1)


    _ 삼각형 스트립

    일련의 결합된 삼각형이다.

    삼각형을 위해 세 개의 정점 처리가, 그 이후에는 삼각형당 하나의 정점처리를 한다.

    렌더링 성능이 낮아, 사각형을 그릴 때는 삼각형 리스트보다 선호된다.

    ACMR은 1로 수렴한다.

    ^(ACMR 정점의 평균개수는 삼각형당 캐쉬 미스 회수와 동일하다)

    ^(n개의 정점이 있다면 삼각형의 개수는 대략 2n이 된다.)

    ^(2n개의 삼각형을 위해 n개의 정점을 처리하여, 0.5에 수렴한다.)





    2. 노멀 벡터





    삼각형 노멀은 v1과 v2의 외적을 이용해 계산된다.


    삼각형 노멀의 방향은 정점 순서에 따라 달라진다.


    <p1, p2, p3>의 경우 정점이 반시계 방향 정렬

    <p1, p3, p2>의 경우 정점이 시계 방향으로 정렬


    _오른손 법칙에 따르면, 반시계 방향으로 정렬된 정점은 물체 표면에서 바깥쪽으로

    컴퓨터 그래픽스에서 노멀은 물체 바깥을 향하게 하는 것이 관례이다.



    _ 정점 노멀

    해당 정점을 공유하는 삼각형들의 노멀의 평균으로 정의된다.

    모델링 단계에서 계산되고 정점 버퍼에 저장되어 렌더링 단계로 넘겨진다.




    '3차원 그래픽스 > Polygon mesh' 카테고리의 다른 글

    Chapter 1.3 Coordinate  (0) 2019.02.11
    Chapter 1.1 게임 제작 파이프라인  (0) 2019.02.11
Designed by Tistory.