2015-02-06 13 views
8

Ist es möglich, nur ein einziges GL_TRIANGLE_STRIP mit einem ganzen Würfel zu zeichnen?Cube mit einzelnen GL_TRIANGLE_STRIP

Offensichtlich ist es nur der Würfel Kombinatorik ich hier bin besorgt, es könnte genauso gut in jede Art von Box oder einem ähnlichen Gegenstand gestreckt werden.

+0

in anderem Wort [den Würfel in eine einzige Zeile entfalten,] (http: //www.csh. rit.edu/~pat/lj/un gefaltete_cubes.png) –

Antwort

3

Ja, nach ein bisschen zu experimentieren fand ich die Antwort selbst. Stellen Sie sich vor, die Ecken Ihres Würfels sind abwechselnd schwarz und weiß gefärbt. Zeichnen Sie eine Dreieckskante entlang jeder Seite zwischen den beiden schwarzen Ecken. Auf diese Weise bilden die Diagonalen innerhalb des Würfels ein Tetraeder. Für die [0,1] ³ Würfel, wäre eine mögliche Folge von Koordinaten der folgende:

Vertex Triangle Face 
------+-----------+----- 
0 0 0 
0 1 0 
1 0 0 000 010 100 **0 
1 1 0 100 010 110 **0 
1 1 1 100 110 111 1** 
0 1 0 111 110 010 *1* 
0 1 1 111 010 011 *1* 
0 0 1 011 010 001 0** 
1 1 1 011 001 111 **1 
1 0 1 111 001 101 **1 
1 0 0 111 101 100 1** 
0 0 1 100 101 001 *0* 
0 0 0 100 001 000 *0* 
0 1 0 000 001 010 0** 
1

Für diejenigen, von Ihnen, die faul (wie mir) sind, hier ist eine copy-Paste-Version von mayoff Antwort rauben;)

static const GLfloat cube_strip[] = { 
    -1.f, 1.f, 1.f,  // Front-top-left 
    1.f, 1.f, 1.f,  // Front-top-right 
    -1.f, -1.f, 1.f, // Front-bottom-left 
    1.f, -1.f, 1.f,  // Front-bottom-right 
    1.f, -1.f, -1.f, // Back-bottom-right 
    1.f, 1.f, 1.f,  // Front-top-right 
    1.f, 1.f, -1.f,  // Back-top-right 
    -1.f, 1.f, 1.f,  // Front-top-left 
    -1.f, 1.f, -1.f, // Back-top-left 
    -1.f, -1.f, 1.f, // Front-bottom-left 
    -1.f, -1.f, -1.f, // Back-bottom-left 
    1.f, -1.f, -1.f, // Back-bottom-right 
    -1.f, 1.f, -1.f, // Back-top-left 
    1.f, 1.f, -1.f  // Back-top-right 
};