ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 8. 테셀레이션 ( Tessellation )과 기하 쉐이더 ( Geometry shader )
    Software/DirectX 2024. 5. 24. 09:39
    728x90

    Table of Contents

    1. 테셀레이션(Tessellation)

    2. 기하 셰이더 단계( Geometry shader stage)

    3. 절단 (Clipping)





    1. 테셀레이션(Tessellation)

    테셀레이션은 D3D11버전 부터 장착된 유용한 기능이다.
    테셀레이션은 메시 정보에 주어진 삼각형을 더 잘게 쪼개서 새로운 삼각형들을 만드는 과정이라고 볼 수 있다.

     

    테셀레이션의 장점
    • 카메라 가까운 메쉬에만 테셀레이션을 적용하는 세부수준(Level of detail (LOD방식))방식으로 원근감을 주며 계산량 절약 가능 (디폴트 도형은 로우폴리(low poly)로 처리)
    • 메모리에 로우폴리곤 메쉬들만 잔뜩 올려놓고 즉석 삼각형 추가로 메모리 절약할 수 있다.
    • 애니메이션이나 물리처리같은 연산을 로우폴리 메시로 진행하고 렌더링만 테셀레이션 적용해서 하면 연산량 많이 줄일 수 있다.

     

    D3D11 이전의 테셀레이션은 CPU가 테셀레이션 연산을 수행해야해서 매우 비효율적이였다.
    하지만 DX11버전부터 전적으로 그래픽카드가 테셀레이션 연산을 수행하게 됨으로써 효율이 증가하였다. 테셀레이션 사용은 프로그래머의 선택이다.





     

    2. 기하 셰이더 단계( Geometry shader stage)

     정점 셰이더 단계에서는 한개의 정점을 받으면 한개의 정점을 변환해서 출력해준다. 따라서 정점을 생성하는 것은 불가능하다.

    기하 셰이더 단계에서는 정점을 생성하거나 파괴해서 기하구조를 확장또는 폐기할 수 있게 해줄수 있다.
    기하 셰이더의 흔한 용도는 삼각형을 사각형으로 확장하는 것이다.




     

    3. 절단 (Clipping)
    • 절단(Clipping)은 시야 절두체에 걸쳐져있는 물체가 있을 때, 시야 절두체 바깥에 있는 기하구조들을 폐기시키는 연산이다.
    • 절두체에 의해 절단된 삼각형은 다각형으로 변환 되고, 다시 여러개의 삼각형으로 쪼개지는 작업을 거쳐 화면 안에서 새롭게 그려진다.
    • 서덜런드 호지먼 절단 알고리즘을 통해 여러삼각형으로 쪼개서 다시 형성하는 구조로 이루어져있다.





     

    728x90

    'Software > DirectX' 카테고리의 다른 글

    10. D3D 그리기 연산  (0) 2024.05.24
    9. D3D 실제 구현  (0) 2024.05.24
    7. 정점 쉐이더 ( Vertex shader )  (0) 2024.05.24
    6. 입력조립기 ( Input Assembler )  (0) 2024.05.24
    5. 파이프라인과 3차원 표현  (0) 2024.05.24