गेम इंजन क्वैड्स का उपयोग करने के बजाय मॉडल को त्रिकोण में क्यों बदलते हैं?


47

मैंने एनीमेशन के लिए माया का उपयोग करते हुए काम किया है और अधिक फिल्म उन्मुख परियोजनाओं के बावजूद मैं वीडियो गेम के विकास पर अपने अध्ययन पर ध्यान केंद्रित कर रहा हूं। वैसे भी, मैं अपने एक प्रोफेसर के साथ बात कर रहा था और हम यह पता नहीं लगा सके कि सभी गेम इंजन (जो मुझे पता है) त्रिकोणों में बदलते हैं।

किसी को भी पता है कि गेम इंजन को मॉडल को चार पक्षीय बहुभुज छोड़ने की तुलना में त्रिकोण में क्यों बदला जाता है? इसके अलावा पेशेवरों और विपक्ष (यदि कोई हो) क्या कर रहे हैं?


1
कुछ हद तक संबंधित है, NVidia NV1 ने त्रिकोणमिति / बहुभुज के बजाय क्वाडट्रैटिक टेक्सचर मैपिंग (जो क्वाड्स का उपयोग करता है) का उपयोग किया है। यह कम से कम कहने के लिए बड़ी हिट नहीं थी। En.wikipedia.org/wiki/NV1 देखें ।
Macke

5
@ मैके: द्विघात "द्विघात समीकरण" के रूप में, चतुर्भुज "चतुर्भुज" के रूप में नहीं। यह क्वैड का उपयोग नहीं करता है, बल्कि 9 बिंदुओं द्वारा परिभाषित एक द्विघात वक्र है। stason.org/TULARC/pc/3d-graphics-cards-faq/…

9
आपके प्रश्न के लिए +1 लेकिन आपके प्रोफेसर के लिए एक बड़ा -1। यह मूल सामग्री है जिसे उसे अपने हाथ के पीछे के रूप में अच्छी तरह से पता होना चाहिए, और यह संकेत है कि वह पिछले 15-विषम वर्षों के घटनाक्रम से थोड़ा बाहर है।
मैक्सिमस मिनिमस

1
वैसे मेरे प्रोफेसरों की रक्षा में वह खेल के पक्ष में नहीं है वह एक एनिमेटर / मॉडलर से अधिक है। वह जानता था कि यह ट्रिस में परिवर्तित हो गया था, लेकिन गणित के कारण के रूप में प्रतिपादन के लिए कारण नहीं जानता था। लेकिन हाँ उसे शायद पता होना चाहिए था।
अनुदान

जवाबों:


56

लब्बोलुआब यह है कि त्रिभुज रेखांकन है, जो कंप्यूटर को स्क्रीन पर वस्तुओं को कैसे प्रस्तुत करता है। हालांकि अन्य लोग इसे मुझसे अधिक योग्य बताते हैं:

सभी 3 डी ऑब्जेक्ट जो हम कंप्यूटर स्क्रीन पर देखते हैं, वे वास्तव में छोटी छोटी ज्यामितीय वस्तुओं से बने होते हैं जिन्हें अक्सर प्राइमिटिव कहा जाता है। चतुर्भुज, त्रिकोण, n-gons इत्यादि आदिमता के उदाहरण हैं। हम ज्यादातर एक मुख्य कारण के कारण त्रिकोण पर ध्यान केंद्रित करेंगे: प्रत्येक वस्तु को त्रिकोण में विभाजित किया जा सकता है, लेकिन त्रिकोण को त्रिकोण के अलावा किसी अन्य चीज में विभाजित नहीं किया जा सकता है। इस वजह से, उच्च क्रम के बहुभुज खींचने की तुलना में त्रिकोण बनाना बहुत सरल है; कम चीजों से निपटने के लिए। यही कारण है कि उन त्रिकोणों को आमतौर पर कंप्यूटर ग्राफिक्स में उपयोग किया जाता है।

