मोशन ब्लर के लिए रे स्पेस टू ऑब्जेक्ट स्पेस


12

मेरी किरण एक विस्तृत विविधता का समर्थन करती है। उन्हें प्रतिच्छेद करने के लिए, मैं किरणों को ऑब्जेक्ट-स्पेस में बदलने की मानक तकनीक का उपयोग करता हूं। यह कल्पनात्मक रूप से काम करता है जब तक कि मैं मोशन ब्लर नहीं जोड़ता।

मैं रूपांतरण के अनुक्रम के रूप में गति प्रस्ताव को धुंधला करता हूं (चर्चा को सरल बनाने के लिए, आइए एक के बजाय ठीक दो कहते हैं)। मेरा दृष्टिकोण दोनों keyframes पर किरण के व्युत्क्रम परिवर्तन लेने के लिए और पदों / दिशाओं को फिर से चलाने के लिए है।

यह अनुवाद के लिए ठीक काम करता है, लेकिन यह रोटेशन के लिए टूट जाता है। उदाहरण के लिए, 30 और 90 डिग्री घूमने वाले दो त्रिकोण हैं:

rotation1
(4 नमूने, एमएन पुनर्निर्माण, दो नमूनों के पास से लाल नमूने आए)

कोनों पर, मैं दो नमूनों के बीच एक सीधी रेखा पर झूठ बोलने वाले नमूनों की अपेक्षा करूंगा। इसके बजाय, वे बाहर की ओर उभार लेते हैं। ये गलत है। अधिक दिलचस्प परिवर्तनों के साथ अधिक दिलचस्प दृश्यों में, यह विभिन्न प्रकार के विफलता मोड का कारण बनता है। जैसे यहाँ एक प्रोपेलर 45 रोटेशन से गुजर रहा है:

रोटेशन 2
(100 नमूने, मानदंडों की कल्पना)

बीवीएच टूटने के कारण कुछ समस्याएं हैं (यह कीमोफिक्स पर झूठ बोलने वाली वस्तुओं की विलुप्ति मानती है), लेकिन यहां तक ​​कि एक क्रूर बल रेंडर गलत है।

मैं केवल आगे रूपांतरण (परिवर्तन वस्तु, किरण नहीं) कर सकता हूं, लेकिन यह केवल उन वस्तुओं के लिए काम करता है जहां यह संभव है (केवल त्रिकोण, वास्तव में)।


मैं अपनी किरणों को किरणों को रूपांतरित करके (विशेष रूप से घूर्णन) रैखिक किरणों का उत्पादन कैसे कर सकता हूं, वस्तुओं का नहीं?

जवाबों:


7

कीफ्रेम के बीच रे पोजिशंस / दिशाओं को लेयर करना केरोफ्रेम के बीच उलटा मैट्रिस्स को फिर से लैपिंग करने और मैट्रिक्स को ट्रांसफॉर्म करने के बराबर होना चाहिए। परेशानी यह है, अगर कीफ्रेम के अलग-अलग घुमाव हैं, तो सामान्य रूप से लेयर किए गए मैट्रिक्स कुछ "अजीब" होंगे, जिसमें बाल काटना, गैर-समान पैमाने, आदि हैं।

मुझे आश्चर्य नहीं होगा अगर आपके कुछ चौराहे और शेडिंग रूटीन इस तरह के विकृत समन्वय प्रणाली में ठीक से काम नहीं करते हैं, जब तक कि आपने ऐसे मामलों के खिलाफ विशेष रूप से परीक्षण और उन्हें कठोर नहीं किया है। (उदाहरण के लिए, दो यूनिट वैक्टर के डॉट उत्पाद लेने से एक अस्थिर समन्वय प्रणाली में उतने ही उत्तर नहीं दिए जाते जितने कि ऑर्थोनॉमिक में होते हैं।)

यह केवल एक अनुमान है, लेकिन यह बेहतर हो सकता है यदि आप एक प्रक्षेप विधि का चयन करते हैं जहां अनुवाद, रोटेशन और स्केल (यदि लागू हो) को अलग से (रोटेशन भाग के लिए quaternions का उपयोग करके) पुन: संयोजित किया जाता है।


क्या आप सुनिश्चित हैं कि फॉरवर्ड ट्रांसफॉर्म की गई वस्तु को पीछे छोड़ना वैसा ही है जैसे कि पिछड़ी हुई ट्रांसफॉर्मेड किरण को फिर से लैपिंग करना? उदाहरण के लिए, मैं lerp के बाद किरण को फिर से आकार दे सकता हूं (और तदनुसार हिट दूरी को मापता हूं)। यह परिणाम नहीं बदलता है।
इमलिट

@imallett किरण का लेयर उलटा मैट्रिस्स को फिर से लैप करने के बराबर होना चाहिए, लेकिन जरूरी नहीं कि फॉरवर्ड मैट्रिसेस को लैरपिंग करें या ऑब्जेक्ट को लेरपिंग करें (क्योंकि उलटा एक लीनियर ऑपरेशन नहीं है)। और मैं नहीं सोचता कि किरण को पूरी तरह से ठीक करने के बाद किरण को फिर से आकार देना - आप अभी भी एक घिसे हुए, गैर-समान रूप से स्केल किए गए समन्वय प्रणाली में हो सकते हैं जो आपके चौराहे की दिनचर्या और इस तरह के गणित को खराब कर सकता है।
नाथन रीड

[संपादित देखें; बेहतर चित्र] कम से कम, मुझे लगता है कि पुनर्संरचना को चौराहे के साथ समस्याओं को दूर करना चाहिए - लेकिन यही मैंने सोचा था; किरण को फिर से लपेटना वस्तु को दुबकाना नहीं है। अपने जवाब में आपने सुझाव दिया था कि [उलटा?] टीआरएस और फिर पुनर्संयोजन करें। क्या इस तरह से प्रोडक्शन रेंडरर्स ऐसा करते हैं?
imallett

3

मुझे नहीं लगता कि आप एएएफ़िक्स के साथ बहुत दूर तक मिलेंगे, बल्कि एक नॉन-लीनियर इंटरपोलेशन के लिए एक एकल रैखिक सन्निकटन, लेकिन शायद यह पेपर / प्रस्तुति ग्रिबल एट अल द्वारा मोशन ब्लर में गति में मदद कर सकता है।


मैं इसे एक रैखिक सन्निकटन में तोड़ता हूं, जो काफी विशिष्ट है। कोई ऐसे कई चरणों के साथ अधिक जटिल परिवर्तनों को संभाल सकता है। मेरी समस्या परिवर्तन को अधूरा बनाने में नहीं है, लेकिन इसे रैखिक रैखिक बनाने में सही है।
imallett
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.