ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • The Rendering Pipeline - Background
    CS/게임 프로그래밍 2024. 2. 4. 22:24

    Pipeline State

    Fixed-Function Pipeline Stage

    • Perform a set of fixed operations on the given data.
    • Use the status object to control the fixed-function pipeline stages.
    • The burden of validation of status setting API calls disappears.
    • The validation of the state occurs in the process of creating a state, not in the API call process at the time of execution.

     

    Programmable Pipeline Stage

    • Programmable : can execute a program written in HLSL; High Level Shading Language.
    • Common shader core
      • Define general input and output designs.
      • Provide a set of intrinsic functions supported by all the sahder stages.
      • Provide the interface required for the shader program to use resources.

    • Shader core architecture
      • v# : receive input for shader core.
      • r#, x#[n] : can store data during the interim calculation process.
      • t#, cb#[n], icb[index], u# : provide access to various device memory resources.
      • o# : record the calculated values and deliver them to the next stage.

     

    Pipeline Execution

    Draw Method

    // Type of draw method
    Draw(...);
    DrawAuto(...);
    DrawIndexed(...);
    DrawIndexedInstanced(...);
    DrawInstanced(...);
    DrawIndexedInstancedIndirect(...);
    DrawInstancedIndirect(...);

     

    Communication between Stages

    • Attribute : input / output data
    • Semantic (binding semantic) : text-based identifier given to input / output attributes
    // A simple example of a declaration of a shader function
    struct VS_INPUT
    {
        float3 position : POSITION;
        float2 coords : TEXCOORDS;
        uint vertexID : SV_VertexID;
    };
    
    struct VS_OUTPUT
    {
        float4 position : SV_POSITION;
        float4 color : COLOR;
    };
    
    VS_OUTPUT VSMAIN(in VS_INPUT v)
    {
        // Vertex processing
    }
    
    float PSMAIN(in VS_OUTPUT input) : SV_Target
    {
        // Pixel processing
    }

    'CS > 게임 프로그래밍' 카테고리의 다른 글

    The Tessellation Pipeline  (0) 2024.02.12
    The Rendering Pipeline - After Tessellation  (0) 2024.02.05
    The Rendering Pipeline - Before Tessellation  (0) 2024.02.04
    Direct3D 11 Resources  (0) 2024.02.02
    Overview of Direct3D 11  (0) 2024.01.29
Designed by Tistory.