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

    [Direct11] 9. Direct3D API Interface & Function #2

    1. Direct3D API Interface & Function 1.1 Vertex Shader 1.1.1 Vertex Shader HLSL Code - 정점을 생성할 때 위치와 색상으로 생성하여 정점 셰이더의 매개변수가 4개 - 처음 두가지의 값은 입력 매개변수, 나머지 둘은 출력 매개변수 - HLSL에서는 참조나 포인터가 없으므로 구조체를 이용하거나 out이 지정된 출력 매개변수를 사용 struct Vertex { XMFLOAT3 Pos; XMFLOAT4 Color;}; void VS(float3 iPosL : POSITION, float4 iColor : COLOR, out float4 oPosH : SV_POSITION, out float4 oColor : COLOR); - 처음 두 입력 매개변..

    [Direct11] 8. Direct3D API Interface & Function #1

    1. Direct3D API Interface & Function 1.1 Vertex & Input Layout 1.1.1 Direct3D Vertex - 공간적 위치 이외에 추가적인 자료를 가질 수 있고 원하는 자료를 사용하려면 원하는 구조체 정의 - 하나는 위치와 색상, 하나는 위치, 법선, Texture 좌표로 구성 struct Vertexl { XMFLOAT3 Pos; XMFLOAT4 Color; }; struct Vertex2 { XMFLOAT3 Pos; XMFLOAT3 Normal; XMFL0AT2 TexO; XMFLOAT2 Texl; }; - 정점 구조체의 각 성분이 어떤 용도인지 Direct3D에게 알려 주어야 함 1.1.2 Input Layout - 위의 방식을 알려주는 수단으로 구조체들..

    [Direct11] 7. Rendering Pipeline - Pixel Shader & Output Merger (PS & OM)

    1. Rendering Pipeline 1.1 Pixel Shader - 프로그래머가 작성해서 GPU에서 실행하는 프로그램 - 각각의 픽셀 단편마다 실행, 보간된 정점 특성들을 입력받아 하나의 색상을 출력 - 고정된 상수 색상을 돌려주는 아주 간단한 형ㅌ채에서부터 픽셀별 조명이나 반사, 그림자 효과를 수행 float4 PS(VertexOut pin) : SV_Target { return pin.Color; } 1.2 Output Merger - 픽셀 셰이더가 생성한 픽셀 단편들은 렌더링 파이프라인의 출력 병합기단계로 입력 - 출력 병합기 단계에서 일부 픽셀 단편들이 폐기 (깊이 판정이나 스펜실 판정에 의해 폐기) - 폐기되지 않는 픽셀 단편은 후면 버퍼에 기록, 혼합도 이 단계에서 일어남 1.2.1 Bl..