सभी ज्यामिति के माध्यम से "कट" छेद को हिलाएं


11

मैं सभी ज्योमेट्री के माध्यम से "कटौती" करने वाला एक शेड कैसे बना सकता हूं, केवल एकता में समाशोधन पृष्ठभूमि का प्रतिपादन? एक उदाहरण:

यहाँ छवि विवरण दर्ज करें

यह एक विशाल सफेद बॉक्स के आकार के कमरे में एक प्रिज्म है। प्रिज्म की सतह दृश्य के स्काईबॉक्स (एक तारों वाला आकाश) का प्रतिपादन कर रही है। मैंने कई कैमरों का उपयोग किया, जो कि बहुत ही अक्षम है ... बस एक तरीका होना चाहिए जिसमें शेड्स हों।

मैं यह कैसे कर सकता हूँ?

जवाबों:


15

ठीक है, अंत में यह पता लगा!

यहाँ छवि विवरण दर्ज करें

आप देखते हैं कि सिलेंडर के माध्यम से गोलाकार जाल कैसे कटता है और आसमानी रास्ते में गिर जाता है। मुझे यह पता लगाने में अपेक्षा से अधिक समय लगा, लेकिन विकी पृष्ठ ( http://wiki.unity3d.com/index.php/DepthMask ) के लिए धन्यवाद, मुझे यह सब ठीक लगा।

विकी पेज में shader सेटअप का उपयोग करने से पहले मैं एक ही परिणाम प्राप्त करने के लिए अलग-अलग क्लीयरिंग / डेप्थ फ्लैग के साथ तीन अलग-अलग कैमरों का उपयोग कर रहा था। यह काम किया लेकिन यह पूरी तरह से ऑय्या पर घुट गया। उपरोक्त समाधान के लिए केवल एक कैमरे की आवश्यकता होती है और बहुत तेजी से चलता है।

इसलिए मैंने सीन को ऐसे सेट किया ...

  1. एक यथार्थवादी स्काईबॉक्स जोड़ा (नासा)

  2. कुछ आकार जोड़े

  3. विमान, क्षेत्र और सिलेंडर के लिए SetRenderQueue स्क्रिप्ट को जोड़ा

  4. गोले पर कतार क्रम को 2999 पर सेट करें (अन्य वस्तुएँ 3000 पर हैं)

  5. फिर क्षेत्र में डेप्थमास्क शेडर को जोड़ा

बस। कोई प्रश्न, मुझे बताइये!


2
D'oh, मैं पूरी तरह से अपनी पोस्ट में समस्या के ऊपर सोच रहा था (मैं दीवारों / फर्श पर फ्लैट छेद के जाल के बारे में सोच रहा था, वास्तव में)। लिंक किए गए समाधान में एक 3 डी होल ऑब्जेक्ट दिखाई देता है, और इस मामले के लिए दिखाया गया समाधान बहुत सरल है - आपको वास्तव में ऐसा करने की ज़रूरत है कि किसी भी रंग को लिखे बिना जेड-बफर में 'होल' लिखें, और सुनिश्चित करें कि छेद है जल्दी खींचा।
ब्लूसक्रॉन

@bluescrn कोई चिंता नहीं! मैं विस्तृत पोस्ट की सराहना करता हूं। :)
CalebHC

2

आप चाहते हैं कि प्रभाव पाने के लिए विकल्पों में से कुछ - लेकिन वे आ लागत:

  • स्टैंसिल बफर या डेस्टिनेशन अल्फा चैनल में छेद लिखें, फिर स्काईबॉक्स को ड्रा करें, एक उपयुक्त स्टैंसिल टेस्ट या अल्फा ब्लेंड का उपयोग करके, और बिना जेड-टेस्ट के?

या

  • फ़्रेम की शुरुआत में एक बनावट के लिए स्काईबॉक्स को रेंडर करें, और प्रोजेक्ट करें कि 'होल ज्यामिति' पर

मुझे संदेह है कि z- बफर का उपयोग / दुरुपयोग करके ऐसा करने का एक तरीका भी होना चाहिए - लेकिन आप शायद उनके असली Z का उपयोग करके 'छेद बहुभुज' का परीक्षण करना चाहते हैं, तो एक अलग Z लिखें। आप शायद उपयोग कर सकते हैं एकाधिक पास और स्टेंसिल बफर - छेद को 3 बार ड्राइंग के साथ रेंडरस्ट्रेट सेट के साथ इस तरह से काम कर सकते हैं:

  • पास 1: कोई जेड-टेस्ट नहीं, होल पॉलिस के तहत स्पष्ट स्टेंसिल
  • दर्रा 2: सामान्य z- परीक्षण, वृद्धि स्टैंसिल मूल्य (जहाँ गहराई परीक्षण पास होता है)
  • पास 3: स्पष्ट जेड जहां स्टैंसिल> ​​0

आपको अभी भी एक विशिष्ट क्रम में आकर्षित करने की आवश्यकता होगी - पहले पर्यावरण, फिर छेद, और अंत में स्काईबॉक्स अंतिम, हालांकि।

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