2013-01-14 88 views
6

सतह normals स्क्रीन स्थान में normals करने के लिए दुनिया अंतरिक्ष में परिभाषित को बदलने के लिए उचित तरीका क्या है करने के लिए दुनिया अंतरिक्ष normals को बदलने? मुझे नहीं लगता कि वे बस, प्रक्षेपण मैट्रिक्स से गुणा किया जा सकता है क्योंकि परिप्रेक्ष्य विभाजन क्लिप अंतरिक्ष में चीजों को बदल देती है और जहाँ तक मैं समझता हूँ, इस क्षेत्र में विमानों कि छवि विमान को समतलीय हैं समतलीय रहते हैं।स्क्रीन स्थान normals

लेकिन जिस परिवर्तन को मैं ढूंढ रहा हूं, उसके परिणामस्वरूप मानक रूपांतरित हो सकते हैं जैसे ग्राफ़िक ए में दिखाए गए नीले रंग के आदर्श मानकों को अलग-अलग स्क्रीनस्पेस मानदंडों का परिणाम होना चाहिए (क्योंकि, उनके विमान छवि विमान में coplanar हैं, वे नहीं कैमरे का सामना) - दूसरे हाथ पर ग्राफिक बी में दिखाया गया normals परिवर्तन के बाद के बाद से उनकी सतहों कैमरे का सामना, (कम या ज्यादा) बराबर होना चाहिए।

enter image description here

क्या परिवर्तन मैं देख रहा हूँ? इसकी गणना कैसे करें?

मैं कुछ स्क्रीन अंतरिक्ष प्रभाव के लिए इस की जरूरत है।

उत्तर

-1

आप एक आधार के संबंध में परिवर्तन मैट्रिक्स के लिए देख रहे हैं। इस मैट्रिक्स की गणना कैसे करें इसके चरणों के बारे में काफी बढ़िया वीडियो है। KhanAcademy video देखें।

संपादित

आप तकनीक के बारे में कोई भी जानकारी है जो आप (ओजीएल, DX, shaders, स्वयं के प्रक्षेपण, ...) का उपयोग कर रहे प्रदान नहीं किया है, लेकिन आप निश्चित रूप से स्पर्श अंतरिक्ष के बारे में कुछ लेख पढ़ना चाहिए, जैसे Messing with Tangent Space ..

+0

मुझे पता है कि टेंगेंट स्पेस से मानक या अंतरिक्ष स्थान या वस्तु के विपरीत ऑब्जेक्ट्स को कैसे परिवर्तित किया जाए। यह स्क्रीनस्पेस को कवर नहीं करता है हालांकि – user1282931

+0

लेकिन स्क्रीन स्पेस के साथ कुछ ऑब्जेक्ट्स के कनेक्ट किए गए मानक कैसे हैं ..? सामान्य हमेशा मानक होते हैं, इससे कोई फर्क नहीं पड़ता कि आप किस बिंदु पर देख रहे हैं .. – Sorceror

0

का उपयोग करके मैट्रिक्स का उपयोग करके सामान्य रूप से मॉडल (देखने के लिए) मानक से बदलते समय इसे करने की कोशिश करें।

+1

इसमें मेरी समस्या शामिल नहीं है। यह आंखों के स्थान पर आदर्श रूप से सामान्य रूप से बदलने के बारे में है। यह प्रक्षेपण – user1282931

+1

हां के बारे में नहीं है, मुझे लगता है कि यह इतना आसान नहीं है। आपके मामले में सामान्य परिवर्तन का परिणाम सतह की ** स्थिति ** पर निर्भर करता है जिसमें यह सामान्य है ... – kerim

+0

@ user1282931 - क्या आप आंखों के स्थान पर अपने स्क्रीन-स्पेस प्रभाव प्रदर्शन कर सकते हैं? – kerim

0

जाना चाहिए तुम्हें एक मनमाना 4x4 मैट्रिक्स द्वारा बिंदु पी में सामान्य एन बदलना चाहते हैं।

Transform(P) = (T * P)/dot(W,P) 

अब, अनुमान सामान्य देखा जा सकता है: मॉडल हिस्सा टी (होने रोटेशन, पैमाने और अनुवाद) के साथ मैट्रिक्स और अंतिम पंक्ति के साथ भाग डब्ल्यू के रूप में यह हमारे कि कहने के लिए अनुमति देता है प्रतिनिधित्व करते हैं एक सीमा (घ -> 0) के रूप में की:

dot(W,N) * (Transform(N) - Transform(P))/dot(W,P) 

यह अपरीक्षित और सत्यापित नहीं है:

(Transform(P+dN) - Transform(P))/d 

इस समीकरण का विस्तार और फिर वहां से "डी" दोनों नामजद करने और हर से पार करने के इस सूत्र की ओर जाता है , लेकिन मैंने सोचा कि इस सवाल के सकारात्मक जवाबों की कमी के कारण मैं इसे एक शॉट दूंगा;)