Ich bin neu in StackOverflow.DirectX11 Texturkoordinaten und Vertices
Ich studiere DirectX11 aus dem Buch Anfang DirectX11 und ich bin ein kompletter Anfänger, aber ich habe Kenntnisse von C++. Ich bin auf Texturkoordinaten gestoßen und wie sie verwendet werden, aber ich verstehe den Codeschnipsel nicht, der zum Angeben der Scheitelpunkte verwendet wird. Unten ist der Code:
// the structure used to store the vertices
struct VertexPos
{
XMFLOAT3 pos;
XMFLOAT2 tex0;
};
// some code before reaching this point
...
VertexPos vertices[] =
{
{ XMFLOAT3( 1.0f, 1.0f, 1.0f), XMFLOAT2(1.0f, 1.0f) },
{ XMFLOAT3( 1.0f, -1.0f, 1.0f), XMFLOAT2(1.0f, 0.0f) },
{ XMFLOAT3(-1.0f, -1.0f, 1.0f), XMFLOAT2(0.0f, 0.0f) },
{ XMFLOAT3(-1.0f, -1.0f, 1.0f), XMFLOAT2(0.0f, 0.0f) },
{ XMFLOAT3(-1.0f, 1.0f, 1.0f), XMFLOAT2(0.0f, 1.0f) },
{ XMFLOAT3( 1.0f, 1.0f, 1.0f), XMFLOAT2(1.0f, 1.0f) },
};
...
// shader file
Texture2D colorMap_ : register(t0);
SamplerState colorSampler_ : register(s0);
struct VS_Input
{
float4 pos : POSITION;
float2 tex0 : TEXCOORD0;
};
struct PS_Input
{
float4 pos : SV_POSITION;
float2 tex0 : TEXCOORD0;
};
PS_Input VS_Main(VS_Input vertex)
{
PS_Input vsOut = (PS_Input)0;
vsOut.pos = vertex.pos;
vsOut.tex0 = vertex.tex0;
return vsOut;
}
Ich verstehe nicht, warum 6 Positionen angegeben sind. Wenn es ein Rechteck zu machen ist, ist es nicht möglich, 4 Werte zu spezifizieren und ein Rechteck aus zwei Dreiecken zu machen? Dies lädt ein Texturbild und zeigt es an. Ich würde gerne wissen, wie die Scheitelpunkte funktionieren (wenn möglich mit einer Zeichnung, die die Position jedes Scheitelpunkts angibt).
Bitte erklären Sie den Unterschied sehen Sie zwischen „angeben können 4 Werte und mache ein Rechteck aus zwei Dreiecken "und" benutze vier verschiedene Koordinaten (zwei davon zweimal), in zwei Gruppen (jede mit drei verschiedenen), für zwei Dreiecke ". Letzteres ist was der zitierte Code tut, nicht wahr? – Yunnosch
Ich bin nicht sicher, was der Code mit den 6 Positionen tut .. und wie die Positionen mit der Textur Zuordnung verwendet werden sollen, ich verstehe –