假设我想在Direct3D中渲染金字塔。我的顶点缓冲区中有以下顶点:
Vertex vertices[] = {
{XMFLOAT3(+1.0f,0.0f,+1.0f),(const float*)&Colors::Green},
{XMFLOAT3(+1.0f,0.0f,-1.0f),(const float*)&Colors::Green},
{XMFLOAT3(-1.0f,0.0f,-1.0f),(const float*)&Colors::Green},
{XMFLOAT3(-1.0f,0.0f,+1.0f),(const float*)&Colors::Green},
{XMFLOAT3(0.0f,1.5f,0.0f),(const float*)&Colors::Blue}
}
其中Vertex是一个具有位置和颜色值的简单struct
。
现在在我的索引缓冲区中,指定这些顶点以绘制金字塔的正确顺序是什么,所以它的所有三角形都是正面的?每当我尝试对我来说似乎合乎逻辑的东西时,我最终都会遇到一些面向错误方向的三角形。
答案 0 :(得分:1)
这就是我通常这样做的方式:
作为替代方案:
当然,您的渲染器,尤其是输入汇编程序的原始类型(如三角形列表或三角形条)和剔除必须正确设置,以正确的方式绘制模型。
希望它有所帮助!