मैं समझता हूँ कि एचएलएसएल का वाक्य विन्यास, उदाहरण के लिए आइए दिखाते हैं कि मेरे पास यह एचएलएसएल है:
struct VOut
{
float4 position : SV_POSITION;
float4 color : COLOR;
};
VOut VShader(float4 position : POSITION, float4 color : COLOR)
{
VOut output;
output.position = position;
output.position.xy *= 0.7f; // "shrink" the vertex on the x and y axes
output.color = color;
return output;
}
float4 PShader(float4 position : SV_POSITION, float4 color : COLOR) : SV_TARGET
{
return color;
}
और मैं इसे इस तरह संकलित करता हूं:
D3DX11CompileFromFile(L"shaders.hlsl", 0, 0, "VShader", "vs_5_0", 0, 0, 0, &VS, 0, 0);
D3DX11CompileFromFile(L"shaders.hlsl", 0, 0, "PShader", "ps_5_0", 0, 0, 0, &PS, 0, 0);
यह कैसे पसंद करता है ... बदलने के लिए पता है ... मैं एचएलएसएल और स्क्रीन पर वास्तविक पिक्सल / कोने के बीच की पाइपलाइन के बारे में बिल्कुल उलझन में हूं।
क्या यह वास्तव में उन्हें "लागू" करता है?
dev->CreateVertexShader(VS->GetBufferPointer(), VS->GetBufferSize(), NULL, &pVS);
dev->CreatePixelShader(PS->GetBufferPointer(), PS->GetBufferSize(), NULL, &pPS);
// set the shader objects
devcon->VSSetShader(pVS, 0, 0);
devcon->PSSetShader(pPS, 0, 0);
ध्यान रखें कि मैं इस सामान में एक शाब्दिक शुरुआत की तरह हूँ । क्या कोई समझा सकता है कि यह क्या कर रहा है? मैं यह मान रहा हूं कि एचटीएसएल फ़ंक्शन हर वर्टेक्स के माध्यम से जाता है और फिर उन्हें फ़ंक्शन में मेरे पास जो कुछ भी होता है उसे बदल देता है, और आउटपुट वही है जो बदल गया था ... और इसी तरह पिक्सेल shader के लिए?
एक और भ्रम है, मुझे पता है कि एक पिक्सेल क्या है, और मैं समझता हूं कि एक शीर्ष क्या है ... लेकिन वास्तव में पिक्सेल shader क्या करता है?