3 पॉइंट द्वारा GN⁺ 2024-04-16 | 1 टिप्पणियां | WhatsApp पर शेयर करें

स्पेक्ट्रम के ज़रिए ray tracing को समझना

यह इस बात की पृष्ठभूमि व्याख्या है कि ray tracing में wavelength क्यों महत्वपूर्ण है और spectral ray tracing का computer art पर क्या प्रभाव पड़ता है।

Ray tracing

  • किसी दृश्य को "रोशन" करने के लिए उस path को model करना, जिसमें किरणें virtual camera और light source के बीच virtual objects से बार-बार टकराते हुए चलती हैं
  • performance के लिए कई shortcuts अपनाए जाते हैं
    • उदाहरण: light source से camera की ओर जाने वाले ray path को उल्टा trace करना
    • rays को ऐसे particles की तरह मानना जो "रंग" के अनुरूप RGB vector ले जाते हैं, और उनकी wave properties को नज़रअंदाज़ करना
  • RGB shortcut इस वजह से अच्छी तरह काम करता है क्योंकि हमारी आँखें इसी तरह काम करती हैं
    • हमारी आँखों में wavelength के प्रति संवेदनशील color-detecting cells के तीन प्रकार होते हैं (SML cone cells)

स्पेक्ट्रम को देखना

  • हम जो रंग देखते हैं वे शायद ही कभी किसी एकल wavelength से बने होते हैं; वे आमतौर पर कई wavelengths के समूह, यानी SPD (spectral power distribution), से बने होते हैं
  • एक ही रंग कई SPD के अनुरूप हो सकता है (metamerism)
    • उदाहरण: पीला रंग 580nm wavelength के अनुरूप है, लेकिन उसे लाल और हरी रोशनी के मिश्रण से भी पुनर्निर्मित किया जा सकता है
  • SPD से रंग में रूपांतरण पूरी तरह गणितीय रूप से संभव है (CIE 1931 color space)
    • यह physics, physiology और subjective experience को जोड़ने वाली एक quantitative कड़ी है

जब wavelength महत्वपूर्ण हो जाती है

  • जब किरणों की wave properties किसी दृश्य से गुजरते समय उनके path को सीधे प्रभावित करती हैं
    • उदाहरण: dispersion (prism), thin-film interference (साबुन के बुलबुले पर इंद्रधनुषी pattern)
  • thin-film interference स्पेक्ट्रम को एकल wavelengths में बाँटने के बजाय स्पेक्ट्रम के कुछ हिस्सों के contribution को बढ़ाता/घटाता है, जिससे cyan, brown जैसे non-spectral colors बनते हैं

Spectral ray tracing और computer art

  • ऐसा ray tracing जो किरणों की wave properties को ध्यान में रखता है
  • RGB colors की जगह दृश्य के हर pixel के लिए SPD बनाना, और rays की wavelength तथा phase का उपयोग करके रंगों का बेहतर अनुमान लगाना
  • यह जिज्ञासा जगाता है कि जब प्रकाश की गति को नियंत्रित करने वाले कुछ नियमों को जानबूझकर तोड़ा जाए तो क्या होता है
    • code के ज़रिए हमारी दुनिया से थोड़ा अलग एक ब्रह्मांड में camera बनाना
  • JavaScript और GLSL में लिखे गए spectral ray tracer का उपयोग करके बनाए गए कार्यों का परिचय

GN⁺ की राय

  • यह computer graphics में realistic rendering के लिए जिन physical phenomena पर विचार करना चाहिए, उन्हें अच्छी तरह समझाता है
    • खासकर वह हिस्सा प्रभावशाली है जहाँ इसे हमारी आँखों द्वारा रंग पहचानने के तरीके से जोड़ा गया है
  • यह सीधे art creation में उपयोग किए गए उदाहरण दिखाता है, इसलिए यह समझना अच्छा लगता है कि सैद्धांतिक बातें व्यवहार में कैसे लागू होती हैं
    • ray tracing के तरीके को बदलकर अवास्तविक लेकिन सुंदर visuals बनाना दिलचस्प है
  • optical simulation के अलावा scientific data visualization, VR/AR, film CG जैसे कई क्षेत्रों में spectral ray tracing तकनीक उपयोगी हो सकती है
  • deep learning आधारित rendering तकनीक के विकास के साथ पारंपरिक ray tracing की सीमाओं को पार करने के प्रयास लगातार सामने आ रहे हैं
    • आगे कौन-सी नवाचारी rendering तकनीकें बनेंगी, इसे लेकर उत्सुकता है