जोर मेरा। स्रोत: http://www.devmaster.net/articles/software-rendering/part3.php


2
बहुत बढ़िया! जब आप इसके बारे में सोचते हैं तो यह बहुत मायने रखता है। जवाब के लिए धन्यवाद!
ग्रांट

1
OpenGL ES में, एपीआई को सरल बनाने के प्रयास के भाग के रूप में, क्वाड्स और बहुभुज भी समर्थित नहीं हैं। तो त्रिकोण का उपयोग करने का एक व्यावहारिक कारण यह है कि आपके पास कोई अन्य विकल्प नहीं है। लेकिन ईएस की तरह एक सुव्यवस्थित एपीआई अन्य आदिम प्रकारों से बचा जाता है जो इस और अन्य उत्तरों में उल्लिखित कारणों के कारण होता है।
उपपत्नीमुस

5
+1 क्योंकि एक ऐसा उत्तर है जिसे मैं संदर्भ के रूप में सुरक्षित रूप से उपयोग कर सकता हूं जब कोई मुझसे मेरे बुकमार्क के लिए एक ही बात पूछता है। केवल यह कहें कि, मैंने हमेशा सोचा है कि कारण त्रिभुज छोटे संभव आदिम हैं क्योंकि फ्लोट पॉइंट अंकगणित की अपव्यय के साथ, ट्रिस एकमात्र सुरक्षित बहुभुज हैं जो आप सभी मामलों में प्लेनर होने की गारंटी दे सकते हैं, quads के साथ आप गारंटी नहीं दे सकते कि वे क्या करेंगे हर समय planar रहें। मॉडलिंग सॉफ्टवेयर शायद मॉडल के लिए सुविधा के रूप में ऑब्जेक्ट्स को क्वाड्स या एन-गन्स के रूप में दिखाता है लेकिन ट्रांसफ़ॉर्मिंग / पॉलीगोन को दो या अधिक त्रिकोण के रूप में प्रस्तुत करता है।
हाटेरू हंसौ

56

त्रिकोण में कई गुण होते हैं जो उन्हें आसान बनाते हैं, और इसलिए तेजी से, आकर्षित करने के लिए।

चार बिंदु या अधिक एक ही विमान पर नहीं हो सकते हैं, लेकिन तीन बिंदु हमेशा (पतित मामलों की अनदेखी) हैं। यह दिलचस्प संपत्ति है कि स्केलर मान त्रिकोण की सतह पर रैखिक रूप से भिन्न होते हैं। यहां तक ​​कि जब त्रिभुज को स्क्रीन पर प्रक्षेपित किया जाता है, तब भी स्केलर मान x '/ z और y' / z के लिए रैखिक रूप से भिन्न होता है।

यह, बदले में, इसका मतलब है कि अगर छाया, बनावट के नक्शे, और गहराई फिल्टर की आवश्यकता नहीं है, तो एक रेखीय प्रक्षेप का उपयोग करके गणना की जा सकती है जो विशेष हार्डवेयर में बहुत तेजी से किया जा सकता है।

tl; dr: त्रिकोण सबसे सरल आदिम हैं, इसलिए त्रिकोण से निपटने वाले एल्गोरिदम को भारी रूप से अनुकूलित किया जा सकता है।


11
+1। मुझे लगता है कि तथ्य यह है कि एक त्रिभुज हमेशा प्लनर होता है, इसका एक मुख्य कारण है। गैर-प्लानर बहुभुज सामान को बहुत अधिक जटिल बनाते हैं।
बंमज़ैक

2
+1। मुझे लगता है कि त्रिकोण केवल बहुभुज होने के नाते आप गारंटी दे सकते हैं कि एपियर और हार्डवेयर बनाने के लिए मुख्य तकनीकी कारण है जिसे त्रिकोण की आवश्यकता होती है। मॉडलिंग सॉफ्टवेयर शायद मॉडल के लिए सुविधा के रूप में मेष को दिखाते हैं।
हाटेरू हंसो

