0
我想弄清楚如何將索引添加到已具有所有頂點的形狀。我可以通過頂點看到我擁有它們的所有位置,但是由於沒有正確添加索引,導致了一個奇怪的工件。不過,我不知道如何正確添加它們。將索引添加到網格
Surface::Surface()
{
int size = 200;
ofPoint p1(0, 0, 0), p2(0, 0, size), p3(size, 0, size), p4(200, 0, 0);
s1 = new Curve(p1, p2);
s2 = new Curve(p2, p3);
s3 = new Curve(p4, p3);
s4 = new Curve(p1, p4);
for(double i = 0; i <= size; i++){
for(double j = 0; j <= size; j++){
mesh.addVertex(getPoint(i, j));
}
}
int width = size, height = size;
for (int y = 0; y<=height; y++){
for (int x=0; x<=width; x++){
mesh.addIndex(x+y*width);
mesh.addIndex((x+1)+y*width);
mesh.addIndex(x+(y+1)*width);
mesh.addIndex((x+1)+y*width);
mesh.addIndex((x+1)+(y+1)*width);
mesh.addIndex(x+(y+1)*width);
}
}
}
什麼畫頂點給出:
但是索引連接很多的點,我不能確定哪些如何索引應連接。繪製線框:
也許這個問題是適當的凹狀?每個人似乎都做多或同樣的事情少的時候,他們希望添加索引到網
它現在更有意義,但它仍然增加了太多索引。這就像應該做點1到2到3到4的線條,它增加了從4到1的最後一行。我試着降低循環執行的次數,但它似乎沒有幫助。沒有修改,你的代碼看起來像這樣:http://imgur.com/N8WIRIN – Axel
對不起,我編輯了答案。你應該只需要將你的循環的條件改爲<而不是<=。從概念上說,你需要創建一個比頂點少一個原語。如果你想象你在每對頂點之間創建一個四邊形。想象的最簡單的形式是如果大小== 1.您需要創建2個頂點,但只有1個四邊形。 –
我想到了這樣的事情,在做之前我已經嘗試過類似於你的編輯的東西。結果是一樣的。不過,我相信我不會按照您認爲我要添加的順序添加索引。例如,如果我將我的for循環更改爲'y
Axel