2011-05-31 12 views
8

मैं ओपनगल प्रोग्रामिंग के लिए नया हूं। मैं वर्तमान में गुफा शाफ्ट गठन की एनीमेशन बना रहा हूं। मेरे पास जेड-अक्ष के साथ शाफ्ट की प्रोफाइल के लिए समन्वय का एक सेट है। मेरी योजना इस डेटा से 3 डी जाल बनाना है और ऐसा करने के लिए मैंने TRIANGLE_STRIPS का उपयोग करने के लिए अनुपालन किया है।ओपनजीएल: 3 डी जाल और मानदंडों के लिए त्रिभुज स्ट्रिप्स के साथ समस्या

 
11----12 5------6 
| /| | /| 
|/ | |/ | 
9-----10 3------4 
| /| | /| 
|/ | |/ | 
7------8 1------2 

मेरे सवाल कर रहे हैं:

  1. इस यह करने के लिए सही रास्ता है जिस तरह से मैं ऐसा किया कि मैं इस तरह कई स्ट्रिप्स बना लिया था? क्योंकि अब मुझे मानक के साथ समस्या है। मैं GL_SMOOTH छायांकन का उपयोग करना चाहता हूं और इसके लिए मुझे समझ में आता है कि मुझे शिखर के मानदंडों की गणना करने की आवश्यकता है? लेकिन मेरे कैस वर्टेक्स 10 और 3 में वही हैं तो दो मानक होंगे ??? क्या यही समस्या है? और क्या एकाधिक स्ट्रिप्स बनाने का कोई और तरीका है?

  2. और क्या एकाधिक स्ट्रिप्स बनाने का कोई अन्य तरीका है? या स्ट्रिप्स के साथ समाधान शायद सबसे अच्छा नहीं है?

  3. एक और समस्या यह है कि यह स्ट्रिप्स बराबर लंबाई के नहीं हैं। कुछ तो छोटे होते हैं। आपकी मदद के लिए धन्यवाद :)

उत्तर

2

पहले, अपने चित्र में, विकर्ण वास्तव में फ़्लिप कर रहे हैं, यदि संख्या कोने के आदेश का प्रतिनिधित्व करते हैं (लेकिन यह है कि एक छोटी सी प्रस्तुति त्रुटि है)।

  1. यह सबसे आसान और सबसे अधिक पर्याप्त दृष्टिकोण है जो कम या ज्यादा वर्दी के ग्रिड को अलग करने के लिए पर्याप्त दृष्टिकोण है। आप सही हैं, उस 10 और 3 में समान सामान्य की आवश्यकता है, इसलिए आपको उन्हें सामान्य रूप से जलाया जाने के लिए उन्हें सामान्य सामान्य करने की आवश्यकता है। इस मामले में अनुक्रमण आपके दोस्त है। बस 3 और 10 (इसी सामान्य के साथ) के लिए एक कशेरुका का उपयोग करें और अनुक्रमित त्रिकोण पट्टी का उपयोग करें, जहां सूचकांक 3 और 10 समान वर्टेक्स का संदर्भ लें। वर्टेक्स अस्पष्टताओं को हल करने में यह मानक तरीका है। यदि आप नहीं जानते कि मेरा क्या मतलब है, तो सामान्य रूप से ओपनजीएल और 3 डी प्रोग्रामिंग में थोड़ा सा गहराई से, विशेष रूप से वर्टेक्स और इंडेक्स सरणी।

  2. नियमित ग्रिड के लिए, स्ट्रिप्स अक्सर एक अच्छा विचार होता है, क्योंकि उन्हें आसानी से बनाया जा सकता है। अधिक जटिल मेस के लिए आजकल वास्तव में इसकी आवश्यकता नहीं है, क्योंकि ड्रॉ कॉल की संख्या को कम करने के लिए अक्सर अधिक महत्वपूर्ण होता है।

  3. उनके पास त्रिकोणों की कुल संख्या की तुलना में कम से कम एक उचित लंबाई होनी चाहिए, अन्यथा एक सिंगल स्ट्रिप ड्राइंग के ऊपरी हिस्से को थोड़ा तेज़ वर्टेक्स प्रसंस्करण द्वारा बचाए गए समय से बाहर निकलता है, लेकिन वास्तविक संख्या अत्यधिक कार्यान्वयन निर्भर होती है। आपको वैसे भी वर्टेक्स सरणी/बफर का उपयोग करना चाहिए, यदि आप प्रदर्शन की देखभाल करते हैं तो शुरुआत/अंत से दूर रहें।

आप वास्तव में पतित त्रिकोण कि गाया नहीं कर रहे हैं (ड्रा कॉल की संख्या कम करने के लिए) शुरू करने से एक में कई स्ट्रिप्स विलय कर सकते हैं।

1, 2, 3, 4, 5, 6, 6, 7, 7, 8, 9, 10, 11, 12

लेकिन फिर से: अपने उदाहरण का पालन करना ही पट्टी के रूप में प्रदान किया जा सकता है , जवाब रखें 3. दिमाग में। पट्टियों का उचित आकार होना चाहिए ताकि अपरिवर्तनीय त्रिकोण वास्तविक त्रिकोणों को अधिक वजन न दें।

6

सबसे पहले, त्रिभुज स्ट्रिप्स का उपयोग न करें। पुराने हार्डवेयर के लिए यह पुरानी अवधारणा है। सरल अनुक्रमित त्रिकोण सूचियों का प्रयोग करें। यह आसान है (पहले) और तेज़। अपने प्रश्नों के लिए:

1) प्रत्येक कशेरुका सामान्य है। यह स्थिति के रूप में अद्वितीय और महत्वपूर्ण है। यदि दो शिखरों में एक अलग स्थिति होती है तो वे अलग-अलग शिखर होंगे। यह सामान्य मानकों पर लागू होता है: एक ही स्थिति के साथ शिखर होते हैं लेकिन विभिन्न मानदंडों के साथ होते हैं। लेकिन वे अलग-अलग शिखर हैं। इस बारे में सोचें कि घन के ऊर्ध्वाधर से गोलाकार कैसे होते हैं।

2) सूचियों का उपयोग करें (glDrawElements)। स्ट्रिप्स का प्रयोग न करें। कैशिंग, एनवीडिया और एटीआई के लिए उन सूचियों को ऑर्डर करने के इष्टतम तरीके हैं जो उनके डेवलपर अनुभागों में बहुत से उदाहरण कोड हैं।

3) अभी तक इसके बारे में चिंता न करें। एक अच्छे जाल में लगभग बराबर क्षेत्र त्रिभुज होंगे। इंडेक्स को अधिकांश समय में एक कशेरुक कैश (आमतौर पर कम से कम 16 प्रविष्टियां) हिट करने के लिए क्रमबद्ध किया जाता है। स्ट्रिप्स एक 2 एंट्री वर्टेक्स कैश के लिए अनुकूलित करने का एक तरीका है।

+1

हां: त्रिभुज स्ट्रिप्स का उपयोग न करें। त्रिकोण स्ट्रिप्स विशेष रूप से "पुराने हार्डवेयर के लिए" या धीमे नहीं होते हैं, लेकिन आप उनका उपयोग करके गहरी परेशानी में जा रहे हैं। उपयोग के लिए +1 सरल अनुक्रमित त्रिकोण। और वर्टेक्स कैश आमतौर पर 24 है, जो मायने रखता है। – Calvin1602

संबंधित मुद्दे