我是StackOverflow的新手。DirectX11紋理座標和頂點
我正在學習DirectX11的Beginning Directx11,我是一個完整的初學者,但我確實掌握了C++的知識。我遇到了紋理座標以及它們如何使用,但我不明白用於指定頂點的代碼片段。以下是代碼:
// 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;
}
我不明白爲什麼有6個指定位置。如果要製作一個矩形,是不是可以指定4個值並從兩個三角形構成一個矩形?這會加載紋理圖像並顯示它,我想知道頂點是如何工作的(如果可能的話,繪製指定每個頂點的位置)。
請解釋你們之間看到的差異「指定4個值和從兩個三角形「做一個矩形」,「使用四個不同的座標(使用兩個三角形),兩個組(每個都有三個不同的),兩個三角形」。後者是引用的代碼所做的,不是嗎? – Yunnosch
我不確定代碼與6個位置做什麼..以及位置是如何與紋理貼圖一起使用的,我不明白 –