1
एक अच्छा नॉन-प्लानर सादृश्य जिसका मैं उपयोग करता हूं ... एक तीन-पैर वाला मल जमीन पर केवल एक ही तरह से खड़ा हो सकता है, उसके पैर त्रिकोण के कोनों की तरह हो सकते हैं। लेकिन चार पैर वाला स्टूल दो तरह से जमीन पर खड़ा हो सकता है, और एक पोजीशन से दूसरी पोजिशन पर अगर एक पैर दूसरों की तुलना में छोटा होता है, तो वह लड़खड़ाता है।
क्रिस

मैं उत्सुक हूँ; यह कैसे संभव है कि एक त्रिभुज हमेशा एक ही तल पर स्थित हो? आप वास्तव में एक क्षेत्र कैसे बनाते हैं? कम से कम एक बिंदु को एक अलग विमान पर अनुवाद करना होगा, अन्यथा आपको एक सपाट सतह मिल जाएगी।
रतनप्लान

@newbiez तीन वर्टेक्स हमेशा एक सिंगल प्लेन को परिभाषित करते हैं। एक गोला विभिन्न त्रिभुजों से बना होता है; गोले की सतह के एक पैच का प्रतिनिधित्व करने वाले दो आसन्न त्रिकोण दो शीर्ष भाग साझा करते हैं, लेकिन वे एक ही विमान पर नहीं हैं। यह छवि चीजों को स्पष्ट कर सकती है: cse.csusb.edu/tongyu/courses/cs420/images/icos.jpg
ggambett

8

तीन अंक (एक त्रिकोण) हमेशा एक समतल विमान को परिभाषित करते हैं। दूसरे शब्दों में, किसी भी तीन बिंदुओं को देखते हुए, आप हमेशा एक समतल विमान बना सकते हैं जो तीनों बिंदुओं से कट सकता है। हालाँकि, हमेशा चार बिंदुओं का सच नहीं होता है। आपके पास एक विमान पर सभी चार बिंदु हो सकते हैं, लेकिन आपके पास चार बिंदु भी हो सकते हैं जो एक विमान पर नहीं हैं।


2
वास्तव में 4 रैंडम पॉइंट्स प्लेन में नहीं होने की संभावना है इसलिए आपको वैसे भी ट्राइंगुलेट करना होगा।
क्रिसएफ

यह केवल सच है अगर अंक संयोग नहीं हैं।
मांस नहीं

1
यहां तक ​​कि अगर अंक संयोग हैं, तो वे अनंत संख्या में विमानों पर हैं।
डीव्यू

कॉपलनार होने के नाते "हमेशा एक समतल विमान को परिभाषित नहीं करता है"
सैम होसेवर

6

यह "गेम इंजन" नहीं है जो ऐसा करता है - आपके द्वारा उपयोग किए जाने वाले सभी 3 डी सॉफ्टवेयर ऐसा करते हैं। यह सिर्फ आपको इसके बारे में नहीं बताता है, और यदि वह यह नहीं जानता है तो आपका प्रोफेसर काफी कम योग्य है। वे कंप्यूटर की मेमोरी में मौजूद हैं, भले ही सॉफ्टवेयर उन्हें आपसे छिपा रहा हो। सभी 3 डी कार्यक्रमों में एक विकल्प है जो त्रिकोणों को दिखाई देगा। उनके पास एक विकल्प भी होगा जो उन्हें संपादन योग्य किनारों में विभाजित करता है, इसलिए आप उनके साथ खेल सकते हैं। लेकिन वे हमेशा से शुरू करने के लिए थे और यह इस विषय को पढ़ाने के लिए आपके प्रोफेसर के अनुभवहीन हैं और अभी भी सोच रहे हैं कि "क्या त्रिकोण हैं"।

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


3

