-
The Rendering Pipeline - BackgroundCS/게임 프로그래밍 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