XR_ANDROID_আলোর_অনুমান

নাম স্ট্রিং

XR_ANDROID_light_estimation

এক্সটেনশন টাইপ

ইনস্ট্যান্স এক্সটেনশন

নিবন্ধিত এক্সটেনশন নম্বর

৭০১

সংশোধন

অনুমোদনের অবস্থা

অনুমোদিত নয়

এক্সটেনশন এবং সংস্করণ নির্ভরতা

ওপেনএক্সআর ১.০

সর্বশেষ সংশোধনের তারিখ

২০২৫-০৩-১৩

আইপি স্ট্যাটাস

কোনো জ্ঞাত আইপি দাবি নেই।

অবদানকারীরা

জ্যারেড ফাইন্ডার, গুগল
কেয়ার্ন ওভারটার্ফ, গুগল
স্পেন্সার কুইন, গুগল
লেভানা চেন, গুগল
নিহাব জৈন, গুগল
সালার খান, গুগল
স্কট চুং, গুগল

সংক্ষিপ্ত বিবরণ

এই এক্সটেনশনটি অ্যাপ্লিকেশনটিকে হেডসেটের চারপাশের বাস্তব পরিবেশের আলোর ডেটা অনুরোধ করার সুযোগ দেয়। অ্যাপ্লিকেশনটি এই তথ্য ব্যবহার করে ভার্চুয়াল বস্তুগুলোকে, যে বাস্তব দৃশ্যে সেগুলোকে রাখা হয়েছে, তার অনুরূপ পরিস্থিতিতে আলোকিত করতে পারে

অনুমতি

অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলির ম্যানিফেস্টে অবশ্যই android.permission.SCENE_UNDERSTANDING_COARSE পারমিশনটি তালিকাভুক্ত থাকতে হবে, কারণ এই এক্সটেনশনটি পরিবেশ সম্পর্কিত লাইটিং তথ্য প্রকাশ করে। android.permission.SCENE_UNDERSTANDING_COARSE পারমিশনটিকে একটি বিপজ্জনক পারমিশন হিসেবে বিবেচনা করা হয়। এই ফাংশনগুলি ব্যবহার করার জন্য অ্যাপ্লিকেশনটিকে রানটাইমে পারমিশনটির জন্য অনুরোধ করতে হবে :

(সুরক্ষার স্তর: বিপজ্জনক)

সিস্টেমের সক্ষমতা পরীক্ষা করুন

XrSystemLightEstimationPropertiesANDROID কাঠামোটি নিম্নরূপে সংজ্ঞায়িত করা হয়েছে:

typedef struct XrSystemLightEstimationPropertiesANDROID {
    XrStructureType    type;
    void*              next;
    XrBool32           supportsLightEstimation;
} XrSystemLightEstimationPropertiesANDROID;

সদস্যদের বিবরণ

  • type হলো এই স্ট্রাকচারটির XrStructureType
  • next হলো NULL অথবা একটি স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের একটি পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনো স্ট্রাকচার সংজ্ঞায়িত করা নেই।
  • supportsLightEstimation হলো একটি XrBool32 , যা নির্দেশ করে বর্তমান সিস্টেমটি লাইট এস্টিমেশন সমর্থন করে কি না।

একটি অ্যাপ্লিকেশন xrGetSystemProperties কল করার সময় XrSystemProperties-কে XrSystemLightEstimationPropertiesANDROID স্ট্রাকচার দিয়ে প্রসারিত করে সিস্টেমটি আলো অনুমান সমর্থন করতে সক্ষম কিনা তা পরীক্ষা করতে পারে

যদি এবং শুধুমাত্র যদি কোনো রানটাইম supportsLightEstimation জন্য XR_FALSE রিটার্ন করে, তাহলে রানটাইমটিকে অবশ্যই xrCreateLightEstimatorANDROID থেকে XR_ERROR_FEATURE_UNSUPPORTED রিটার্ন করতে হবে।

বৈধ ব্যবহার (অন্তর্নিহিত)

একটি লাইট এস্টিমেটর হ্যান্ডেল তৈরি করুন

XR_DEFINE_HANDLE(XrLightEstimatorANDROID)

আলোর পরিমাণ নির্ণয়ের ডেটা রানটাইম দ্বারা তৈরি করা হয় এবং XrLightEstimatorANDROID হ্যান্ডেল ব্যবহার করে অ্যাপ্লিকেশনের সাথে শেয়ার করা হয়।