एक त्रिकोण सबसे सरल आदिम है जिसे अलगाव में वर्णित किया जा सकता है क्योंकि इसके तीन बिंदु हैं, जिनमें से कम 3 डी में एक सतह का वर्णन नहीं करते हैं।

क्योंकि एक त्रिकोण को अलगाव में माना जा सकता है, कोड या सिलिकॉन का एक टुकड़ा बनाना संभव है जो केवल एक त्रिकोण का प्रतिपादन करने में सक्षम है, जो पुनरावृत्ति की शक्ति के माध्यम से किसी भी सतह को प्रस्तुत कर सकता है।

इसलिए, पहला कंप्यूटर सिस्टम जो स्वाभाविक रूप से कई त्रिकोणों को स्वतंत्र रूप से प्रस्तुत करके "किसी भी सतह पर" को प्रस्तुत करने में सफल रहा।

यदि कोई त्रिकोण और क्वैड को "प्राइमिटिव" (यानी बिना किसी संदर्भ के ज्यामिति के पूरी तरह से पृथक बिट्स) के रूप में समझता है, तो त्रिकोण अधिक आदिम है, और इसलिए यह "जीत" होगा।

हालांकि, एक बार मनोरंजन-ग्रेड कंप्यूटर 1980 के दशक में एक निश्चित स्तर के परिष्कार से अधिक हो गए, अलगाव में "आदिम" पर विचार करने की सरलता कम महत्वपूर्ण हो गई। यदि ग्राफिक्स को बड़े पैमाने पर उत्पादित किया जाना है, तो संबंधित वर्टिकल के स्केल एहसान प्रसंस्करण समूहों की अर्थव्यवस्थाएं, जितना वे एक साथ एक सौ के करीब समान कारों को इकट्ठा करने का पक्ष लेते हैं।

यही कारण है कि 1980 के दशक में, फिल्मों ने "क्वाड" को अपनाया, जो एक मिथ्या नाम है क्योंकि यह 3 डी अंतरिक्ष में कोने के 2 डी ग्रिड को संदर्भित करता है, न कि एक पृथक चतुर्भुज।

त्रिकोण से "क्वैड्स" तक एक ही पारी इंटरैक्टिव मनोरंजन के क्षेत्र में अभी तक नहीं हुई है, लेकिन यह बहुत जल्द होने की संभावना है, और उन्हीं कारणों से यह फिल्म व्यवसाय में हुआ।


2

एक पक्षीय बहुभुज के लिए एक त्रिकोण बनाम 'n - 2' तरीके को त्रिभुज बनाने का केवल एक ही तरीका है। इसलिए, बहुभुज आकार को परिभाषित करने के लिए त्रिकोण अंततः कम से कम अस्पष्ट तरीका है। इसके अलावा, जैसा कि अन्य पोस्टरों ने संकेत दिया है, त्रिभुज को गति देने के बहुत सारे तरीके हैं (क्वाड या उच्चतर) रेखांकन (निरंतर z मेरे पसंदीदा में से एक है)। इसके अलावा, किरण-त्रिकोण चौराहे परीक्षणों को अनुकूलित करना आसान है, क्योंकि यह किरण-मध्यस्थ बहुभुज चौराहे परीक्षणों के लिए है। वास्तव में, एकतरफा प्रतिनिधित्व को हाथ से करने के लिए एन-पक्षीय बहुभुज पर कई संचालन लाभान्वित होते हैं। यह कहना है कि बहु-पक्षीय बहुभुज प्रतिनिधित्व 'खराब' नहीं हैं - वे बहुत उपयोगी हैं लेकिन अंततः, आप कई जाल संचालन के लिए त्रिकोण के साथ काम करना चाहते हैं।


2

जब तक त्रिभुज को तीन गैर-कोलीनियर लंबों द्वारा परिभाषित किया जाता है (पढ़ें: कोणों में से कोई भी बिल्कुल पाई नहीं है), तब कोने एक अद्वितीय विमान को परिभाषित करते हैं।

