C++ Algorithm & Study/Game Math & DirectX 11

    [Direct11] 27. Direct3D Compute Shader - I/O Resource

    1. Direct3D Compute Shader 1.1 Compute Shader 1.1.1 I/O Resource - Input Texture - 계산 셰이더에 묶을 수 있는 좌원은 두 종류, Buffer & Texture - 이전 글에서 두 Texture를 계산할 때 입력된 Texture를 계산 셰이더에 실제로 입력 - 응용 프로그램에서 Texture에 대한 SRV를 생성하고 Effect File로 전달하는 변수를 통해 설정 - 보통 Texture Resource를 셰이더 자원 뷰를 통해 픽셀 셰이더에 묶는 것과 마찬 가지 방식 - Input Texture들의 경우 해당 셰이더 자원 뷰가 읽기 전용 StructuredBuffer gInputA; StructuredBuffer gInputB; 1.1.2..

    [Direct11] 26. Direct3D Compute Shader

    1. Direct3D Compute Shader 1.1 Compute Shader 1.1.1 Compute Shader - GPU는 하나의 장소 & 연속된 장소들에 대량의 메모리를 읽어서 처리하는 작업에 최적화 - 임의 메모리 접근을 염두에 두고 설계된 CPU와 대조적인 특징 - 정점들과 픽셀들이 개별적으로 처리된다는 특징 때문에 GPU는 대규모 벙렬 처리에 맞게 설계 - Compute Shader는 Direct3D가 저공하는 프로그램 기능 셰이더 - 렌더링 파이프라인에 직접 포함되어 있는 것이 아닌 옆에 존재, GPU 자원에서 직접 자료를 읽거나 기록 가능 1.1.2 Thread & Thread Group - GPU 프로그래밍에서 작업을 실행할 다수의 스레드들이 스레드 그룹들로 묶여 일종의 격자를 형성..

    [Direct11] 25. EX App Program - Billboard

    1. EX App Program 1.1 Billboard 1.1.1 Tree System - 나무를 나타내는 완전한 3차원 기하구조를 렌더링하는 대신, 3차원 나무의 모습을 담은 2차원 텍스처를 사용 - 멀리있는 나무의 경우 빌보드인지 구분하기 어렵지만 빌보드는 항상 카메라를 향하게 해야 함 - 빌보드의 점의 정점에 대한 구조체를 생성 struct TreePointSprite { XMFLOAT3 pos; XMFLOAT2 size; }; - 정점 구조체는 세계 공간에서 빌보드 중심 위치를 나타내는 점의 좌표를 담음 - 또한 빌보드의 크기, 즉 빌보드의 너비와 높이를 담아 기하 셰이더를 통해 사각형으로 확장 const D3D11_INPUT_ELEMENT_DESC InputLayoutDesc::TreePoin..