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 রিটার্ন করতে হবে।
বৈধ ব্যবহার (অন্তর্নিহিত)
- XrSystemLightEstimationPropertiesANDROID ব্যবহার করার আগে
XR_ANDROID_light_estimationএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
typeঅবশ্যইXR_TYPE_SYSTEM_LIGHT_ESTIMATION_PROPERTIES_ANDROIDহতে হবে -
nextঅবশ্যইNULLঅথবা স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের একটি বৈধ পয়েন্টার হতে হবে।
একটি লাইট এস্টিমেটর হ্যান্ডেল তৈরি করুন
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 বা এই এক্সটেনশনে এই ধরনের কোনো স্ট্রাকচার সংজ্ঞায়িত করা নেই।
বৈধ ব্যবহার (অন্তর্নিহিত)
- XrLightEstimatorCreateInfoANDROID ব্যবহার করার আগে
XR_ANDROID_light_estimationএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
typeঅবশ্যইXR_TYPE_LIGHT_ESTIMATOR_CREATE_INFO_ANDROIDহতে হবে -
nextঅবশ্যইNULLঅথবা স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের একটি বৈধ পয়েন্টার হতে হবে। আরও দেখুন: XrCubemapLightEstimatorCreateInfoANDROID , XrPointLightsEstimatorCreateInfoANDROIDX1
xrDestroyLightEstimatorANDROID ফাংশনটি নিম্নরূপে সংজ্ঞায়িত করা হয়েছে:
XrResult xrDestroyLightEstimatorANDROID(
XrLightEstimatorANDROID estimator);
প্যারামিটার বিবরণ
-
estimatorহলো একটি XrLightEstimatorANDROID যা পূর্বে xrCreateLightEstimatorANDROID দ্বারা তৈরি করা হয়েছিল।
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);
প্যারামিটার বিবরণ
-
estimatorহলো xrCreateLightEstimatorANDROID কমান্ডের মাধ্যমে পূর্বে তৈরি করা XrLightEstimatorANDROID- এর একটি হ্যান্ডেল। -
inputহলো XrLightEstimateGetInfoANDROID স্ট্রাকচারের একটি পয়েন্টার। -
outputহলো একটি XrLightEstimateANDROID স্ট্রাকচারের পয়েন্টার।
বৈধ ব্যবহার (অন্তর্নিহিত)
- 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, যা সেই সময়কে বর্ণনা করে যখন অ্যাপ্লিকেশনটি আলোর অনুমান সম্পর্কে জিজ্ঞাসা করতে চায়।
বৈধ ব্যবহার (অন্তর্নিহিত)
- XrLightEstimateGetInfoANDROID ব্যবহার করার আগে
XR_ANDROID_light_estimationএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
typeঅবশ্যইXR_TYPE_LIGHT_ESTIMATE_GET_INFO_ANDROIDহতে হবে -
nextঅবশ্যইNULLঅথবা স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের একটি বৈধ পয়েন্টার হতে হবে। -
spaceঅবশ্যই একটি বৈধ XrSpace হ্যান্ডেল হতে হবে।
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 এর সাথে চেইন করতে পারে ।
বৈধ ব্যবহার (অন্তর্নিহিত)
- XrLightEstimateANDROID ব্যবহার করার আগে
XR_ANDROID_light_estimationএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
typeঅবশ্যইXR_TYPE_LIGHT_ESTIMATE_ANDROIDহতে হবে -
nextঅবশ্যইNULLঅথবা একটি স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের একটি বৈধ পয়েন্টার হতে হবে। আরও দেখুন: XrAmbientLightANDROID , XrCubemapLightingDataANDROID , XrDirectionalLightANDROID , XrPointLightsANDROIDX1 , XrSphericalHarmonicsANDROID stateঅবশ্যই একটি বৈধ XrLightEstimateStateANDROID ভ্যালু হতে হবে।
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.
বৈধ ব্যবহার (অন্তর্নিহিত)
- XrAmbientLightANDROID ব্যবহার করার আগে
XR_ANDROID_light_estimationএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
typeঅবশ্যইXR_TYPE_AMBIENT_LIGHT_ANDROIDহতে হবে -
nextঅবশ্যইNULLঅথবা স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের একটি বৈধ পয়েন্টার হতে হবে। -
stateঅবশ্যই একটি বৈধ XrLightEstimateStateANDROID ভ্যালু হতে হবে।
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 একটি বিশেষ ফাংশনে ব্যবহার করা হবে, যেটি ইনপুট হিসেবে একটি দিক গ্রহণ করে এবং সেই দিক থেকে আসা আলোর রঙ আউটপুট হিসেবে প্রদান করে। এই পেপারটিতে আরও বিস্তারিত তথ্য পাওয়া যাবে।
বৈধ ব্যবহার (অন্তর্নিহিত)
- XrSphericalHarmonicsANDROID ব্যবহার করার আগে
XR_ANDROID_light_estimationএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
typeঅবশ্যইXR_TYPE_SPHERICAL_HARMONICS_ANDROIDহতে হবে -
nextঅবশ্যইNULLঅথবা স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের একটি বৈধ পয়েন্টার হতে হবে। -
stateঅবশ্যই একটি বৈধ XrLightEstimateStateANDROID ভ্যালু হতে হবে। kindঅবশ্যই একটি বৈধ XrSphericalHarmonicsKindANDROID মান হতে হবে।
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 যা আলোর দিককে নির্দেশ করে।
বৈধ ব্যবহার (অন্তর্নিহিত)
- XrDirectionalLightANDROID ব্যবহার করার আগে
XR_ANDROID_light_estimationএক্সটেনশনটি অবশ্যই সক্রিয় করতে হবে। -
typeঅবশ্যইXR_TYPE_DIRECTIONAL_LIGHT_ANDROIDহতে হবে -
nextঅবশ্যইNULLঅথবা স্ট্রাকচার চেইনের পরবর্তী স্ট্রাকচারের একটি বৈধ পয়েন্টার হতে হবে। -
stateঅবশ্যই একটি বৈধ XrLightEstimateStateANDROID ভ্যালু হতে হবে।
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));
নতুন অবজেক্টের প্রকারভেদ
নতুন কমান্ড
নতুন কাঠামো
- এক্সআরলাইটএস্টিমেটঅ্যান্ড্রয়েড
- XrLightEstimateGetInfoANDROID
- XrLightEstimatorCreateInfoANDROID
XrLightEstimateANDROID-এর সম্প্রসারণ:
XrSystemProperties-এর সম্প্রসারণ :
নতুন এনাম
নতুন এনাম ধ্রুবক
-
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
-
সমস্যা
সংস্করণ ইতিহাস
সংশোধন ১, ২০২৪-০৯-১৬ (কেয়ার্ন ওভারটার্ফ)
- প্রাথমিক এক্সটেনশনের বিবরণ