সিনফর্ম মডেলের সাথে আলোর অনুমান ব্যবহার করা

আলোক অনুমান API বিচ্ছিন্ন চাক্ষুষ সংকেতের জন্য একটি প্রদত্ত চিত্র বিশ্লেষণ করে এবং একটি প্রদত্ত দৃশ্যে আলো সম্পর্কে বিস্তারিত তথ্য প্রদান করে। ভার্চুয়াল অবজেক্টগুলিকে সেগুলি যে দৃশ্যে রাখা হয়েছে সেই একই পরিস্থিতিতে আলোকিত করার জন্য আপনি তখন এই তথ্যগুলি ব্যবহার করতে পারেন, এই বস্তুগুলিকে আরও বাস্তববাদী মনে করে এবং ব্যবহারকারীদের জন্য নিমগ্ন অভিজ্ঞতা বাড়ায়৷

আলোক সংকেত এবং ধারণা

মানুষ অবচেতনভাবে তাদের পরিবেশে বস্তু বা জীবন্ত জিনিসগুলি কীভাবে আলোকিত হয় সে সম্পর্কে সূক্ষ্ম সংকেতগুলি উপলব্ধি করে। যখন একটি ভার্চুয়াল বস্তুর ছায়া অনুপস্থিত থাকে বা একটি চকচকে উপাদান থাকে যা আশেপাশের স্থানকে প্রতিফলিত করে না, ব্যবহারকারীরা বুঝতে পারেন যে বস্তুটি একটি নির্দিষ্ট দৃশ্যের সাথে পুরোপুরি ফিট নয় যদিও তারা ব্যাখ্যা করতে পারে না। এই কারণেই একটি দৃশ্যে আলোর সাথে মেলানোর জন্য AR অবজেক্ট রেন্ডার করা নিমগ্ন এবং আরও বাস্তবসম্মত অভিজ্ঞতার জন্য অত্যন্ত গুরুত্বপূর্ণ।

ভার্চুয়াল অবজেক্ট রেন্ডার করার সময় আলোক অনুমান আপনার জন্য বিশদ ডেটা প্রদান করে বেশিরভাগ কাজ করে যা আপনাকে বিভিন্ন আলোর সংকেত অনুকরণ করতে দেয়। এই সংকেতগুলি হল ছায়া , পরিবেষ্টিত আলো , ছায়া , স্পেকুলার হাইলাইট এবং প্রতিফলন

আমরা এই চাক্ষুষ সংকেতগুলিকে এভাবে বর্ণনা করতে পারি:

  • পরিবেষ্টিত আলো। পরিবেষ্টিত আলো হল সামগ্রিক ছড়িয়ে পড়া আলো যা চারপাশের পরিবেশ থেকে আসে, সবকিছু আলোকিত করে।

  • ছায়া। ছায়াগুলি প্রায়ই দিকনির্দেশক হয় এবং দর্শকদের বলে যে আলোর উত্স কোথা থেকে আসছে।

  • শেডিং। ছায়াকরণ হল একটি প্রদত্ত চিত্রের বিভিন্ন এলাকায় আলোর তীব্রতা। উদাহরণস্বরূপ, একই বস্তুর বিভিন্ন অংশে একই দৃশ্যে দর্শকের সাপেক্ষে কোণ এবং আলোর উত্সের নৈকট্যের উপর নির্ভর করে বিভিন্ন স্তরের ছায়া থাকতে পারে।

  • স্পেকুলার হাইলাইট। এগুলি হল পৃষ্ঠের চকচকে বিট যা সরাসরি আলোর উত্সকে প্রতিফলিত করে। একটি দৃশ্যে দর্শকের অবস্থানের সাথে সম্পর্কিত একটি বস্তুর হাইলাইট পরিবর্তন হয়।

  • প্রতিফলন। পৃষ্ঠের স্পেকুলার (অর্থাৎ, অত্যন্ত প্রতিফলিত) বা বিচ্ছুরিত (প্রতিফলিত নয়) বৈশিষ্ট্য রয়েছে কিনা তার উপর নির্ভর করে আলো পৃষ্ঠ থেকে আলাদাভাবে বাউন্স করে। উদাহরণস্বরূপ, একটি ধাতব বল হবে অত্যন্ত স্পেকুলার এবং তার পরিবেশকে প্রতিফলিত করবে, অন্য একটি বল একটি নিস্তেজ ম্যাট ধূসর রঙের বিচ্ছুরিত হবে। বেশিরভাগ বাস্তব-বিশ্বের বস্তুতে এই বৈশিষ্ট্যগুলির সংমিশ্রণ রয়েছে -- একটি স্কাফড-আপ বোলিং বল বা একটি ভালভাবে ব্যবহৃত ক্রেডিট কার্ডের কথা চিন্তা করুন৷

    প্রতিফলিত পৃষ্ঠগুলিও পরিবেষ্টিত পরিবেশ থেকে রঙ গ্রহণ করে। একটি বস্তুর রঙ তার পরিবেশের রঙ দ্বারা সরাসরি প্রভাবিত হতে পারে। উদাহরণস্বরূপ, একটি নীল ঘরে একটি সাদা বল একটি নীল বর্ণ ধারণ করবে।

