স্ট্রিটস্কেপ জ্যামিতি API একটি দৃশ্যে ভূখণ্ড, ভবন বা অন্যান্য কাঠামোর জ্যামিতি প্রদান করে। জ্যামিতিটি হিট-টেস্ট API-এর মাধ্যমে আটকানো, রেন্ডারিং বা AR সামগ্রী রাখার জন্য ব্যবহার করা যেতে পারে। স্ট্রিটস্কেপ জ্যামিতি ডেটা Google রাস্তার দৃশ্য চিত্রের মাধ্যমে প্রাপ্ত করা হয়।
Geospatial API সেট আপ করুন
স্ট্রিটস্কেপ জ্যামিতি ব্যবহার করতে, আপনাকে আপনার প্রকল্পে জিওস্পেশিয়াল API সেট আপ করতে হবে। জিওস্পেশিয়াল এপিআই সেট আপ করতে জিওস্পেশিয়াল এপিআই সক্ষম করার নির্দেশাবলী অনুসরণ করুন।
স্ট্রিটস্কেপ জ্যামিতি সক্ষম করুন
যখন 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 সেশনে স্ট্রিটস্কেপ জ্যামিতি পান
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()
স্ট্রিটস্কেপ জ্যামিতিকে ভূখণ্ড বা বিল্ডিং হিসাবে চিহ্নিত করে। -
ArStreetscapeGeometry_acquireMesh()
একটি বহুভুজArMesh
পান যা এই ভূখণ্ড বা বিল্ডিংয়ের সাথে মিলে যায়। -
ArStreetscapeGeometry_getMeshPose()
জ্যামিতির উৎপত্তি বর্ণনা করে।ArMesh
এর সমস্ত পয়েন্টArStreetscapeGeometry_getMeshPose()
দ্বারা রূপান্তরিত করা উচিত। -
ArStreetscapeGeometry_getQuality()
জাল ডেটার গুণমান সরবরাহ করে। সিটিজিএমএল 2.0 স্ট্যান্ডার্ডে বিশদ স্তরগুলি বর্ণনা করা হয়েছে।
বিল্ডিং LOD 1
AR_STREETSCAPE_GEOMETRY_QUALITY_BUILDING_LOD_1
বিল্ডিং পায়ের ছাপ একটি সমতল শীর্ষে উপরের দিকে বের করে নিয়ে গঠিত। বিল্ডিং উচ্চতা ভুল হতে পারে.
বিল্ডিং LOD 2
AR_STREETSCAPE_GEOMETRY_QUALITY_BUILDING_LOD_2
উচ্চতর বিশ্বস্ততা জ্যামিতি থাকবে। জাল দেয়াল এবং ছাদগুলি বিল্ডিংয়ের আকারের সাথে আরও ঘনিষ্ঠভাবে মিলবে। চিমনি বা ছাদের ভেন্টের মতো ছোট বৈশিষ্ট্যগুলি এখনও জালের বাইরে খোঁচা দিতে পারে।
ArMesh
বুঝুন
ArMesh
হল একটি বহুভুজ জাল যা স্ট্রিটস্কেপ জ্যামিতির একটি পৃষ্ঠের পুনর্গঠনের প্রতিনিধিত্ব করে। প্রতিটি ArMesh
একটি শীর্ষ বাফার এবং সূচক বাফার অন্তর্ভুক্ত:
-
ArMesh_getVertexListSize()
এই জালের শীর্ষবিন্দুর সংখ্যা পুনরুদ্ধার করে। -
ArMesh_getVertexList()
ArStreetscapeGeometry_getMeshPose()
এর সাপেক্ষে স্থানাঙ্কে, জাল শীর্ষবিন্দুর সংযুক্ত অবস্থানগুলি পান। -
ArMesh_getIndexListSize()
এই জালের মধ্যে সূচকের সংখ্যা পুনরুদ্ধার করে। -
ArMesh_getIndexList()
একটি মুখ তৈরি করে এমন শীর্ষবিন্দুগুলির সূচীগুলি পান৷
একটি ArStreetscapeGeometry
AR সামগ্রী সংযুক্ত করুন
স্ট্রিটস্কেপ জ্যামিতিতে এআর সামগ্রী সংযুক্ত করার দুটি উপায় রয়েছে:- ভূ-স্থানিক গভীরতা সক্ষম করুন এবং একটি গভীরতা হিট-পরীক্ষা ব্যবহার করুন৷ এটি সুপারিশকৃত এবং সহজ পদ্ধতি।
-
ArTrackable_acquireNewAnchor()
ব্যবহার করুন একটিArStreetscapeGeometry
সাথে সংযুক্ত একটি প্রদত্ত ভঙ্গিতে একটি অ্যাঙ্কর তৈরি করতে। এই অ্যাঙ্করটি প্যারেন্টArStreetscapeGeometry
থেকে এর ট্র্যাকিং অবস্থার উত্তরাধিকারী হবে।
ArStreetscapeGeometry
বিরুদ্ধে একটি হিট-পরীক্ষা করুন
Streetscape জ্যামিতির বিরুদ্ধে হিট-টেস্ট করতে ArFrame_hitTest
ব্যবহার করা যেতে পারে। যদি ছেদগুলি পাওয়া যায়, 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);
ভূ-স্থানিক গভীরতা সক্ষম করুন
ভূ-স্থানিক গভীরতা গভীরতার ডেটা উন্নত করতে স্থানীয় সেন্সর ইনপুটের সাথে স্ট্রিটস্কেপ জ্যামিতিকে একত্রিত করে। যখন ভূ-স্থানিক গভীরতা সক্ষম করা হয়, আউটপুট গভীরতা এবং কাঁচা গভীরতার চিত্রগুলিকে স্থানীয়ভাবে পর্যবেক্ষণ করা গভীরতার পাশাপাশি রাস্টারাইজড স্ট্রিটস্কেপ জ্যামিতি অন্তর্ভুক্ত করার জন্য পরিবর্তন করা হয়। এটি গভীরতা ব্যবহার করে ভঙ্গির নির্ভুলতা উন্নত করতে পারে।