এই এক্সটেনশনের অন্যান্য ফাংশন ব্যবহার করে আলোর পরিমাণ নির্ণয়ের তথ্য অ্যাক্সেস করার জন্য এই হ্যান্ডেলটি ব্যবহার করা যেতে পারে

xrCreateLightEstimatorANDROID ফাংশনটি নিম্নরূপে সংজ্ঞায়িত করা হয়েছে:

XrResult xrCreateLightEstimatorANDROID(
    XrSession                                   session,
    XrLightEstimatorCreateInfoANDROID*          createInfo,
    XrLightEstimatorANDROID*                    outHandle);

প্যারামিটার বিবরণ

  • session হলো সেই XrSession যা লাইট এস্টিমেটর তৈরি করে।
  • createInfo হলো XrLightEstimatorCreateInfoANDROID স্ট্রাকচারের একটি পয়েন্টার, যেখানে লাইট এস্টিমেটর তৈরি করার জন্য ব্যবহৃত প্যারামিটারগুলো থাকে।
  • outHandle হলো এমন একটি হ্যান্ডেলের পয়েন্টার, যেটিতে তৈরি করা XrLightEstimatorANDROID-টি ফেরত পাঠানো হয়।

অ্যাপ্লিকেশনটি একটি লাইট এস্টিমেটর তৈরি করতে xrCreateLightEstimatorANDROID ফাংশনটি ব্যবহার করে।

  • সিস্টেমটি আলোক অনুমান সমর্থন না করলে রানটাইমকে অবশ্যই XR_ERROR_FEATURE_UNSUPPORTED রিটার্ন করতে হবে।
  • যদি কলিং অ্যাপকে প্রয়োজনীয় অনুমতি প্রদান করা না হয়ে থাকে, তাহলে রানটাইমকে অবশ্যই XR_ERROR_PERMISSION_INSUFFICIENT রিটার্ন করতে হবে।

যদি কোনো অ্যাপ্লিকেশন রানটাইমকে জানাতে চায় যে আলোক অনুমানের ডেটা অ্যাক্সেস করা তার শেষ হয়েছে, তবে তাকে অবশ্যই xrDestroyLightEstimatorANDROID কমান্ডের মাধ্যমে হ্যান্ডেলটি ধ্বংস করতে হবে

বৈধ ব্যবহার (অন্তর্নিহিত)

  • xrCreateLightEstimatorANDROID কল করার আগে XR_ANDROID_light_estimation এক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে।
  • session অবশ্যই একটি বৈধ XrSession হ্যান্ডেল হতে হবে।
  • createInfo অবশ্যই একটি XrLightEstimatorCreateInfoANDROID স্ট্রাকচারের পয়েন্টার হতে হবে।
  • outHandle অবশ্যই একটি XrLightEstimatorANDROID হ্যান্ডেলের দিকে নির্দেশকারী একটি পয়েন্টার হতে হবে।

রিটার্ন কোড

সাফল্য

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

ব্যর্থতা

  • XR_ERROR_FEATURE_UNSUPPORTED
  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_HANDLE_INVALID
  • XR_ERROR_INSTANCE_LOST
  • XR_ERROR_LIMIT_REACHED
  • XR_ERROR_OUT_OF_MEMORY
  • XR_ERROR_PERMISSION_INSUFFICIENT
  • XR_ERROR_RUNTIME_FAILURE
  • XR_ERROR_SESSION_LOST

XrLightEstimatorCreateInfoANDROID স্ট্রাকচারটি একটি XrLightEstimatorANDROID হ্যান্ডেল তৈরি করার জন্য প্রয়োজনীয় তথ্য বর্ণনা করে।

typedef struct XrLightEstimatorCreateInfoANDROID {
    XrStructureType    type;
    const void*        next;
} XrLightEstimatorCreateInfoANDROID;

সদস্যদের বিবরণ

  • type হলো এই স্ট্রাকচারটির XrStructureType
  • next হলো NULL অথবা একটি স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের একটি পয়েন্টার। কোর OpenXR বা এই এক্সটেনশনে এই ধরনের কোনো স্ট্রাকচার সংজ্ঞায়িত করা নেই।

বৈধ ব্যবহার (অন্তর্নিহিত)

xrDestroyLightEstimatorANDROID ফাংশনটি নিম্নরূপে সংজ্ঞায়িত করা হয়েছে:

XrResult xrDestroyLightEstimatorANDROID(
    XrLightEstimatorANDROID                     estimator);