বাস্তবতা বাড়ানোর জন্য আলোর অনুমান মোড ব্যবহার করা

Config.LightEstimationMode API-এর এমন মোড রয়েছে যা বিভিন্ন মাত্রার গ্রানুলারিটি এবং বাস্তবতার সাথে পরিবেশে আলোক অনুমান করে।

  • পরিবেশগত HDR মোড ( ENVIRONMENTAL_HDR )। এই মোডটিতে একটি API রয়েছে যা দিকনির্দেশক আলো, ছায়া, স্পেকুলার হাইলাইট এবং প্রতিফলনের জন্য বাস্তবসম্মত আলো অনুমানের অনুমতি দেয়।

  • পরিবেষ্টিত তীব্রতা মোড ( AMBIENT_INTENSITY )। এই মোড একটি নির্দিষ্ট ছবির জন্য গড় পিক্সেল তীব্রতা এবং আলোর রঙ নির্ধারণ করে। এটি এমন একটি মোটা সেটিং যা ব্যবহারের ক্ষেত্রে ডিজাইন করা হয়েছে যেখানে সুনির্দিষ্ট আলো গুরুত্বপূর্ণ নয়, যেমন বেকড-ইন লাইটিং আছে এমন বস্তু।

  • DISABLED প্রদত্ত পরিবেশের সাথে মেলে আলো একটি দৃশ্য বা বস্তুর জন্য প্রাসঙ্গিক না হলে Config.LightEstimationMode অক্ষম করুন৷

ENVIRONMENTAL_HDR মোড ব্যবহার করা হচ্ছে

ENVIRONMENTAL_HDR মোড ইনপুট ক্যামেরা ইমেজ বিশ্লেষণ করতে এবং ভার্চুয়াল অবজেক্ট রেন্ডার করার জন্য পরিবেশগত আলো সংশ্লেষ করতে মেশিন লার্নিং ব্যবহার করে।

