मुझे वहाँ कुछ व्यापक दृष्टिकोण करने के लिए सीएल छायांकन करना है:
- प्रतिमानों के साथ मॉडल का दोहराव और इज़ाफ़ा (मेरे लिए कोई विकल्प नहीं)
- किनारे का पता लगाने के लिए Sobel फ़िल्टर / टुकड़ा shader दृष्टिकोण
- स्टेंसिल बफर किनारे का पता लगाने के लिए दृष्टिकोण
- ज्योमेट्री (या वर्टेक्स) shader दृष्टिकोण जो चेहरे और किनारे के मानदंडों की गणना करता है
क्या मैं ज्यामिति-केंद्रित दृष्टिकोण संभालने में सही हूं, प्रकाश और लाइन मोटाई पर नियंत्रण की सबसे बड़ी मात्रा देता है, साथ ही जैसे। इलाके के लिए जहां आप पहाड़ी की सिल्हूट लाइन को एक मैदान में धीरे-धीरे विलय करते हुए देख सकते हैं?
क्या होगा अगर मुझे अपने इलाके की सतहों पर पिक्सेल प्रकाश की आवश्यकता नहीं है? (और मैं शायद सेल-आधारित वर्टेक्स- या टेक्सचरमैप-आधारित लाइटिंग / शैडोइंग का उपयोग करने की योजना नहीं बनाऊंगा।) क्या मैं तब ज्यामिति-प्रकार के दृष्टिकोण के साथ चिपके रहना बेहतर होगा, या इसके बजाय एक स्क्रीन स्पेस / टुकड़ा दृष्टिकोण के लिए जाना होगा। चीजों को सरल रखने के लिए यदि हां, तो कैसे मैं पहाड़ियों की "भनक" मिलेगा भीतर जाल सिल्हूट, बजाय केवल कि रूपरेखा के अंदर नहीं "स्याही" विवरण के साथ पूरे जाल (की रूपरेखा उर्फ? ( विचारोत्तेजक आकृति , क्रीज )।
अंत में, क्या यह संभव है कि एक ज्यामिति shader का उपयोग करके फ़्लिप-मानदंडों के दृष्टिकोण का सस्ते में अनुकरण किया जाए? इस के साथ मेरी चिंता यह है कि मैं निश्चित रूप से हर एक शीर्ष को डुप्लिकेट कर सकता हूं और इन के अनुसार स्केल कर सकता हूं, लेकिन मैं फ़्लिपिंग मानदंड, और टुकड़े टुकड़े करने वाले रंग में अलग-अलग रंग कैसे लाऊंगा?
मुझे क्या चाहिए - सिल्हूट के अंदर घुसपैठ की रेखाओं के साथ अलग-अलग लाइन की मोटाई ...
जो मैं नहीं चाहता ...
संपादित करें: आगे के शोध में निम्नलिखित बदलाव हुए हैं ...
चूंकि मेरे पास भू-भाग पर एक विशाल वर्टिकल गिनती है, यहां तक कि दूरी-आधारित LoD पर विचार करते हुए, न तो फ़्लिप-मानदंड और न ही एक ज्यामिति shader आधारित दृष्टिकोण (यहां तक कि फ्रम कलिंग के साथ) दोहराव और स्केलिंग में शामिल सरासर कम्प्यूटेशनल जटिलता के कारण एक समझदार विकल्प होगा। अपलोड किए गए कोने।
यह देखते हुए कि मुझे इलाके की सतहों पर ठोस-टोन शेडिंग के रूप में प्रति-पिक्सेल प्रकाश की आवश्यकता नहीं है, यह किसी भी चेहरे-सामान्य आधारित दृष्टिकोण पर विचार करने के लिए कम विवेकपूर्ण हो जाता है - अन्यथा सही सतह प्रकाश की आवश्यकता - इन के रूप में गणना करने के लिए स्वाभाविक रूप से काफी महंगे हैं। हालांकि यह सच है कि वे नियंत्रण की बेहतरीन डिग्री देते हैं; उदाहरण के लिए, "कलात्मक" स्ट्रोक का उपयोग करके किनारों को छाया करने की क्षमता: सुंदर, लेकिन फिर से, वास्तव में व्यापक रूप से जटिल खेल वातावरण के लिए व्यवहार्य नहीं है।
स्टैंसिल बफ़र कुछ ऐसे हैं जिनसे मैं बचना चाहता हूँ क्योंकि मैं सभी काम शेड में करना पसंद करता हूँ। (लाल रूपरेखा के साथ उपरोक्त उदाहरण एक स्टैंसिल बफर - पुराने स्कूल के साथ किया गया था।)
यह टुकड़ा shader छवि-अंतरिक्ष दृष्टिकोण छोड़ देता है। कम्प्यूटेशनल जटिलता वर्टीकल की संख्या के बजाय टुकड़े की संख्या में कम हो जाती है (मेरे मामले में, यह 10-100x कम संचालन है जितना कि मुझे ज्यामिति की छाया में करना होगा)। इसके लिए एक जी-बफ़र (एक सामान्य बफ़र और वैकल्पिक रूप से एक गहराई बफ़र से मिलकर) उत्पन्न करने के लिए एक से अधिक रेंडर पास की आवश्यकता होती है, जिसमें हम डिसकंटिनिटी फ़िल्टर (जैसे। सोबेल ऑपरेटर) लगा सकते हैं। गहराई असंतोष वह है जो विचारोत्तेजक अंतर्विरोधों और क्रेज को सक्षम बनाता है। इस दृष्टिकोण के साथ मेरी एकमात्र वक्रोक्ति, कांटेदार किनारे की चौड़ाई पर महीन नियंत्रण प्रदान करने में असमर्थता है, हालांकि टुकड़े टुकड़े में सही एल्गोरिथ्म के साथ, मुझे यकीन है कि यह संभव होगा।
तो सवाल अब और अधिक विशिष्ट हो जाता है: मैं बिल्कुल वैरिएबल किनारे पर, विशेष रूप से बाहरी सिल्हूट पर चर बढ़त चौड़ाई प्राप्त करने के बारे में कैसे जाऊंगा?