2017-06-24 11 views
6

मैं ArKit में शुरू की गई विभिन्न तत्व के बीच अंतर को समझने के लिए कोशिश कर रहा हूँ और उनके शायद SceneKit में समकक्ष:ARKit SceneKit बनाम निर्देशांक

  • SCNNode.simdTransform बनाम SCNNode.transform। ARKit में, ऐसा लगता है कि लोग के बजाय SCNNode.simdTransform का उपयोग करते हैं। वे अलग कैसे होते हैं? simdTransform कॉलम प्रमुख क्रम का उपयोग करने लगता है, जबकि रूपांतरण (SCNMatrix4) पंक्ति प्रमुख है। मैं एक दूसरे को कैसे परिवर्तित करूं? बस स्थानांतरित करें? मुझे लगता है कि ट्रैकिंग simdTransform के बजाय transform का उपयोग करने पर भी काम नहीं करती है। क्या यह अपेक्षित है या सिर्फ एक छाप है? अगर मैं एक संपत्ति निर्धारित करता हूं, तो क्या होता है यदि मैं फिर दूसरा सेट करता हूं?

  • ARFrame.cameraScene.pointOfView बनाम: उनके रूपांतरण को देखते हुए, वे कुछ अलग होने लगते हैं:

// ARFrame.camera.transform (matrix_float4x4) 
-0.01 0.99 -0.11 0.02 
-0.99 0.00 0.11 0.06 
0.10 0.11 0.98 0.0 
0.0 0.0 0.0 1.0 

// sceneView.pointOfView.transform (SCNMatrix4) 
// or sceneView.pointOfView.simdTransform^T (matrix_float4x4) 
0.99 0  0.11 0 
0.01 0.99 -0.12 0 
-0.11 0.11 0.98 0 
0.03 0.6 0.0 0.99 

क्या वे एक ही शून्य एक रोटेशन हैं?

+1

_ "मुझे लगता है कि अगर मैं सिमट्रांसफॉर्म के बजाय ट्रांसफॉर्म का उपयोग करता हूं तो ट्रैकिंग भी काम नहीं करती है। क्या यह अपेक्षित है या सिर्फ एक इंप्रेशन है?" _ ;-) केवल आप ही बता सकते हैं कि यह सिर्फ आपकी इंप्रेशन थी या आपके पास सख्त सबूत थे उदाहरण के लिए एक्सकोड लॉग्स को देखकर _ [तकनीक] विश्व ट्रैकिंग प्रदर्शन संसाधन बाधाओं से प्रभावित हो रहा है_ हमें बताएं कि यह बाद वाला था, यह बहुत दिलचस्प होगा। – PDK

उत्तर

4

दोनों सीनकेट और एआरकिट में सिम प्रकार के रूप में परिभाषित प्रतीक शामिल हैं। चूंकि एआरकिट सेनेकिट आयात करता है, इसलिए सीनकिट में परिभाषित सिम प्रतीकों दोनों के लिए सुलभ हैं। सिम प्रकार समानांतर गणना सक्षम करते हैं, इसलिए उनका उपयोग करके आपके ऐप के अपडेट तर्क के प्रदर्शन में सुधार हो सकता है। जैसा कि आपने पाया है, सिम प्रकार और इसकी पुरानी सीनकेकिट या कोर ग्राफिक्स समकक्ष के बीच कनवर्ट करने का हमेशा एक सुविधाजनक तरीका नहीं है, इसलिए आपको संभवतः सिमड का उपयोग करके क्लीनर कोड मिल जाएगा।

किसी नोड के परिवर्तन को प्रभावित करने वाली किसी भी संपत्ति को अपडेट करने से इसके अन्य रूपांतरण गुण भी अपडेट होते हैं। यह स्थानीय और विश्व समन्वय के लिए भी जाता है।

cameraARFrame की संपत्ति डिवाइस के हार्डवेयर कैमरे का वर्णन करती है, न कि वर्चुअल कैमरा दृश्य प्रस्तुत करने के लिए उपयोग किया जाता है। जबकि मैं एक करीबी पत्राचार की अपेक्षा करता हूं, मेरा अनुमान है कि आप ARCamera उदाहरण मतदान कर रहे हैं SCNCamera उदाहरण रेंडर लूप के दौरान अद्यतन किया गया है। यदि आप कर सकते हैं, तो मैं उचित प्रतिनिधि विधियों से उन अपडेट को चलाने की अनुशंसा करता हूं, क्योंकि आपको पता चलेगा कि प्रासंगिक डेटा अद्यतित है।

+1

अच्छा सारांश। 'एआरएनएचओआर' बनाम 'एससीएनएनओडी' स्थिति पर अधिक के लिए [यह उत्तर] (https://stackoverflow.com/a/45182794/957768) भी देखें। – rickster