तैलीय / प्रदूषित जल का प्रतिपादन?


19

किसी भी shader जादूगरों को इस तरह से एक तैलीय / प्रदूषित पानी के प्रभाव को प्राप्त करने का विचार है।

तैलीय पानी

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

और मुझे नहीं पता कि उन सभी रंगों को कैसे बनाया जाए :-)। विचार?


एक बनावट का उपयोग करें ..? क्रोमेटिक रेडियल ग्रेडिएंट, कुछ विकृति को लागू करें ..
बॉबोबोबो

@bobobobo - आप जिस दिशा में देखते हैं, यह प्रभावित करती है कि कौन से रंग दिखाए गए हैं, हालांकि ... youtube.com/watch?v=NRtUoMG16ZU
रॉबर्ट फ्रेजर

1
आप en.wikipedia.org/wiki/Thin-film_interference के आधार पर एक शेडर लागू करना चाहते हैं, लेकिन मुझे नहीं पता कि लेखन के बारे में कैसे जाना जाए।
jzx

2
( gamedev.net/page/resources/_/technical/… ) मैं एक जवाब के लिए डिस्टिल नहीं कर सकता क्योंकि मुझे विषय नहीं पता है
क्षितिज

जवाबों:


25

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

यदि आप तेल की परत में अपवर्तन को अनदेखा करते हैं, तो स्थिति की ज्यामिति पर काम करते हुए, आप पा सकते हैं कि किसी भी तरंग दैर्ध्य के लिए परावर्तित प्रकाश की चमक अलग-अलग होनी चाहिए

sin(2.0 * pi * oilThickness / (dot(L, H) * wavelength)) * 0.5 + 0.5

सैद्धांतिक रूप से इसे सभी तरंग दैर्ध्य पर एकीकृत किया जाना चाहिए, लेकिन व्यवहार में आप संभवतः इसे लाल, हरे और नीले रंग के लिए कर सकते हैं - क्रमशः 700, 550 और 400 एनएम कहते हैं। तेल की मोटाई बदलने से रंग के छल्ले की स्पष्ट त्रिज्या बदल जाएगी। मैं शायद 2.0 * pi * oilThickness / wavelengthएक समान मूल्य के रूप में shader को प्रदान किए गए एक एकल RGB मान में लपेटूंगा। यदि आप चाहें तो तेल की अलग-अलग मोटाई का अनुकरण करने के लिए इसे एक बनावट से गुणा कर सकते हैं - यही शायद ऊपर की छवि में सबसे दिलचस्प बनावट देता है।

यह एक RGB रंग मान पैदा करता है जिसे आप अपने BRDF में गुणा कर सकते हैं। dot(L, H)कारक बिंदु / दिशात्मक रोशनी के लिए इस्तेमाल किया जाएगा, और आप स्थानापन्न कर सकते हैं dot(N, V)और साथ ही एक ऐसा माहौल नक्शा प्रतिबिंब को यह लागू करने के लिए वहाँ में।

डिस्क्लेमर: मैंने इसे किसी शेडर में नहीं आज़माया है, बस कुछ आरेख बनाए हैं और खुद को आश्वस्त किया है कि इसे "काम करना चाहिए" ... इसलिए यदि आप इसे आजमाते हैं तो मुझे इसके परिणाम बताएं! :)


सुन्दर सामान। शीर्ष और निचले तेल सतहों पर प्रतिबिंब क्यों हैं इसका कारण यह है कि कुछ तरंगें शीर्ष पर परिलक्षित होती हैं जबकि अन्य केवल अपवर्तित होती हैं। ये अपवर्तित तरंगें बोतलबंद सतह की ओर अग्रसर होती हैं, जहाँ उन्हें फिर से अपवर्तित या परावर्तित किया जा सकता है।
dsilva.vinicius
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.