在 DirextX 中遇到拓扑问题
Having trouble with topologies in DirextX
我试图在 DirectX 11 中绘制一个四边形,但我遇到了一些问题:
VERTEX vert[] = {
{-0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 0.0f},
{0.5f, -0.5f, 0.0f, 1.0f, 0.0f, 0.0f},
{-0.5f, -0.5f, 0.0f, 1.0f, 0.0f, 0.0f},
{0.5f, -0.5f, 0.0f, 0.0f, 0.0f, 0.0f},
{5.0f, 0.5f, 0.0f, 0.0f, 1.0f, 0.0f},
{-0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 0.0f}
};
//0, 1, 2,
//2, 3, 0
vbo->Update(vert);
vbo->Bind();
deviceContext->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP);
deviceContext->Draw(6, 0);
它绘制了 3 个三角形 - 一个在正确的位置,两个错误的三角形。
由于您明确指定了三角形,因此您应该使用
D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST
这会将每 3 个顶点视为三角形的一部分>
如果是三角形条带,您只需要绘制 4 个顶点,因为绘制将使用以下索引完成:
Triangle 0->1->2
Triangle 1->2->3
在这种情况下,要绘制的正确数组是:
{-0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 0.0f},
{0.5f, -0.5f, 0.0f, 1.0f, 0.0f, 0.0f},
{-0.5f, -0.5f, 0.0f, 1.0f, 0.0f, 0.0f},
{5.0f, 0.5f, 0.0f, 0.0f, 1.0f, 0.0f}
相关文章:
- 编译包含字符串的代码时遇到问题
- 如何在C++向量中奇数元素前面加上值-1,我在使用insert函数时遇到了问题
- 在 for 循环中查找问题时遇到困难
- 代码在我的计算机上运行良好,但是在将其提交给coursera时遇到未知的信号11问题
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- 从其他类访问类时遇到问题
- 打印问题.我在数组中打印值时遇到一些问题
- 使用静态成员声明类时遇到问题
- C++ 填充数组时遇到问题
- 遇到此问题时遇到困难:允许用户输入数组的值并使用 for,而循环也输出输入的最大数字
- 我在使用C++文件时遇到了一些问题
- 在将字符串放入字符串向量时遇到问题?
- 余数除法和不允许除以零 (c++) 时遇到问题
- 我在C++中使用 getline() 函数时遇到问题
- C++线程安全:如果只有一个线程可以写入非原子变量,但多个线程从中读取. 会遇到问题吗?
- 在我的四叉树实现中遇到问题
- 在 c++ 中循环遍历数组时遇到问题
- 我遇到了黑客排名中的问题"TWO STRINGS"的三个测试用例的分段错误。原因是什么?
- 使用 MinGW 在 Windows 上构建 GLEW 时遇到问题
- 编译 Cilk Plus 程序时遇到问题