تست های آماری اشیاء مجازی را در دنیای واقعی قرار می دهند

راهنماهای مخصوص پلتفرم

اندروید (کاتلین/جاوا)

اندروید NDK (سی)

یونیتی (بنیاد واقعیت افزوده)

محتوای واقعیت افزوده (AR) باید به درستی قرار داده شده و اندازه گذاری شود تا با صحنه ترکیب شود. مانند اشیاء دنیای واقعی، اشیاء مجازی که دورتر هستند باید کوچکتر به نظر برسند. شما می‌توانید یک تست ضربه (یا یک raycast در AR Foundation for Unity) انجام دهید تا محل صحیح یک شیء سه بعدی در صحنه خود را تعیین کنید. محل گذاری صحیح تضمین می‌کند که محتوای واقعیت افزوده در اندازه (ظاهری) مناسب رندر شود.

تست‌های ضربه، نقاط تلاقی بین هندسه سه‌بعدی دنیای واقعی و یک پرتو مجازی متشکل از یک مبدأ و جهت را پیدا می‌کنند. پرتوهایی که دوربین دستگاه به عنوان مبدأ در نظر گرفته شده است، بیشتر مورد استفاده قرار می‌گیرند، اگرچه ARCore شامل یک API برای انجام تست‌های ضربه با یک پرتو دلخواه در مختصات فضای جهانی است.

تصور کنید که یک پرتو از دوربین دستگاه کاربر ساطع می‌شود که به سمت جلو امتداد می‌یابد تا زمانی که به هندسه سه‌بعدی صحنه، مانند کف، دیوار یا شیء برخورد کند. به محض این که این اتفاق می‌افتد، لیستی از نتایج برخورد یا تقاطع‌ها با هندسه صحنه شناسایی شده دریافت می‌کنید. این لیست بر اساس فاصله از دستگاه مرتب شده است و نزدیکترین تقاطع ابتدا قرار دارد. این مهم است زیرا معمولاً نمی‌توانید اشیاء پنهان شده در پشت اشیاء دیگر را ببینید، بنابراین اغلب اوقات اولین نتیجه مهمترین است.

محتویات یک نتیجه‌ی موفق

یک نتیجه‌ی جستجوی منحصر به فرد به صورت لیستی با اطلاعات زیر برای هر نتیجه بازگردانده می‌شود:

  • فاصله از مبدا پرتو، بر حسب متر
  • موقعیت و جهت گیری نتیجه ضربه
  • هندسه سه‌بعدی که به آن برخورد می‌کنید، به شکل یک Trackable

سپس می‌توانید از نتیجه‌ی مورد نظر برای قرار دادن واقع‌گرایانه‌ی محتوای سه‌بعدی خود با استفاده از Anchor استفاده کنید.

انواع نتایج جستجو

چهار نوع نتیجه‌ی برخورد وجود دارد: عمق، صفحه، نقطه‌ی ویژگی و نتایج جایگذاری فوری. هر کدام موارد استفاده و معایب خاص خود را دارند، همانطور که در جدول زیر نشان داده شده است.

نوع نتیجه‌ی مورد نظر توضیحات جهت گیری مورد استفاده
عمق از اطلاعات عمق کل صحنه برای تعیین عمق و جهت صحیح یک نقطه استفاده می‌کند. عمود بر سطح سه‌بعدی یک شیء مجازی را روی یک سطح دلخواه قرار دهید (نه فقط روی کف و دیوارها)
هواپیما برای تعیین عمق و جهت صحیح یک نقطه، به سطوح افقی و/یا عمودی ضربه می‌زند. عمود بر سطح سه‌بعدی یک جسم را روی یک صفحه (کف یا دیوار) با استفاده از هندسه کامل صفحه قرار دهید. فوراً به مقیاس صحیح نیاز دارید. جایگزین برای تست ضربه عمق
نکته ویژه برای تعیین موقعیت و جهت صحیح یک نقطه، به ویژگی‌های بصری اطراف نقطه ضربه کاربر متکی است. عمود بر سطح سه‌بعدی یک جسم را روی یک سطح دلخواه قرار دهید (نه فقط روی کف و دیوارها)
قرار دادن فوری (پرتودهی مداوم) از فضای صفحه نمایش برای قرار دادن محتوا استفاده می‌کند. در ابتدا از عمق تخمینی ارائه شده توسط برنامه استفاده می‌کند. فوراً کار می‌کند، اما به محض اینکه ARCore بتواند هندسه صحنه واقعی را تعیین کند، حالت و عمق واقعی تغییر خواهد کرد. +Y رو به بالا، خلاف جهت جاذبه یک جسم را روی یک صفحه (کف یا دیوار) با استفاده از هندسه کامل صفحه قرار دهید، جایی که جایگذاری سریع بسیار مهم است و تجربه می‌تواند عمق و مقیاس اولیه ناشناخته را تحمل کند.

سازگاری دستگاه

تست‌های ضربه (Hit-tests) روی تمام دستگاه‌های پشتیبانی‌شده توسط ARCore کار می‌کنند، اما تست‌های ضربه عمقی (Depth hit-tests) به دستگاه‌های پشتیبانی‌شده توسط عمقی نیاز دارند.

از نتایج پرطرفدار برای قرار دادن محتوای AR استفاده کنید

وقتی به نتیجه‌ی دلخواه رسیدید، می‌توانید از حالت آن به عنوان ورودی برای قرار دادن محتوای واقعیت افزوده در صحنه‌ی خود استفاده کنید.