প্যারামিটার বিবরণ

xrDestroyLightEstimatorANDROID ফাংশনটি estimator এবং এর অধীনস্থ যেকোনো রিসোর্সকে মুক্ত করে।

বৈধ ব্যবহার (অন্তর্নিহিত)

  • xrDestroyLightEstimatorANDROID কল করার আগে XR_ANDROID_light_estimation এক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে।
  • estimator অবশ্যই একটি বৈধ XrLightEstimatorANDROID হ্যান্ডেল হতে হবে।

থ্রেড নিরাপত্তা

  • estimator এবং এর যেকোনো চাইল্ড হ্যান্ডেলে অ্যাক্সেস অবশ্যই বাহ্যিকভাবে সিঙ্ক্রোনাইজড হতে হবে।

রিটার্ন কোড

সাফল্য

  • XR_SUCCESS

ব্যর্থতা

  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_HANDLE_INVALID

আলোর অনুমান ডেটা অ্যাক্সেস করুন

xrGetLightEstimateANDROID ফাংশনটি নিম্নরূপে সংজ্ঞায়িত করা হয়েছে:

XrResult xrGetLightEstimateANDROID(
    XrLightEstimatorANDROID                     estimator,
    const XrLightEstimateGetInfoANDROID*        input,
    XrLightEstimateANDROID*                     output);

প্যারামিটার বিবরণ

বৈধ ব্যবহার (অন্তর্নিহিত)

  • xrGetLightEstimateANDROID কল করার আগে XR_ANDROID_light_estimation এক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে।
  • estimator অবশ্যই একটি বৈধ XrLightEstimatorANDROID হ্যান্ডেল হতে হবে।
  • input অবশ্যই একটি বৈধ XrLightEstimateGetInfoANDROID স্ট্রাকচারের পয়েন্টার হতে হবে।
  • output অবশ্যই একটি XrLightEstimateANDROID স্ট্রাকচারের পয়েন্টার হতে হবে।

রিটার্ন কোড

সাফল্য

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

ব্যর্থতা

  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_HANDLE_INVALID
  • XR_ERROR_INSTANCE_LOST
  • XR_ERROR_OUT_OF_MEMORY
  • XR_ERROR_RUNTIME_FAILURE
  • XR_ERROR_SESSION_LOST
  • XR_ERROR_TIME_INVALID
  • XR_ERROR_VALIDATION_FAILURE

XrLightEstimateGetInfoANDROID কাঠামোটি নিম্নরূপে সংজ্ঞায়িত করা হয়েছে:

typedef struct XrLightEstimateGetInfoANDROID {
    XrStructureType    type;
    const void*        next;
    XrSpace            space;
    XrTime             time;
} XrLightEstimateGetInfoANDROID;

সদস্যদের বিবরণ

  • type হলো এই স্ট্রাকচারটির XrStructureType
  • next হলো NULL অথবা একটি স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের দিকে নির্দেশকারী একটি পয়েন্টার।
  • space হলো XrSpace, যা সেই রেফারেন্স স্পেসকে সংজ্ঞায়িত করে যেখানে প্রত্যাবর্তিত আলোর দিক এবং স্ফেরিকাল হারমোনিক্স প্রকাশ করা হয়।
  • time হলো XrTime , যা সেই সময়কে বর্ণনা করে যখন অ্যাপ্লিকেশনটি আলোর অনুমান সম্পর্কে জিজ্ঞাসা করতে চায়।

বৈধ ব্যবহার (অন্তর্নিহিত)

XrLightEstimateANDROID কাঠামোটিতে আলোর অনুমানের ডেটা রয়েছে:

typedef struct XrLightEstimateANDROID {
    XrStructureType                type;
    void*                          next;
    XrLightEstimateStateANDROID    state;
    XrTime                         lastUpdatedTime;
} XrLightEstimateANDROID;

সদস্যদের বিবরণ

  • type হলো এই স্ট্রাকচারটির XrStructureType
  • next হলো NULL অথবা একটি স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের একটি পয়েন্টার। বৈধ স্ট্রাকচারগুলোর মধ্যে রয়েছে XrAmbientLightANDROID , XrSphericalHarmonicsANDROID এবং XrDirectionalLightANDROID
  • state হলো XrLightEstimateStateANDROID , যা আলোক অনুমানের অবস্থাকে নির্দেশ করে।
  • lastUpdatedTime হলো সেই XrTime যা নির্দেশ করে কখন অনুমানটি সর্বশেষ গণনা করা হয়েছিল।