1 टिप्पणियां

 
GN⁺ 2024-04-16
Hacker News राय
  • मुफ़्त ई-बुक "Ray Tracing Gems II" में आधुनिक API और hardware acceleration का उपयोग करके real-time GPU ray tracing पर चर्चा की गई है, और इसमें spectral rendering पर एक chapter (Chapter 42: Efficient spectral rendering on the GPU for predictive rendering) शामिल है
  • Mitsuba, Maxwell, Wētā FX की Manuka जैसे spectral ray tracer के उदाहरण दिए गए हैं
    • Mitsuba: open source research renderer. differentiable rendering सहित कई फीचर प्रदान करता है
    • Maxwell: अलग-अलग accuracy वाले दो spectral mode प्रदान करता है. अधिक जटिल तरीका अक्सर optics में उपयोग होता है
    • Manuka: spectral-आधारित है और कई फ़िल्मों में इस्तेमाल हुआ है
  • मूल पोस्ट के लेखक की टिप्पणी:
    • spectral rendering इस बात का उदाहरण है कि ray tracing अपने-आप rendering का अंतिम पड़ाव नहीं है. कुछ लोग मानते हैं कि real-time ray tracing से rendering की समस्या हल हो गई है, लेकिन यह हक़ीक़त से काफ़ी दूर है
    • ज़्यादातर spectral rendering system thin-film interference या अन्य wave-based effect को handle नहीं करते. वास्तविक दुनिया में हैरान कर देने वाली मात्रा में detail मौजूद है
  • hyperspectral (3 channel से अधिक) image generation का प्रस्ताव:
    • spectrum पर ज़ोर देकर बच्चों की color education में इसका उपयोग किया जा सकता है
    • hyperspectral image और camera दुर्लभ रहे हैं और पारंपरिक रूप से महंगे थे, लेकिन synthetic image से इन्हें बदला जा सकता है
    • बहुत कम resolution वाले in-browser renderer के साथ lighting और material को interactive तरीके से संभालना संभव हो सकता है
    • असामान्य color vision, cataract removal के बाद UV तक देख सकने वाले इंसान, color-blind mammal, या 4-color carp जैसे दृष्टिकोण से rendering संभव है
  • खुद ray tracing implementation करके देखना अपेक्षा से आसान है. मुफ़्त किताबों या Unity-आधारित GPU tutorial की सिफ़ारिश की गई है
    • बुनियादी implementation के साथ खेलते हुए intuition पाई जा सकती है (जैसे: ray को object की ओर खिंचने या उससे दूर धकेले जाने वाले particle की तरह implement करना, पिछला reflection angle याद रखकर अगली material पर उपयोग करना आदि)
    • ज़्यादातर परिणाम अच्छे नहीं दिखे, लेकिन intuition बनाने में मदद मिली. camera को थोड़ा-थोड़ा हिलाना भी सहायक था
  • जिज्ञासा है कि सुंदरता के लिए किए गए ये बदलाव क्या दूसरी visualization में भी उपयोगी हो सकते हैं
  • distributed ray tracer में refraction implement करने की कोशिश:
    • frequency को random sample करना, color की गणना करना, और ray color को modulate करना
    • शुद्ध refracted color केवल 1/3 brightness का होता है, इसलिए परिणाम में 3 से गुणा करना पड़ता है
  • पोस्ट के अंत में साझा किए गए artwork के बारे में और जानना चाहता/चाहती हूँ. हमारे अनुभव से अलग तरीके से प्रकाश जिस वास्तविकता में काम करता है, उसे render करने का विचार आकर्षक है
  • RGB pixel की जगह spectral distribution को model करने से ray tracing performance पर क्या प्रभाव पड़ता है, इसे समझना चाहता/चाहती हूँ