Streetscape Geometry API किसी सीन में इलाके, इमारतों या अन्य स्ट्रक्चर की ज्यामिति उपलब्ध कराता है. ज्यामिति का इस्तेमाल हिट-टेस्ट एपीआई के ज़रिए एआर कॉन्टेंट को शामिल करने, रेंडर करने या उसमें करने के लिए किया जा सकता है. Streetscape ज्यामिति डेटा, Google Street View की तस्वीरों के ज़रिए लिया जाता है.
Geospatial API को सेट अप करना
Streetscape Geometry का इस्तेमाल करने के लिए, आपको अपने प्रोजेक्ट में Geospatial API को सेट अप करना होगा. Geospatial API को सेट अप करने के लिए, Geospatial API को चालू करने से जुड़े निर्देशों का पालन करें.
Streetscape ज्यामिति चालू करें
ArGeospatialMode
को ArGeospatialModeEnabled
और ArStreetscapeGeometryMode
को ArStreetscapeGeometryModeEnabled
पर सेट करने पर Geospatial API को Streetscape जियोमेट्री डेटा मिल जाता है.
// Create a session config. ArConfig* ar_config = NULL; ArConfig_create(ar_session, &ar_config); // Enable the Geospatial API. ArConfig_setGeospatialMode(ar_session, ar_config, AR_GEOSPATIAL_MODE_ENABLED); CHECK(ArSession_configure(ar_session, ar_config) == AR_SUCCESS); // Enable Streetscape Geometry. ArConfig_setStreetscapeGeometryMode(ar_session, ar_config, AR_STREETSCAPE_GEOMETRY_MODE_ENABLED); CHECK(ArSession_configure(ar_session, ar_config) == AR_SUCCESS); // Release config resources. ArConfig_destroy(ar_config);
ARCore सेशन में Streetscape ज्यामिति पाएं
नतीजे फ़िल्टर करने के लिए,ArSession_getAllTrackables()
और AR_TRACKABLE_STREETSCAPE_GEOMETRY
का इस्तेमाल करें.
ArTrackableList* trackable_list = NULL; ArTrackableList_create(ar_session, &trackable_list); ArSession_getAllTrackables(ar_session, AR_TRACKABLE_STREETSCAPE_GEOMETRY, trackable_list);
ArStreetscapeGeometry
के बारे में जानें
ArStreetscapeGeometry
में किसी बिल्डिंग की जानकारी शामिल है:
-
ArStreetscapeGeometry_getType()
StreetscapeGeometry की पहचान इलाके या इमारत के तौर पर करता है. -
ArStreetscapeGeometry_acquireMesh()
ऐसा पॉलीगॉनArMesh
पाएं जो इस इलाके या इमारत से मेल खाता हो. -
ArStreetscapeGeometry_getMeshPose()
ज्यामिति के मूल के बारे में बताता है.ArMesh
के सभी पॉइंटArStreetscapeGeometry_getMeshPose()
तक बदल जाने चाहिए. -
ArStreetscapeGeometry_getQuality()
मेश डेटा की क्वालिटी देता है. जानकारी के लेवल CityGML 2.0 स्टैंडर्ड में बताए गए हैं.
बिल्डिंग एलओडी 1
AR_STREETSCAPE_GEOMETRY_QUALITY_BUILDING_LOD_1
में दीवार के ऊपरी हिस्से से बाहर की ओर बढ़ाए गए फ़ुटप्रिंट शामिल हैं. इमारत की ऊंचाई गलत हो सकती है.
बिल्डिंग एलओडी 2
AR_STREETSCAPE_GEOMETRY_QUALITY_BUILDING_LOD_2
में हाई फ़िडेलिटी ज्यामिति होगी. मेश की दीवारें और छतें, इमारत के आकार से काफ़ी हद तक मेल खाएगी. चिमनी या छत के वेंटिलेशन जैसी छोटी सुविधाएं, अब भी मेश के बाहर से निकल सकती हैं.
ArMesh
के बारे में जानें
ArMesh
एक पॉलीगॉन मेश है, जो Streetscape ज्यामिति का सरफ़ेस रीकंस्ट्रक्शन दिखाता है.
हर ArMesh
में एक वर्टेक्स बफ़र और इंडेक्स बफ़र होता है:
ArMesh_getVertexListSize()
इस मेश में वर्टेक्स की संख्या का पता लगाता है.ArMesh_getVertexList()
के सापेक्ष निर्देशांक में, मेश शीर्षों की जुड़ी हुई स्थिति पाएंArStreetscapeGeometry_getMeshPose()
.ArMesh_getIndexListSize()
इस मेश में इंडेक्स की संख्या की जानकारी हासिल करता है.ArMesh_getIndexList()
चेहरे को बनाने वाले शीर्षों के इंडेक्स पाएं.
ArStreetscapeGeometry
में एआर (ऑगमेंटेड रिएलिटी) कॉन्टेंट अटैच करें
Streetscape की ज्यामिति में एआर कॉन्टेंट अटैच करने के दो तरीके हैं:
- जियोस्पेशियल डेप्थ चालू करें और डेप्थ हिट-टेस्ट का इस्तेमाल करें. यह सुझाया गया और आसान तरीका है.
ArStreetscapeGeometry
के साथ अटैच किए गए किसी पोज़ में ऐंकर बनाने के लिए,ArTrackable_acquireNewAnchor()
का इस्तेमाल करें. यह ऐंकर अपनी ट्रैकिंग स्थिति, पैरंटArStreetscapeGeometry
से इनहेरिट करेगा.
ArStreetscapeGeometry
के लिए हिट-टेस्ट करें
ArFrame_hitTest
का इस्तेमाल, Streetscape की ज्यामिति के साथ हिट-टेस्ट करने के लिए किया जा सकता है. अगर कोई इंटरसेक्शन मिलता है, तो ArHitResult
में हिट लोकेशन के बारे में पोज़ की जानकारी के साथ-साथ हिट ArStreetscapeGeometry
का रेफ़रंस भी होता है. इस Streetscape ज्यामिति को ArTrackable_acquireNewAnchor()
को पास किया जा सकता है, ताकि इसके साथ ऐंकर बनाया जा सके.
ArHitResultList *hit_result_list = NULL; ArHitResult *hit_result = NULL; ArHitResultList_create(ar_session, &hit_result_list); ArHitResult_create(ar_session, &hit_result); ArFrame_hitTestRay(ar_session, ar_frame, origin, direction, hit_result_list); ArHitResultList_getItem(ar_session, hit_result_list, 0, hit_result); ArAnchor *out_anchor = NULL; ArStatus status = ArHitResult_acquireNewAnchor(ar_session, hit_result, &out_anchor); CHECK(status == AR_SUCCESS);
जियोस्पेशल डेप्थ की सुविधा चालू करें
जियोस्पेशियल डेप्थ में स्ट्रीटस्केप ज्यामिति शामिल है इसमें स्थानीय सेंसर इनपुट इस्तेमाल किया जाता है, ताकि डेप्थ डेटा को बेहतर बनाया जा सके. जियोस्पेशियल डेप्थ की सुविधा चालू होने पर, आउटपुट डेप्थ और रॉ डेप्थ इमेज में बदलाव किया गया है, ताकि स्थानीय तौर पर देखी गई डेप्थ के साथ-साथ रास्टराइज़्ड स्ट्रीटस्केप ज्यामिति भी शामिल की जा सके. इससे डेप्थ का इस्तेमाल करके, पोज़ को ज़्यादा सटीक बनाने में मदद मिल सकती है.