প্রতিটি লাইট এস্টিমেট স্ট্রাকচারের ক্ষেত্রে যদি state XR_LIGHT_ESTIMATE_STATE_INVALID_ANDROID হয়, তাহলে স্ট্রাকচারটির অন্য সব ফিল্ড যথেচ্ছ (arbitrary) হয়ে যায়, অর্থাৎ সেগুলোর মান অনির্ধারিত থাকে।

পরিবেষ্টিত আলো, স্ফেরিকাল হারমোনিক্স এবং প্রাথমিক দিকনির্দেশক আলোর আনুমানিক তথ্য পেতে, অ্যাপ্লিকেশনগুলি যথাক্রমে XrAmbientLightANDROID , XrSphericalHarmonicsANDROID এবং XrDirectionalLightANDROID স্ট্রাকচারগুলির ইনস্ট্যান্সগুলিকে XrLightEstimateANDROID :: next এর সাথে চেইন করতে পারে

বৈধ ব্যবহার (অন্তর্নিহিত)

XrAmbientLightANDROID স্ট্রাকচারটিতে দৃশ্যের পারিপার্শ্বিক আলো সম্পর্কিত আলোক অনুমানের ডেটা থাকে।

typedef struct XrAmbientLightANDROID {
    XrStructureType                type;
    void*                          next;
    XrLightEstimateStateANDROID    state;
    XrVector3f                     intensity;
    XrVector3f                     colorCorrection;
} XrAmbientLightANDROID;

সদস্যদের বিবরণ

  • type হলো এই স্ট্রাকচারটির XrStructureType
  • next হলো NULL অথবা একটি স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের একটি পয়েন্টার। বৈধ স্ট্রাকচারগুলোর মধ্যে রয়েছে XrSphericalHarmonicsANDROID এবং XrDirectionalLightANDROID
  • state হলো XrLightEstimateStateANDROID , যা আলোক অনুমানের অবস্থাকে নির্দেশ করে।
  • intensity হলো একটি XrVector3f যা পারিপার্শ্বিক আলোর তীব্রতাকে নির্দেশ করে। ভেক্টরটির প্রতিটি উপাদান যথাক্রমে লাল, সবুজ এবং নীল চ্যানেলকে নির্দেশ করে।
  • colorCorrection হলো গামা স্পেসে থাকা মানসহ একটি XrVector3f । যদি গামা কালার স্পেসে রেন্ডার করা হয়, তাহলে রেন্ডারিংয়ের পরে চূড়ান্তভাবে গণনা করা রঙের সাথে মানগুলোকে উপাদান-ভিত্তিক গুণ করুন। যদি লিনিয়ার স্পেসে রেন্ডার করা হয়, তাহলে প্রথমে মানগুলোকে ২.২ ঘাতে উন্নীত করে লিনিয়ার স্পেসে রূপান্তর করুন, তারপর রেন্ডারিংয়ের পরে চূড়ান্তভাবে গণনা করা রঙের সাথে উপাদান-ভিত্তিক গুণ করুন।

    The purpose of pname:colorCorrection is to make a scene appear natural and
    blend with the real world.
    

বৈধ ব্যবহার (অন্তর্নিহিত)

XrSphericalHarmonicsANDROID স্ট্রাকচারটিতে স্ফেরিকাল হারমোনিক্স রয়েছে যা দৃশ্যের আলোকসজ্জার প্রতিনিধিত্ব করে।

typedef struct XrSphericalHarmonicsANDROID {
    XrStructureType                    type;
    void*                              next;
    XrLightEstimateStateANDROID        state;
    XrSphericalHarmonicsKindANDROID    kind;
    float                              coefficients[9][3];
} XrSphericalHarmonicsANDROID;

সদস্যদের বিবরণ

  • type হলো এই স্ট্রাকচারটির XrStructureType
  • next হলো NULL অথবা একটি স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের একটি পয়েন্টার। বৈধ স্ট্রাকচারগুলোর মধ্যে XrAmbientLightANDROID এবং XrDirectionalLightANDROID অন্তর্ভুক্ত।
  • state হলো XrLightEstimateStateANDROID , যা আলোক অনুমানের অবস্থাকে নির্দেশ করে।
  • অ্যাপ্লিকেশনটির অনুরোধ অনুযায়ী kind হলো XrSphericalHarmonicsKindANDROID
  • coefficients হলো একটি দ্বি-মাত্রিক float অ্যারে যার ৯টি সারি এবং ৩টি কলাম রয়েছে। এই ৩টি কলাম যথাক্রমে লাল, সবুজ এবং নীল রঙের চ্যানেলগুলোকে নির্দেশ করে। প্রতিটি চ্যানেলে ৯টি স্ফেরিকাল হারমোনিক কোএফিসিয়েন্ট রয়েছে।