এই মোডটি দিকনির্দেশনামূলক আলো, পরিবেষ্টিত গোলাকার হারমোনিক্স এবং একটি HDR কিউবম্যাপকে একত্রিত করে যাতে ভার্চুয়াল বস্তুগুলিকে মনে হয় যে তারা একটি প্রদত্ত দৃশ্যের শারীরিকভাবে অংশ:

  • দিকনির্দেশক আলো একটি প্রদত্ত চিত্রের জন্য আপাত আলোর উত্স বিশ্লেষণ করে। এই ধরনের আলো যুক্তিসঙ্গতভাবে অবস্থানগত স্পেকুলার হাইলাইট যোগ করে এবং অন্যান্য দৃশ্যমান বাস্তব বস্তুর সাথে সামঞ্জস্যপূর্ণ একটি দিকে ছায়া ফেলে।

  • পরিবেষ্টিত গোলাকার হারমোনিক্স একটি দৃশ্যের সমস্ত দিক থেকে আসা সামগ্রিক পরিবেষ্টিত আলোর একটি বাস্তবসম্মত উপস্থাপনা পায়। রেন্ডারিংয়ের সময়, এই তথ্যটি সূক্ষ্ম সংকেত যোগ করতে ব্যবহৃত হয় যা ভার্চুয়াল বস্তুর সংজ্ঞা বের করে।

  • একটি HDR কিউবম্যাপ ভার্চুয়াল অবজেক্টের চারপাশে পরিবেশগত আলো ক্যাপচার করে। রেন্ডারিংয়ের সময়, এই কিউবম্যাপ মাঝারি থেকে উচ্চ চকচকে উপাদানের প্রতিফলন তৈরি করে।

নিম্নলিখিত চিত্রটি ENVIRONMENTAL_HDR সক্ষম সহ একটি দৃশ্যে স্থাপন করা একটি ভার্চুয়াল বস্তুর উদাহরণ দেখায়৷

একটি সিনফর্ম দৃশ্যের জন্য ENVIRONMENTAL_HDR মোড কনফিগার করুন

একটি সিনফর্ম দৃশ্যের সাথে ENVIRONMENTAL_HDR ব্যবহার করতে, ARFragment ক্লাস প্রসারিত করুন এবং নিম্নরূপ কনফিগারেশন ওভাররাইড করুন:

@Override
protected Config getSessionConfiguration(Session session) {
  Config config = new Config(session);
  config.setLightEstimationMode(Config.LightEstimationMode.ENVIRONMENTAL_HDR);
  return config;
}

এটি কীভাবে কাজ করে তার একটি উদাহরণ দেখতে, সৌরজগতের নমুনাটি দেখুন। (এই নমুনাটি ARFragment ব্যবহার না করে ENVIRONMENTAL_HDR প্রয়োগ করে।)

AMBIENT_INTENSITY মোড ব্যবহার করা হচ্ছে

AMBIENT_INTENSITY মোড একটি প্রদত্ত চিত্রের গড় পিক্সেল তীব্রতা এবং রঙ সংশোধন স্কেলার নির্ধারণ করে। এটি এমন একটি মোটা সেটিং যা ব্যবহারের ক্ষেত্রে ডিজাইন করা হয়েছে যেখানে সুনির্দিষ্ট আলো গুরুত্বপূর্ণ নয়, যেমন বেকড-ইন লাইটিং আছে এমন বস্তু।

  • একটি সম্পূর্ণ ভার্চুয়াল বস্তুতে প্রয়োগ করার জন্য পিক্সেল তীব্রতা একটি দৃশ্যে আলোর গড় পিক্সেল তীব্রতা ক্যাপচার করে।

  • রঙ সংশোধন স্ক্যালারগুলি প্রতিটি পৃথক ফ্রেমের জন্য সাদা ভারসাম্য সনাক্ত করে এবং আপনাকে একটি ভার্চুয়াল অবজেক্টকে রঙ করার অনুমতি দেয় যাতে এটি একটি দৃশ্যের সামগ্রিক রঙে আরও মসৃণভাবে সংহত হয়।

একটি সিনফর্ম দৃশ্যের জন্য AMBIENT_INTENSITY মোড কনফিগার করুন৷

একটি সিনফর্ম দৃশ্যের সাথে AMBIENT_INTENSITY ব্যবহার করতে, ARfragment ক্লাস প্রসারিত করুন এবং নিম্নরূপ কনফিগারেশন ওভাররাইড করুন:

@Override
protected Config getSessionConfiguration(Session session) {
  Config config = new Config(session);
  config.setLightEstimationMode(Config.LightEstimationMode.AMBIENT_INTENSITY);
  return config;
}