ich habe mich in letzter Zeit ein wenig mit DX 11 beschäftigt.
Gleich beim InputLayout ist mir in vielen Tutorials folgendes aufgefallen:
Es wird in InputLayout erstellt:
Code: Alles auswählen
D3D11_INPUT_ELEMENT_DESC elements[] =
{
{ "POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 },
}
Im VertexShader sieht man dann aber z.B. folgendes:
Code: Alles auswählen
struct VS_IN
{
float4 pos : POSITION;
};
Warum ist die Position im ImputLayout ein float3 (also DXGI_FORMAT_R32G32B32_FLOAT) und im Shader dann ein float4?
Müsste das InputLayout nicht eher so aussehen (mit RGBA):
Code: Alles auswählen
D3D11_INPUT_ELEMENT_DESC elements[] =
{
{ "POSITION", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, D3D11_APPEND_ALIGNED_ELEMENT, D3D11_INPUT_PER_VERTEX_DATA, 0 },
}
Ist das so definiert, dass man das 4. element einfach weglassen darf und es im shader automatisch einen wert annimmt (z.B. immer auf 1.0f gesetzt wird) oder undefiniert bleibt?
Oder müsste man den VertexShader input dann eher auf "float3 pos : POSITION;" ändern?
Danke und Grüße
NytroX