coefficients একটি বিশেষ ফাংশনে ব্যবহার করা হবে, যেটি ইনপুট হিসেবে একটি দিক গ্রহণ করে এবং সেই দিক থেকে আসা আলোর রঙ আউটপুট হিসেবে প্রদান করে। এই পেপারটিতে আরও বিস্তারিত তথ্য পাওয়া যাবে।

বৈধ ব্যবহার (অন্তর্নিহিত)

XrSphericalHarmonicsKindANDROID এনুমারেশনটি রানটাইমকে শনাক্ত করে যে, অ্যাপ্লিকেশনটি কোন ধরনের স্ফেরিকাল হারমোনিক্স অনুরোধ করছে।

typedef enum XrSphericalHarmonicsKindANDROID {
    XR_SPHERICAL_HARMONICS_KIND_TOTAL_ANDROID = 0,
    XR_SPHERICAL_HARMONICS_KIND_AMBIENT_ANDROID = 1,
    XR_SPHERICAL_HARMONICS_KIND_MAX_ENUM_ANDROID = 0x7FFFFFFF
} XrSphericalHarmonicsKindANDROID;

গণনা মানগুলোর নিম্নলিখিত অর্থ রয়েছে:

এনামের বিবরণ

XR_SPHERICAL_HARMONICS_KIND_TOTAL_ANDROID

স্ফেরিকাল হারমোনিক সহগগুলো মূল আলোর অবদান বাদ দিয়ে পারিপার্শ্বিক আলোর বিকিরণ ফাংশনকে উপস্থাপন করে।

XR_SPHERICAL_HARMONICS_KIND_AMBIENT_ANDROID

স্ফেরিকাল হারমোনিক সহগগুলো পারিপার্শ্বিক আলোর বিকিরণ ফাংশনকে উপস্থাপন করে, যার মধ্যে মূল আলোর অবদানও অন্তর্ভুক্ত থাকে।

XrDirectionalLightANDROID কাঠামোটিতে আলো পরিমাপের ডেটা থাকে।

typedef struct XrDirectionalLightANDROID {
    XrStructureType                type;
    void*                          next;
    XrLightEstimateStateANDROID    state;
    XrVector3f                     intensity;
    XrVector3f                     direction;
} XrDirectionalLightANDROID;

সদস্যদের বিবরণ

  • type হলো এই স্ট্রাকচারটির XrStructureType
  • next হলো NULL অথবা একটি স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের একটি পয়েন্টার। বৈধ স্ট্রাকচারগুলোর মধ্যে রয়েছে XrAmbientLightANDROID , XrSphericalHarmonicsANDROID এবং XrDirectionalLightANDROID
  • state হলো XrLightEstimateStateANDROID , যা আলোক অনুমানের অবস্থাকে নির্দেশ করে।
  • intensity হলো একটি XrVector3f যা দিকনির্দেশক আলোর তীব্রতাকে প্রতিনিধিত্ব করে। ভেক্টরটির প্রতিটি উপাদান লাল, সবুজ এবং নীল চ্যানেলের সাথে সঙ্গতিপূর্ণ।
  • direction হলো একটি XrVector3f যা আলোর দিককে নির্দেশ করে।

বৈধ ব্যবহার (অন্তর্নিহিত)

XrLightEstimateStateANDROID এনুমারেশনটি রানটাইম দ্বারা প্রত্যাবর্তিত আলোক অনুমানের অবস্থা নির্দেশ করে।

typedef enum XrLightEstimateStateANDROID {
    XR_LIGHT_ESTIMATE_STATE_VALID_ANDROID = 0,
    XR_LIGHT_ESTIMATE_STATE_INVALID_ANDROID = 1,
    XR_LIGHT_ESTIMATE_STATE_MAX_ENUM_ANDROID = 0x7FFFFFFF
} XrLightEstimateStateANDROID;

গণনা মানগুলোর নিম্নলিখিত অর্থ রয়েছে:

এনামের বিবরণ

XR_LIGHT_ESTIMATE_STATE_VALID_ANDROID

