ক্যামেরা কনফিগার করা হচ্ছে

ক্যামেরা কনফিগারেশন একটি অ্যাপের অন্তর্নিহিত ক্যামেরা সেন্সরের বৈশিষ্ট্য বর্ণনা করে। ইউনিটিতে, এই কনফিগারেশনগুলি XRCameraConfiguration এর মাধ্যমে অ্যাক্সেসযোগ্য।

Android প্ল্যাটফর্মে, ARCore XRCameraConfiguration এর মধ্যে অতিরিক্ত ARCore-নির্দিষ্ট বৈশিষ্ট্যগুলি প্রকাশ করতে XRCameraConfigurationExtensions প্রদান করে। আপনি আপনার অ্যাপের জন্য উপযুক্ত ক্যামেরা কনফিগারেশন সেট আপ করতে এই বৈশিষ্ট্যগুলি ব্যবহার করতে পারেন৷

বর্ধিত ক্যামেরা কনফিগারেশন বৈশিষ্ট্য (অ্যান্ড্রয়েড)

নিম্নলিখিত বর্ধিত বৈশিষ্ট্যগুলি Android প্ল্যাটফর্মে ARCore দ্বারা সমর্থিত।

সমর্থিত ক্যামেরা কনফিগারেশন অ্যাক্সেস করুন

একটি প্রদত্ত ডিভাইসের জন্য সমর্থিত ক্যামেরা কনফিগারেশন অ্যাক্সেস করতে ARCameraManager.GetConfigurations() ব্যবহার করুন। এটি XRCameraConfiguration এর একাধিক দৃষ্টান্ত ধারণকারী NativeArray প্রদান করে। প্রতিটি উদাহরণ হল একটি পৃথক ক্যামেরা কনফিগারেশন যা বৈশিষ্ট্য নির্দিষ্ট করে যেমন গভীরতার ব্যবহার, টার্গেট ক্যাপচার ফ্রেম রেট, রেজোলিউশন এবং টেক্সচারের মাত্রা।

আপনার অ্যাপের দৃশ্যে ক্যামেরা কনফিগার করুন

আপনার অ্যাপের দৃশ্যে ক্যামেরা কনফিগার করতে এই পদক্ষেপগুলি অনুসরণ করুন৷

  1. সমর্থিত XRCameraConfiguration এর তালিকা অনুসন্ধান করতে ARCameraManager.GetConfigurations() এর সাথে ARCameraManager ব্যবহার করুন।

  2. আপনি যদি অ্যান্ড্রয়েডের জন্য তৈরি করেন, তাহলে ARCore-নির্দিষ্ট বৈশিষ্ট্যগুলি পেতে XRCameraConfigurationExtensions এ ফাংশনের যেকোনও সমন্বয় ব্যবহার করুন।

  3. বর্তমান কনফিগারেশন সেট করতে cameraManager.currentConfiguration ব্যবহার করুন।

using UnityEngine.XR.ARFoundation;


// Adds XRCameraConfigurationExtensions extension methods to XRCameraConfiguration.
// This is for the Android platform only.
using Google.XR.ARCoreExtensions;

// Must be set in the editor.
public ARCameraManager cameraManager;

// Use ARCameraManager to obtain the camera configurations.
using (NativeArray<XRCameraConfiguration> configurations = cameraManager.GetConfigurations(Allocator.Temp))
{
    if (!configurations.IsCreated || (configurations.Length <= 0))
    {
        return;
    }

    // Iterate through the list of returned configs to locate the config you want.
    var desiredConfig = configurations[0];
    for (int i = 1; i < configurations.Length; ++i)
    {
        // Choose a config for a given camera that uses the maximum
        // target FPS and texture dimension. If supported, this config also enables
        // the depth sensor.
        if (configurations[i].GetFPSRange().y > desiredConfig.GetFPSRange().y &&
            configurations[i].GetTextureDimensions().x > desiredConfig.GetTextureDimensions().x &&
            configurations[i].GetTextureDimensions().y > desiredConfig.GetTextureDimensions().y &&
            configurations[i].CameraConfigDepthSensorUsage() == CameraConfigDepthSensorUsage.RequireAndUse)
        {
            desiredConfig = configurations[i];
        }
    }

    // Set the configuration you want. If it succeeds, the session
    // automatically pauses and resumes to apply the new configuration.
    // If it fails, cameraManager.currentConfiguration throws an exception.
    if (desiredConfig != cameraManager.currentConfiguration)
    {
        cameraManager.currentConfiguration = desiredConfig;
    }
}

