2015-02-06 5 views
8

का उपयोग कर क्यूब केवल एक ही GL_TRIANGLE_STRIP का उपयोग करके एक संपूर्ण घन खींचना संभव है?एकल GL_TRIANGLE_STRIP

स्पष्ट रूप से यह केवल घन संयोजन है जो मैं यहां चिंतित हूं, यह किसी भी प्रकार के बॉक्स या इसी तरह की वस्तु में भी फैलाया जा सकता है।

+0

, तुम जो आलसी हैं (मेरे जैसे) की, यहाँ लूटने mayoff के जवाब की एक कॉपी-पेस्ट संस्करण है। rit.edu/~pat/lj/un folded_cubes.png) –

उत्तर

3

हां, थोड़ा प्रयोग करने के बाद मुझे जवाब मिल गया। कल्पना करें कि आपके घन के कोनों को वैकल्पिक रूप से काले और सफेद रंग दिया गया है। दो काले कोनों के बीच प्रत्येक चेहरे के साथ एक त्रिकोण किनारे खींचे। इस तरह, विकर्ण घन के अंदर एक टेट्राहेड्रोन बनाते हैं।

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

उन लोगों के लिए [0,1] ³ घन के लिए, निर्देशांक के संभावित अनुक्रम के बाद किया जाएगा //www.csh: अन्य शब्द [एक ही पंक्ति में घन उधेड़ना,] (http में)

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 
};