আলোর অনুমানটি বৈধ

XR_LIGHT_ESTIMATE_STATE_INVALID_ANDROID

আলোর অনুমানটি অবৈধ।

আলো অনুমানের জন্য উদাহরণ কোড

নিম্নলিখিত উদাহরণ কোডটি দেখায় কিভাবে রানটাইম থেকে আলোর অনুমানের সমস্ত সম্ভাব্য পরিমাণ পাওয়া যায়।

XrSession session;  // Created at app startup
XrSpace appSpace;   // Created previously.
PFN_xrCreateLightEstimatorANDROID xrCreateLightEstimatorANDROID; // Created previously.
PFN_xrDestroyLightEstimatorANDROID xrDestroyLightEstimatorANDROID; // Created previously.
PFN_xrGetLightEstimateANDROID xrGetLightEstimateANDROID; // Created previously.

XrLightEstimatorANDROID estimator;
XrLightEstimatorCreateInfoANDROID createInfo = {
    .type = XR_TYPE_LIGHT_ESTIMATOR_CREATE_INFO_ANDROID};
CHK_XR(xrCreateLightEstimatorANDROID(session, &createInfo, &estimator));

// Every frame
XrTime updateTime;  // Time used for the current frame's simulation update.

XrLightEstimateGetInfoANDROID info = {
    .type = XR_TYPE_LIGHT_ESTIMATE_GET_INFO_ANDROID,
    .space = appSpace,
    .time = updateTime,
};

XrDirectionalLightANDROID directionalLight = {
    .type = XR_TYPE_DIRECTIONAL_LIGHT_ANDROID,
};

XrSphericalHarmonicsANDROID sphericalHarmonics = {
    .type = XR_TYPE_SPHERICAL_HARMONICS_ANDROID,
    .next = &directionalLight,
};

// Querying both TOTAL or AMBIENT spherical harmonics in one call will result in an error because chaining two structs with the same type is not allowed
bool useTotalSH;
if (useTotalSH) {
  sphericalHarmonics.kind = XR_SPHERICAL_HARMONICS_KIND_TOTAL_ANDROID;
} else {
  sphericalHarmonics.kind = XR_SPHERICAL_HARMONICS_KIND_AMBIENT_ANDROID;
}

XrAmbientLightANDROID ambientLight = {
    .type = XR_TYPE_AMBIENT_LIGHT_ANDROID,
    .next = &sphericalHarmonics,
};

XrLightEstimateANDROID estimate = {
    .type = XR_TYPE_LIGHT_ESTIMATE_ANDROID,
    .next = &ambientLight,
};

XrResult result = xrGetLightEstimateANDROID(estimator, &info, &estimate);
if (result == XR_SUCCESS &&
    estimate.state == XR_LIGHT_ESTIMATE_STATE_VALID_ANDROID) {
  // use directionalLight, totalSh, ambientSh, ambientLight if each
  // struct has a valid state field
}

// When you want to disable light estimation
CHK_XR(xrDestroyLightEstimatorANDROID(estimator));

নতুন অবজেক্টের প্রকারভেদ

নতুন কমান্ড

নতুন কাঠামো

নতুন এনাম

নতুন এনাম ধ্রুবক

  • XR_ANDROID_LIGHT_ESTIMATION_EXTENSION_NAME
  • XR_ANDROID_light_estimation_SPEC_VERSION
  • XrObjectType- এর সম্প্রসারণ:

    • XR_OBJECT_TYPE_LIGHT_ESTIMATOR_ANDROID
  • XrStructureType সম্প্রসারণ :

    • XR_TYPE_AMBIENT_LIGHT_ANDROID
    • XR_TYPE_DIRECTIONAL_LIGHT_ANDROID
    • XR_TYPE_LIGHT_ESTIMATE_ANDROID
    • XR_TYPE_LIGHT_ESTIMATE_GET_INFO_ANDROID
    • XR_TYPE_LIGHT_ESTIMATOR_CREATE_INFO_ANDROID
    • XR_TYPE_SPHERICAL_HARMONICS_ANDROID
    • XR_TYPE_SYSTEM_LIGHT_ESTIMATION_PROPERTIES_ANDROID

সমস্যা

সংস্করণ ইতিহাস

  • সংশোধন ১, ২০২৪-০৯-১৬ (কেয়ার্ন ওভারটার্ফ)

    • প্রাথমিক এক্সটেনশনের বিবরণ