C++ DirectX11纹理坐标和顶点
我是新来的 我正在从DIGTXX11开始学习DIXTX11,我是一个完整的初学者,但我确实有C++的知识。我遇到过纹理坐标以及它们是如何使用的,但我不理解用于指定顶点的代码片段。代码如下:C++ DirectX11纹理坐标和顶点,c++,textures,directx-11,vertices,C++,Textures,Directx 11,Vertices,我是新来的 我正在从DIGTXX11开始学习DIXTX11,我是一个完整的初学者,但我确实有C++的知识。我遇到过纹理坐标以及它们是如何使用的,但我不理解用于指定顶点的代码片段。代码如下: // the structure used to store the vertices struct VertexPos { XMFLOAT3 pos; XMFLOAT2 tex0; }; // some code before reaching this point ... VertexP
// 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个值并从两个三角形制作一个矩形?这将加载一个纹理图像并显示它,我想知道顶点是如何工作的(如果可能的话,可以使用指定每个顶点位置的图形)。我想说这个示例使用真实三角形(每个三角形3个顶点6),如果您想要4个顶点和两个三角形,您可以使用三角形带我想说这个示例使用实三角形(每个三角形3个顶点加在一起6个),如果您想要4个顶点和两个三角形,您可以使用三角形带请解释您看到的“指定4个值并从两个三角形生成一个矩形”和对两个三角形使用四个不同的坐标(其中两个使用两次),分成两组(每个组有三个不同的坐标)“。后者是引用的代码所做的,不是吗?我不确定代码对6个位置做了什么..以及这些位置如何用于纹理贴图,我不明白。请解释您看到的“指定4个值并从两个三角形生成一个矩形”和“使用四个不同的坐标”之间的差异(两次使用其中两个),分为两组(每个组有三个不同的三角形).后者是引用的代码所做的,不是吗?我不确定代码对6个位置做了什么..以及这些位置如何用于纹理映射,我不理解,它在代码中使用三角形列表..我需要知道的是顶点如何用于纹理映射..前3个顶点是一个三角形ngle,第二个3个顶点是三角形。三角形列表是整个三角形的列表。我画了前三个,看到了一个左角三角形,现在我更好地理解了代码,感谢Guy,实际上,它在代码中使用三角形列表。我需要知道的是顶点如何与正在映射的纹理一起使用。前3个顶点是三角形le,第二个3个顶点是三角形。三角形列表是整个三角形的列表。我画了前三个,看到了一个左三角形,现在我更好地理解了代码,谢谢大家