शुरुआत में रोशनी थी
ओपनग्ल लाइटिंग, विशिष्ट होने के लिए, जिसने कुछ गणितीय परिचालनों को एक टुकड़े पर लागू करने के लिए निर्दिष्ट किया था, जिन्हें तब अंतिम रंग प्राप्त करने के लिए बनावट के साथ जोड़ा गया था।
और फिर क्वेक था
भूकंप नहीं था यह वस्तुओं के कई के लिए प्रकाश व्यवस्था के इस प्रकार का उपयोग करें। इसके बजाय यह प्रकाश को दर्शाने के लिए एक दूसरी बनावट का उपयोग करता था, जिसे अंतिम रंग प्राप्त करने के लिए ऑब्जेक्ट बनावट से गुणा (या "संशोधित") किया गया था।
हालाँकि, उस समय का हार्डवेयर एकल ऑपरेशन में इसका समर्थन नहीं करता था। तो क्वेक को दो बार दृश्य वस्तुओं को खींचने की आवश्यकता है:
- बेस टेक्सचर को बिछाने के लिए एक बार सब कुछ ड्रा करें।
- एक मॉड्यूलेट मिश्रण मोड सेट करें।
- प्रकाश बनावट लागू करने के लिए दूसरी बार सब कुछ ड्रा करें।
यह पाठ्यक्रम धीमा था; न केवल सभी ज्यामिति को बदलने और दो बार (जो उन दिनों में एक सीपीयू ऑपरेशन था) को क्लिप करने की आवश्यकता थी, लेकिन प्रत्येक पिक्सेल ऑन-स्क्रीन समाप्त होने के दौरान दो बार छुआ जा रहा था।
मल्टीटेक्स्ट दर्ज करें
Multitexture इसका समाधान था, और मूल रूप से GL_SGIS_multitexture एक्सटेंशन के माध्यम से उजागर किया गया था, जो केवल कुछ उपभोक्ता 3DFX कार्ड पर मौजूद था। मूल रूप से यह केवल दो बनावट (और मिश्रण मोड के सीमित सेट के साथ) को सम्मिश्रण करने की अनुमति देता है।
मूल GLQuake readme से उद्धृत करने के लिए :
GL_SGIS_multitexture
Multitextures समर्थन कुछ हार्डवेयर को दो के बजाय एक पास में दुनिया को प्रस्तुत करने की अनुमति देता है। GLQuake दो पासों का उपयोग करता है, एक दुनिया के बनावट के लिए और दूसरा उन लाइटमैप्स के लिए जो बनावट पर मिश्रित होते हैं। कुछ हार्डवेयर पर, GL_SIGS_multitexture समर्थित OpenGL कार्यान्वयन के साथ, यह एक पास में किया जा सकता है। इसका समर्थन करने वाले हार्डवेयर पर, आपको फ्रेम दर में 60% से 100% की वृद्धि मिलेगी। वर्तमान में, केवल 3DFX दोहरे TMU कार्ड (जैसे कि ओब्सीडियन 2220) इस विस्तार का समर्थन करते हैं, लेकिन अन्य हार्डवेयर जल्द ही अनुसरण करेंगे।
यह याद रखना महत्वपूर्ण है कि इस समय प्रभाव जैसे कि सामान्य मैपिंग, किसी अन्य प्रकार की प्रति पिक्सेल प्रकाश व्यवस्था, यहां तक कि शेड्स, और इसी तरह बस अस्तित्व में नहीं था (अच्छी तरह से वे किया था, लेकिन मुख्य रूप से सिर्फ अकादमिक कागजात और अनुसंधान परियोजनाओं में, और वास्तविक समय प्रतिपादन में उपयोग के लिए व्यवहार्य नहीं माना जाता था)।
और इसलिए वर्तमान के लिए
यहाँ से यह बहुत सुंदर है जैसा कि अन्य उत्तरों में वर्णित है। समय के साथ मल्टीटेक्स्टिंग एक मानक विशेषता बन गई, और अधिक ब्लेंड मोड उपलब्ध होने के साथ, अंततः मनमाने ढंग से shader कोड को रास्ता दे रहा है।
लेकिन क्या अपने प्रश्न के प्रयोजनों के लिए महत्वपूर्ण है यह है: में शुरुआत मानक कार्यक्षमता सिर्फ उपयोग करने में सक्षम किया जा रहा था एक एक समय में बनावट जब प्रतिपादन। एक से अधिक का उपयोग करने में सक्षम होने के नाते अतिरिक्त कार्यक्षमता थी जो केवल उच्च अंत हार्डवेयर का समर्थन करती थी, और इसलिए इसे एक नाम की आवश्यकता थी। वह नाम "दोहरी-बनावट" हो सकता है (पहले कार्यान्वयन में सिर्फ दो बनावटों का समर्थन किया गया था) लेकिन भविष्य में एक आंख के साथ "मल्टीटेक्स्चर" नाम चुना गया था।
इस सब के इतिहास पर आगे पढ़ने के लिए यहां उपलब्ध है , और इस प्रोग्रामर पर एक अच्छा ऐतिहासिक राइटअप (व्यापक संदर्भ का, और इसमें खेला जाने वाला हिस्सा बहुउद्देशीय) ।