ক্যামেরা কনফিগার ফিল্টার

আপনি ARCoreExtensionsCameraConfigFilter ব্যবহার করতে পারেন আপনার অ্যাপের প্রয়োজনের উপর ভিত্তি করে ফিল্টার করে রানটাইমে প্রদত্ত ডিভাইসের জন্য উপলব্ধ ক্যামেরা কনফিগারগুলিকে সংকুচিত করতে।

ক্যামেরা ক্যাপচার ফ্রেম রেট 30 FPS এ সীমাবদ্ধ করুন

যদি আপনার অ্যাপের একটি দ্রুত ক্যামেরা ফ্রেম রেট প্রয়োজন না হয়, তাহলে আপনি এটি 30 FPS এ সীমাবদ্ধ করতে পারেন। 60 FPS ক্যামেরা ফ্রেম রেট সমর্থন করে এমন ডিভাইসগুলিতে, ARCore ক্যামেরা কনফিগারেশনগুলিকে অগ্রাধিকার দেবে যা ডিফল্টরূপে সেই ফ্রেম রেটকে সমর্থন করে। 60 FPS সমর্থন করে এমন সমস্ত ক্যামেরা কনফিগার ফিল্টার করতে, Target Camera Framerate Target 30FPS এ সেট করা আছে তা নিশ্চিত করুন।

ARCore কে ডেপথ সেন্সর ব্যবহার করা থেকে আটকান

আপনার অ্যাপের ডেপথের প্রয়োজন না হলে, আপনি ARCore-কে ডেপথ সেন্সর ব্যবহার করা থেকে আটকাতে পারেন। সমর্থিত ডেপথ সেন্সর আছে এমন ডিভাইসগুলিতে, ARCore ARCore ক্যামেরা কনফিগারেশনগুলিকে অগ্রাধিকার দেয় যা গভীরতা সেন্সর ব্যবহার করে। গভীরতা সেন্সর ব্যবহার করে এমন সমস্ত ক্যামেরা কনফিগার ফিল্টার করতে, নিশ্চিত করুন যে Depth Sensor Usage Do Not Use

ক্যামেরা কনফিগার ফিল্টার ব্যবহার করুন

ক্যামেরা কনফিগার ফিল্টার করতে আপনার অ্যাপ সক্ষম করতে এই পদক্ষেপগুলি অনুসরণ করুন৷

একটি নতুন ক্যামেরা কনফিগার ফিল্টার তৈরি করতে Assets > Create > XR > Camera Config Filter যান।

আপনি আপনার ফিল্টার ব্যবহার করতে চান যে কনফিগারেশন নির্বাচন করুন.

একবার আপনি ফিল্টার তৈরি করলে, এটি একটি ARCoreExtensions উপাদানে ব্যবহার করুন।

রানটাইমের সময় ক্যামেরা কনফিগার করুন

আপনি কলব্যাক ইভেন্ট ARCoreExtensions.OnChooseXRCameraConfiguration ব্যবহার করতে পারেন রানটাইম চলাকালীন ক্যামেরা কনফিগার করতে, ডিভাইসের প্রকারের মতো বিষয়গুলির উপর ভিত্তি করে।

// Unity's Awake() method
public void Awake()
{
    …
    // If the return value is not a valid index (ex. the value if -1),
    // then no camera configuration will be set. If no previous selection exists, 
    // the ARCore session will use the previously selected camera configuration 
    // or a default configuration.
    arcoreExtensions.OnChooseXRCameraConfiguration = SelectCameraConfiguration;
    …
}

// A custom camera configuration selection function
int SelectCameraConfiguration(List<XRCameraConfiguration> supportedConfigurations)
{
    int index = 0;

    // Use custom logic here to choose the desired configuration from supportedConfigurations.

    return index;
}