Directx11和Tessellation

时间:2015-12-17 14:32:09

标签: directx-11 mesh tessellation

我正在尝试创建一个包含多个1个三角形的网格,然后我可以进行细分。一个三角形工作正常但是当我试图在我的网格中创建另一个三角形时,我得到了奇怪的行为。

这是我的顶点列表。

vertices[0].position = XMFLOAT3(0.0f, 2.0f, 0.0f); // Top.
vertices[0].texture = XMFLOAT2(0.0f, 1.0f);
vertices[0].normal = XMFLOAT3(0.0f, 0.0f, -1.0f);

vertices[1].position = XMFLOAT3(0.0f, 0.0f, 0.0f); // Bottom left.
vertices[1].texture = XMFLOAT2(0.0f, 0.0f);
vertices[1].normal = XMFLOAT3(0.0f, 0.0f, -1.0f);

vertices[2].position = XMFLOAT3(2.0f, 0.0f, 0.0f); // Bottom right.
vertices[2].texture = XMFLOAT2(1.0f, 0.0f);
vertices[2].normal = XMFLOAT3(0.0f, 0.0f, -1.0f);

vertices[3].position = XMFLOAT3(0.0f, 2.0f, 0.0f); // Top.
vertices[3].texture = XMFLOAT2(0.0f, 1.0f);
vertices[3].normal = XMFLOAT3(0.0f, 0.0f, -1.0f);

我拍摄了一些屏幕截图来显示行为。 当相机处于(0,0,-10)时拍摄图片1。图2是相机处于(0,0,10)时的情况。在将顶点[3]改变为

之后,在(0,0,-10)处拍摄图3
vertices[3].position = XMFLOAT3(0.0f, -2.0f, 0.0f);

http://imgur.com/a/DCZfm

我的索引数组中有6个值,我的拓扑结构是D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST。

如果有人可以提供帮助我会非常感激,我现在​​真的很困惑!

0 个答案:

没有答案