एक क्वाड निश्चित रूप से चार कोने द्वारा परिभाषित किया गया है। यह उन कोने के लिए पूरी तरह से संभव है जो गैर-कॉपलनर हैं। उस मामले में, आपका क्वाड वास्तव में क्वाड पर एक विकर्ण द्वारा विभाजित दो त्रिकोण होगा। वह दो विमान, सतह के मानक के दो सेट आदि हैं।

प्रत्येक उपलब्ध मॉडलिंग टूल, बनावट, प्रकाश व्यवस्था आदि के लिए हर एल्गोरिथ्म, सभी मानते हैं कि एक मॉडल प्लेन सेगमेंट से बना है, और हमारे पास मौजूद हर फॉर्मूला (सामान्य गणना के लिए क्रॉस उत्पाद पहले वाले हमारे पास हैं) पूर्ण न्यूनतम इनपुट डेटासेट का उपयोग करते हैं - तीन कोने एक विमान को परिभाषित करते हैं, और विमान वह है जो हमें फैंसी सामान के सभी करने की आवश्यकता है।

आप निश्चित रूप से क्वाड्स के साथ काम करने के लिए एक इंजन लिख सकते हैं, लेकिन आप खुद को आगे के मामले में सिर्फ हर मामले के बारे में अनदेखा करते हुए पाएंगे, सिवाय इसके कि आपको (बार-बार) यह सुनिश्चित करने की आवश्यकता होगी कि यह क्वाड को परिभाषित करने वाले अन्य तीन के साथ है। और, इस मामले का सबसे तार्किक समाधान जहां यह कॉपलनार नहीं है, वह क्वाड को दो त्रिकोणों में विभाजित करेगा। तो, क्यों नहीं बस के साथ शुरू करने के लिए?

पृथ्वी पर क्वाड्स के साथ काम करने की बात क्या होगी?

यदि आप एक क्वाड चाहते हैं, तो दो त्रिकोणों को एक साथ रखें।


2

यदि हम मानते हैं कि सह-प्लानर होने के लिए 4 अंक प्राप्त करना कोई समस्या नहीं है (जैसा कि अन्य ने बताया है, लेकिन मेरे साथ सहन करें) तो आप पाते हैं कि एक मनमाना ट्रेपेज़ियम (जो कि एक चतुर्भुज आमतौर पर कैसा दिखेगा) जब स्क्रीन स्पेस में तब्दील हो जाता है) विशेष रूप से एक त्रिकोण को प्रस्तुत करने से अलग नहीं होता है - वास्तव में, यह बहुत अच्छा काम करता है एक बार जब आप क्लिपिंग का प्रदर्शन करते हैं, तो यह अतिरिक्त कोने का परिचय दे सकता है। (कम से कम एक सॉफ़्टवेयर मॉडल में - हार्डवेयर में क्लिपिंग करने का एक सरल जानवर बल तरीका हो सकता है।)

शेष मुद्दा इसलिए प्रतिनिधित्वात्मक दक्षता में से एक है। - आप आसानी से 2 त्रिकोण के साथ एक क्वाड का प्रतिनिधित्व कर सकते हैं, और बिना किसी अतिरिक्त कोने के अगर आप एक त्रिकोण पट्टी (1 त्रिकोण के लिए 3 वर्ट्स, तो 2 त्रिकोण के लिए एक अतिरिक्त ऊर्ध्वाधर) का उपयोग करते हैं। दूसरी तरफ, यदि आप एक त्रिकोण का प्रतिनिधित्व करते हैं और एक क्वाड के साथ त्रिकोण का प्रतिनिधित्व करते हैं, तो आपको 4 कोने का उपयोग करने की आवश्यकता होती है और एक पतित होता है जो दूसरे के समान होता है। दक्षता के मामले में यह आदर्श नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.