I eine Funktion in C++ implementiert, um eine N Segmente für einen Dreiecksstreifen (2 x N Dreiecke) zu erzeugen später gedruckt werden soll (wie GL_TRIANGLE_STRIP) durch eine andere Funktion. Hier zeige ich Ihnen, was ich bisher habe:Dreiecksstreifen zeigt nicht richtig mit OpenGL
void strip(
std::uint32_t N,
std::vector<glm::vec3>* vertices)
{
vertices->clear();
for (std::uint32_t j=0; j<=N; ++j)
{
for (std::uint32_t i=1; i<=N; ++i)
{
float x = (float)i/(float)N;
float y = (float)j/(float)N;
vertices->push_back(glm::vec3(x, y, 0));
}
}
}
So wäre es scheinen, wie die folgende Abbildung (Für N = 3):
^
| ----------
| | /| /| /|
y | |/ |/ |/ |
| ----------
|
|-------------->
x
Aber in der Tat scheint es, wie dies:
Jede Beratung ist damit? Meine Gedanken sind, dass ich die Punkte nicht in der richtigen Reihenfolge erzeuge.
Ihr Beispiel (N = 3) Sie zeigt 6 Dreiecke. Das ist nicht 2 * N * N = 2 * 3 * 3 = 18 – BDL
Wo ist der Code, der die Indizes generiert? Sollte es nicht sein oder 'j = 1; j
Rabbid76
@BDL Entschuldigung, ich habe versehentlich ein extra * N * eingefügt. Bearbeitet – giorgioW