Microsoft Talisman
टैलिसमैन एक माइक्रोसॉफ्ट परियोजना थी जो एक नई 3डी ग्राफिक्स वास्तुकला का निर्माण करने के लिए थी जो स्क्रीन पर 2डी "उप-छवियों" को जल्दी से संयोजित करने पर आधारित थी, जो टाइल प्रतिपादन का एक रूपांतरण था। सिद्धांत रूप में, यह दृष्टिकोण 3डी खेलों के लिए आवश्यक मेमोरी बैंडविड्थ की मात्रा को नाटकीय रूप से कम कर देगा और इस तरह कम लागत वाले ग्राफिक्स त्वरकों की ओर ले जाएगा। यह परियोजना पहले उच्च प्रदर्शन वाले 3डी त्वरकों की शुरुआत के दौरान हुई थी, और ये प्रदर्शन और कीमत दोनों में तेजी से टैलिसमैन को पीछे छोड़ गए। कोई भी ताबीज-आधारित प्रणाली कभी भी व्यावसायिक रूप से जारी नहीं की गई थी, और परियोजना को अंततः 1990 के दशक के अंत में रद्द कर दिया गया था। विवरण पारंपरिक 3डी प्रदर्शन के लिए 3डी छवि बनाने में चरणों की एक श्रृंखला होती है। सबसे पहले, प्रदर्शित की जाने वाली वस्तुओं को अलग-अलग मॉडलों से मेमोरी में लोड किया जाता है। प्रदर्शन प्रणाली तब मॉडल को एक सामान्य समन्वय प्रणाली, विश्व दृष्टिकोण में बदलने के लिए गणितीय कार्यों को लागू करती है। इस विश्व दृष्टिकोण से, बहुभुज (आमतौर पर त्रिकोण) की एक श्रृंखला बनाई जाती है जो एक विशेष दृष्टिकोण, कैमरे से देखे जाने वाले मूल मॉडल का अनुमान लगाती है। इसके बाद, एक संयोजन प्रणाली त्रिकोणों को प्रस्तुत करके और बाहर की ओर बनावट लागू करके एक छवि का उत्पादन करती है। बनावट छोटी छवियाँ हैं जिन्हें यथार्थवाद उत्पन्न करने के लिए त्रिकोणों पर चित्रित किया जाता है। परिणामी छवि को फिर विभिन्न विशेष प्रभावों के साथ जोड़ा जाता है, और प्रदर्शन बफर में स्थानांतरित किया जाता है। इस बुनियादी वैचारिक लेआउट को डिस्प्ले पाइपलाइन के रूप में जाना जाता है। सामान्य शब्दों में, प्रदर्शन एक फ्रेम से दूसरे फ्रेम में थोड़ा बदलता है; आम तौर पर फ्रेम से फ्रेम में किसी भी संक्रमण के लिए, प्रदर्शन में वस्तुओं के थोड़ा आगे बढ़ने की संभावना होती है, लेकिन उनके आकार और बनावट में बदलाव की संभावना बिल्कुल नहीं होती है। ज्यामिति को बदलना सीपीयू के लिए एक अपेक्षाकृत हल्का ऑपरेशन है, जो मेमोरी से बनावट को लोड करना काफी अधिक महंगा है, और फिर परिणामी प्रस्तुत फ्रेम को फ्रेमबफर को भेजना सबसे महंगा ऑपरेशन है। उदाहरण के लिए, 24-बिट रंग के साथ युग की रेंडरिंग सेटिंग्स पर विचार करें, जिसमें त्रिकोणीय फ़िल्टरिंग के साथ बुनियादी 3डी कंपोजिटिंग हो और कोई एंटी-एलियासिंग न होः 640 x 480 रिज़ॉल्यूशन पर इसे 1,900 Mbit/s मेमोरी बैंडविड्थ की आवश्यकता होगी; 1024 x 768 रिज़ॉल्यूशन पर इसे 4,900 Mbit/s की आवश्यकता होगी। यहां तक कि बुनियादी एंटी-एलियासिंग से भी उन आंकड़ों को लगभग दोगुना करने की उम्मीद की जाएगी। संदर्भ के लिए, एस. जी. आई. की तत्कालीन वर्तमान रियलिटी इंजन 2 मशीनों में लगभग 10,000 एम. बी. टी./एस. की तत्कालीन उच्च मेमोरी बैंडविड्थ थी, यही कारण था कि इन मशीनों का व्यापक रूप से 3डी ग्राफिक्स में उपयोग किया जाता था। ए. जी. पी. 2एक्स. का उपयोग करने वाला उस युग का एक विशिष्ट पी. सी. केवल 508 एम. बिट/एस. की पेशकश कर सकता था। इस समस्या पर पहला हमला ग्राफिक्स त्वरक की शुरुआत थी जो बनावट भंडारण और मानचित्रण को संभालती थी। मूल वूडू ग्राफिक्स की तरह इन कार्डों में सीपीयू प्रत्येक फ्रेम के लिए ज्यामिति की फिर से गणना करता था, और फिर कार्ड को समन्वय की परिणामी श्रृंखला भेजता था। कार्ड ने फिर शेष ऑपरेशन को संभाला; ज्यामिति पर बनावट को लागू करना, फ्रेम को प्रस्तुत करना, फ़िल्टरिंग या एंटी-एलियासिंग लागू करना, और परिणामों को एक स्थानीय फ्रेमबफर में आउटपुट करना। इस तरह की प्रणाली में बैंडविड्थ की आवश्यकता नाटकीय रूप से कम हो गई थी; 10,000 त्रिभुजों वाले एक दृश्य के लिए 500 से 1000 kbit/s की आवश्यकता हो सकती है, जो इस बात पर निर्भर करता है कि त्रिभुजों के बीच कितने ज्यामिति बिंदुओं को साझा किया जा सकता है। जैसे-जैसे दृश्य की जटिलता बढ़ती गई, वस्तुओं के एक निश्चित समूह के लिए ज्यामिति को फिर से उत्पन्न करने की आवश्यकता अपने आप में एक बाधा बनने लगी। प्रदर्शन में बहुत अधिक सुधार हो सकता है यदि ग्राफिक्स कार्ड भी बहुभुज को संग्रहीत और हेरफेर करता है। ऐसी प्रणाली में, पूरी प्रदर्शन पाइपलाइन को कार्ड पर चलाया जा सकता है, जिसके लिए सीपीयू के साथ न्यूनतम बातचीत की आवश्यकता होती है। इसके लिए ग्राफिक्स कार्ड को अधिक "स्मार्ट" होने की आवश्यकता होगी; जैसा कि बनावट को लागू करने में शामिल बहुत ही सरल कार्यों के विपरीत, कार्ड में अब एक पूर्ण प्रोसेसर होना चाहिए जो 3डी मॉडलिंग में उपयोग किए जाने वाले कार्यों की गणना करने में सक्षम हो। उस समय कई कंपनियाँ इस मार्ग की खोज कर रही थीं, तथाकथित "परिवर्तन और प्रकाश" कार्ड या टी एंड एल, लेकिन प्रणालियों की जटिलता और लागत काफी दिखाई दी। इस अवधि के दौरान अध्ययन किया गया एक समाधान टाइल प्रतिपादन की अवधारणा थी। यह इस अवलोकन पर आधारित था कि कैमरे की स्थिति में छोटे परिवर्तनों को छोटी 2डी छवियों, "टाइल्स" में हेरफेर करके अनुकरण किया जा सकता है। उदाहरण के लिए, दृश्य में कैमरे की गति को प्रत्येक टाइल को लेकर और इसे थोड़ा बड़ा बनाकर अनुकरण किया जा सकता है। इसी तरह, दृश्य में अन्य आंदोलनों को उपयुक्त एफ़ाइन परिवर्तन के अनुप्रयोग के साथ अनुकरण किया जा सकता है। हालाँकि, यह प्रक्रिया केवल अनुमानित है, जैसे-जैसे आंदोलन बढ़ेगा, दृश्य निष्ठा कम हो जाएगी। इस तरह की प्रणाली ज्यामिति की पुनः गणना करने की आवश्यकता को औसतन हर दो से तीन फ्रेम तक कम कर सकती है। इस दृष्टिकोण के साथ समस्या यह है कि सभी टाइलों को हर बार फिर से प्रस्तुत नहीं किया जाना चाहिए, केवल वे जिनमें कैमरे के करीब की वस्तुएं हों। यदि पूरी ज्यामिति को कार्ड पर भेजा जाता है तो इस कार्य को पूरी तरह से कार्ड पर संभाला जा सकता है, लेकिन इसके लिए टी एंड एल सिस्टम के समान जटिलता वाले कार्ड की आवश्यकता होती है। यदि ज्यामिति को सीपीयू के नियंत्रण में रखा जाता है, तो आदर्श रूप से कार्ड को सीपीयू को केवल उन वस्तुओं को टाइलों में फिर से प्रस्तुत करने के लिए कहने में सक्षम होना चाहिए जो पुरानी हैं। कई मामलों में, इसके लिए सीपीयू की रेंडरिंग पाइपलाइन को बदलने की आवश्यकता होगी। किसी भी स्थिति में, कार्ड और/या चालकों को वस्तुओं के क्रम और स्थिति के बारे में जानने की आवश्यकता होती है, कुछ ऐसा जो आम तौर पर कोड में छिपा होता है। तालिस्मन तालिस्मन सॉफ्टवेयर और हार्डवेयर का एक पूरा समूह था जिसने टाइल प्रतिपादन समस्या को हल करने का प्रयास किया। सिस्टम ने टाइलों और उनके भीतर की वस्तुओं के बारे में कुछ जानकारी साझा की ताकि यह पता लगाया जा सके कि कौन सी टाइलें पुरानी थीं। यदि कोई टाइल पुरानी हो जाती है, तो सीपीयू को उस टाइल में वस्तुओं को फिर से प्रस्तुत करने के लिए कहा जाता है, और परिणाम को ड्राइवर और फिर कार्ड में वापस भेजने के लिए कहा जाता है। एक बार कार्ड पर एक विशेष टाइल प्रस्तुत किए जाने के बाद, इसे संपीड़ित प्रारूप में कार्ड पर संग्रहीत किया जाता था ताकि इसे भविष्य के फ्रेम पर फिर से उपयोग किया जा सके। माइक्रोसॉफ्ट ने गणना की कि प्रत्येक टाइल का औसतन लगभग चार फ्रेमों के लिए पुनः उपयोग किया जा सकता है, जिससे सीपीयू पर भार लगभग चार गुना कम हो जाता है। टैलिसमैन में, छवि बफ़र्स को 32 x 32 पिक्सेल "भागों" में विभाजित किया गया था जिन्हें व्यक्तिगत रूप से 3डी वस्तुओं और सीपीयू द्वारा प्रदान किए गए बनावट का उपयोग करके प्रस्तुत किया गया था। टुकड़ों के लिए संकेतों को फिर प्रदर्शन पर प्रत्येक 32 स्कैन-लाइनों के लिए एक जेड-ऑर्डर (सामने से पीछे) सूची में संग्रहीत किया गया था। एक चिंता यह है कि टुकड़ों को साफ-सुथरे तरीके से "एक साथ सिलवाया" नहीं जा सकता है, एक ऐसी समस्या जो कभी-कभी सॉफ्टवेयर प्रतिपादन का उपयोग करके विभिन्न वीडियो गेम में दिखाई देती है। इससे बचने के लिए, टैलिसमैन ने प्रत्येक खंड के लिए एक अलग "एज बफर" भी संग्रहीत किया जो एक "अतिप्रवाह" क्षेत्र को संग्रहीत करता है जो मानचित्रण में अंतराल को कवर करेगा। एक पारंपरिक 3डी प्रणाली में, ज्यामिति को समय-समय पर उत्पन्न किया जाता है, रचना के लिए कार्ड को भेजा जाता है, एक फ्रेमबफर में बनाया जाता है, और फिर अंततः प्रदर्शन के लिए वीडियो हार्डवेयर द्वारा उठाया जाता है। टैलिसमैन सिस्टम ने अनिवार्य रूप से इस प्रक्रिया को उलट दिया; स्क्रीन को 32-लाइन-हाई स्ट्रिप्स में विभाजित किया गया था, और जब वीडियो हार्डवेयर इन स्ट्रिप्स में से एक को खींच रहा था, तो हार्डवेयर टैलिसमैन साइड को कॉल करेगा और उसे अगली स्ट्रिप के लिए विवरण तैयार करने के लिए कहेगा। सिस्टम वर्तमान कैमरा स्थान को देखते हुए उस पट्टी में दिखाई देने वाले किसी भी हिस्से को पुनः प्राप्त करके प्रतिक्रिया देगा। विशिष्ट मामले में कई हिस्सों को अन्य हिस्सों द्वारा अस्पष्ट कर दिया जाता है, और संयोजन के दौरान उन्हें नजरअंदाज किया जा सकता है, जिससे समय की बचत होती है। यह हिस्सों की जेड-छँटाई का कारण है, जो उन्हें "दृश्यता क्रम" में कुशलता से पुनः प्राप्त करने की अनुमति देता है। यदि टुकड़ों को विरूपण के बिना संशोधित किया जा सकता है, तो चंक को जगह-जगह अद्यतन करने के लिए उचित एफ़ाइन परिवर्तन को बुलाया गया था। यदि यह नहीं हो सका, मान लीजिए कि पिछले पूर्ण अद्यतन के बाद से कैमरा बहुत अधिक चला गया था, तो सीपीयू को उस हिस्से के लिए नई ज्यामिति प्रदान करने के लिए कहा गया था, जिसे कार्ड ने फिर प्रस्तुत किया और भंडारण में वापस रखा। टैलिसमैन के पास फ्रेमबफर का कोई एनालॉग नहीं था, जो मॉनिटर की स्कैन लाइन के स्क्रीन के नीचे बढ़ने पर सीधे स्क्रीन पर मांग पर भागों को प्रस्तुत करता था। यह अटारी 2600 के साथ एक दिलचस्प एनालॉग है, जो स्क्रीन पर 2डी छवियों को प्रस्तुत करने के लिए एक समान प्रणाली का उपयोग करता है, एक विधि जिसे "रेसिंग द बीम" के रूप में जाना जाता है। दोनों ही मामलों में, यह आवश्यक मेमोरी की मात्रा को कम कर देता है, और डिस्प्ले सिस्टम और वीडियो हार्डवेयर के बीच मेमोरी बैंडविड्थ का उपयोग किया जा रहा है। दोनों ही मामलों में इसके लिए वीडियो प्रणाली और इसे चलाने वाले कार्यक्रमों के बीच नाटकीय रूप से सख्त एकीकरण की भी आवश्यकता थी। टैलिसमैन के मामले में, कार्यक्रमों को अपनी वस्तुओं को एक विशेष प्रारूप में संग्रहीत करने की आवश्यकता थी जिसे टैलिसमैन सॉफ्टवेयर ड्राइवर समझते थे, जिससे इसे इंटरप्ट के दौरान मेमोरी से जल्दी से उठाया जा सकता था। इतिहास परिचय टैलिसमैन प्रयास माइक्रोसॉफ्ट का उन अवधारणाओं का व्यावसायीकरण करने का प्रयास था जिन पर कुछ समय से प्रयोग किया जा रहा था। विशेष रूप से, चैपल हिल में उत्तरी कैरोलिना विश्वविद्यालय में हेवलेट-पैकार्ड अनुसंधान प्रयोगशाला में विकसित पिक्सेलफ्लो प्रणाली को टैलिसमैन का प्रत्यक्ष जनक माना जा सकता है। जब टैलिसमैन को पहली बार 1996 की SIGGRAPH बैठक में व्यापक रूप से सार्वजनिक किया गया था, तो उन्होंने एक ग्राफिक्स सबसिस्टम को लागू करने की लागत में नाटकीय कमी का वादा किया था। उन्होंने अन्य कंपनियों के प्रदर्शन प्रणालियों में शामिल करने के लिए टैलिसमैन की अवधारणा को बेचने के लिए विक्रेताओं के साथ काम करने की योजना बनाई। अर्थात्, तालिस्मैन को एक बड़ी मीडिया चिप का हिस्सा होने की उम्मीद थी, जो एक पूरी 3डी प्रणाली के विपरीत थी जो एक प्रणाली में अकेले खड़ी होगी। उनकी मूल प्रणाली 32 बिट/पिक्सेल पर 1024 x 768 डिस्प्ले पर 20-30,000 बहुभुज का समर्थन करेगी, जिसमें 40 पिक्सेल/सेकंड बहुभुज प्रतिपादन दर और 320 पिक्सेल/सेकंड छवि परत संयोजन दर होगी। उस समय, माइक्रोसॉफ्ट कई विक्रेताओं के साथ काम कर रहा था ताकि एस्कलांटे के रूप में जाना जाने वाला एक संदर्भ कार्यान्वयन विकसित किया जा सके। सैमसंग और 3डीओ एकल-चिप डीएसपी-जैसे "मीडिया सिग्नल प्रोसेसर" (एम. एस. पी.) को डिजाइन करने के लिए मिलकर काम कर रहे थे, जिसमें अतिरिक्त मीडिया कार्यक्षमता के साथ टैलिसमैन कार्यक्षमता को जोड़ा गया था। सिरस लॉजिक एक वी. एल. एस. आई. चिप प्रदान करेगा जो एम. एस. पी. द्वारा स्मृति में रखे गए डेटा को पुनः प्राप्त करेगा, प्रभाव लागू करेगा और इसे प्रदर्शन के लिए भेजेगा। "पॉलीगॉन ऑब्जेक्ट प्रोसेसर" (पी. ओ. पी.) के रूप में जानी जाने वाली इस चिप को समय-समय पर एक अन्य सिरस लॉजिक चिप, "इमेज लेयर कंपोजिटर" (आई. एल. सी.) द्वारा पोल किया जाता था, जिसे वीडियो सर्किटरी से जोड़ा जाता था। इसके अतिरिक्त, एस्केलांटे का इरादा दो 600 मेगाहर्ट्ज 8-बिट चैनलों पर 4 एमबी आर. डी. आर. ए. एम. की सुविधा प्रदान करना था, जो 1.2 जी. बी./एस. थ्रूपुट की पेशकश करता है। बाद में फिलिप्स ने अपने ट्राइमीडिया प्रोसेसर के एक नियोजित नए संस्करण के साथ मैदान में प्रवेश किया, जिसने एक ही सीपीयू में अधिकांश टैलिसमैन और इसी तरह की योजनाओं के साथ ट्राइडेंट माइक्रोसिस्टम को लागू किया। यह टैलिसमैन परियोजना के बीच में था कि प्रथम-व्यक्ति निशानेबाज शैली खेल में सामने आने लगी। इसने त्वरकों के लिए बाजार की मांग पैदा की जिसका उपयोग न्यूनतम परिवर्तनों के साथ मौजूदा खेलों के साथ किया जा सकता था। जब तक एस्केलेन्ट संदर्भ डिजाइन उत्पादन के लिए तैयार था, तब तक बाजार की ताकतों ने पहले से ही इतने बेहतर प्रदर्शन के साथ नए कार्ड डिजाइनों की एक श्रृंखला का परिणाम दिया था कि टैलिसमैन कार्ड बस प्रतिस्पर्धा नहीं कर सकते थे। अत्यधिक उच्च गति की अनुमति देने के लिए बड़ी मात्रा में रैम वाले कार्डों ने बैंडविड्थ समस्या को हल किया, बस चतुराई से कार्यान्वयन के माध्यम से इसे हल करने का प्रयास करने के बजाय समस्या को क्रूरता से मजबूर किया। इसके अतिरिक्त, टैलिसमैन अवधारणा के लिए प्रदर्शन प्रणाली और इसका उपयोग करने वाले सॉफ्टवेयर के बीच कड़ी एकीकरण की आवश्यकता थी। उस समय बाजार में आने वाले नए 3डी कार्डों के विपरीत, टैलिसमैन सिस्टम को अपने हिस्सों को अपडेट करने के लिए सीपीयू को छवि के कुछ हिस्सों को फिर से प्रस्तुत करने के लिए कहना होगा। इन अनुरोधों का जवाब देने के लिए खेलों की स्मृति में एक विशिष्ट संगठन होना आवश्यक था। इस कार्य में विकासकर्ताओं की सहायता के लिए, डायरेक्ट3डी को टैलिसमैन की जरूरतों से अधिक निकटता से मेल खाने के लिए बदल दिया गया था। हालाँकि, किसी भी खेल के लिए जो पहले से ही लिखा जा चुका था, या जो टैलिसमैन से बंधे नहीं रहना चाहते थे, इसने डी3डी प्रणाली को धीमा और काफी कम दिलचस्प बना दिया। गायब होना इन परिवर्तनों के परिणामस्वरूप, टैलिसमैन कभी भी एक वाणिज्यिक उत्पाद नहीं बना। सिरस लॉजिक और सैमसंग दोनों ने 1997 में कुछ समय के लिए सिस्टम को छोड़ दिया, जिससे माइक्रोसॉफ्ट को 1997 में एस्कलांटे को जारी करने की योजना को छोड़ना पड़ा, और बाहरी पर्यवेक्षकों को ऐसा लगा कि पूरी परियोजना मर चुकी थी। हालाँकि, इसके तुरंत बाद एक संक्षिप्त पुनर्जन्म हुआ, जब फुजित्सु ने एस3 ग्राफिक्स और एटीआई टेक्नोलॉजीज में इसी तरह की परियोजनाओं की अफवाहों के साथ 1998 में उपलब्ध होने वाले एकल-चिप कार्यान्वयन पर काम करने का दावा किया। इनमें से कोई भी प्रणाली कभी नहीं भेजी गई और टैलिसमैन को चुपचाप मार दिया गया। यह तीसरे पक्ष के ग्राफिक्स त्वरक विक्रेताओं के साथ-साथ माइक्रोसॉफ्ट के भीतर के लोगों के लिए बहुत खुशी की बात थी जिन्होंने डायरेक्टएक्स के साथ बाजार में उनका समर्थन किया। विरासत फिर भी, तालिस्मन प्रणाली में अग्रणी कई विचार तब से अधिकांश त्वरकों में आम हो गए हैं। विशेष रूप से, बनावट संपीड़न का अब व्यापक रूप से उपयोग किया जाता है। हाल के कार्डों पर, प्रदर्शन को क्रमबद्ध करते समय स्मृति की माँग को कम करने के लिए जेड-बफ़र्स पर संपीड़न का भी उपयोग किया गया है। प्रदर्शन को क्रमबद्ध करने के लिए "भागों" का उपयोग करने के विचार का उपयोग कम संख्या में कार्डों में भी किया गया है, जिसे टाइल आधारित प्रतिपादन के रूप में जाना जाता है। विशेष रूप से मोबाइल उपकरणों (जैसे सेल फोन) के लिए डिज़ाइन किए गए कई ग्राफिक्स प्रोसेसर एक टाइल-आधारित दृष्टिकोण का उपयोग करते हैं। तालिस्मैन का केवल एक प्रमुख विचार, केवल "आवश्यकता पड़ने पर" ज्यामिति के अद्यतन के लिए पूछना, तब से प्रयास नहीं किया गया है। संदर्भ बाहरी लिंक चिकन क्रॉसिंग, टैलिसमैन अवधारणाओं का उपयोग करके वास्तविक समय में प्रस्तुत की गई लघु फिल्म, जिसे सिगग्राफ '96 3डी प्रतिपादन टैलिसमैन में प्रस्तुत किया गया है।