C++ Algorithm & Study

    [Direct11] 6. Rendering Pipeline - Tessellation & Rasterizer (TS & RS)

    1. Rendering Pipeline 1.1 Tessellation - 한 메시의 삼각형들을 더 잘게 쪼개서 새로운 삼각형들으 만드는 과정 - 새 삼각형들을 새로운 위치로 이동함으로써 좀 더 세밀한 메시를 만들어 낼 수 있음 1.1.1 Advantage - 카메라의 가까운 삼각형들에게 테셀레이션을 적용하여 세부도를 높임 - 먼 삼각형들인 경우 테셀레이션을 적용하지 않는 방식의 LOD(level-of-detail) 메커니즘을 구현 - 위 메커니즘을 적용한다면 여분의 세부도가 실제로 눈에 띄는 부분에서만 삼각형들을 더 투여 가능 - 메모리에는 적은 수의 삼각형들로 이루어진 메시를 담아두고 즉석에서 삼각형들을 추가함으로써 메모리를 적용 - 애니메이션이나 물리 처리 같은 연산들은 단순한 저다각형 메시에 대해 ..

    [Direct11] 5. Rendering Pipeline - Vertex Shader (VS)

    1. Rendering Pipeline 1.1 Vertex Shader - 입력 조립기 단계에서 기본 도형들을 조립한 후 정점들이 정점 셰이더 단계로 입력 - 정점 하나를 받아 정점 하나를 출력하는 함수, 화면에 그려질 모든 정점은 정점 셰이더 단계를 거침 - 프로그래머가 구현하여 GPU로 제출, 그 함수는 각 정점에 대해 GPU에서 실행되므로 아주 빠름 - 변환, 조명, 변위 매핑 등 수많은 특수 효과를 정점 셰이더에서 수행 가능 - 입력 정점 자료, Texture, 변환 행렬, 장면 광원 정보 등 GPU 메모리에 담긴 다른 자료에도 접근 가능 1.1.1 Local Space & World Space - 물체의 기하구조를 장면 전역의 좌표계를 기준으로 직접 구축하는 것이 아님 - 물체 자신의 Local..

    [Direct11] 4. Rendering Pipeline - Input Assembler (IA)

    1. Rendering PipeLine 1.1 Rendering PipeLine 1.1.1 Input Assembler - 메모리에서 기하 자료를 읽어 기하학적 기본도형을 조립 - Vertex - Direct3D의 정점은 본질적으로 공간적 위치 이외의 정보도 담고, 좀 더 복잡한 렌더링 효과를 낼 수 있음 - 정점들은 정점 버퍼를 통해 렌더링 파이프라인에 묶임 - 연속적인 메모리에 저장하는 자료구조, 어떤 식으로 조합해서 기본 도형을 형성할 것인지 말하지 않음 1.1.1.1 Primitive Topology - 기본 도형을 형성하는 방식을 DX3D에게 알려주는 수단 - 기본 도형 위상 구조를 지정하는 함수 & 다양한 기본 도형 위상 구조들을 정의한 열거형 void ID3D11DeviceContext::I..