পলি এপিআই: আপনার ভিআর এবং এআর অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলির জন্য 3 ডি সম্পদ পুনরুদ্ধার করা

লেখক: Peter Berry
সৃষ্টির তারিখ: 14 Lang L: none (month-012) 2021
আপডেটের তারিখ: 4 মে 2024
Anonim
পলি এপিআই: আপনার ভিআর এবং এআর অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলির জন্য 3 ডি সম্পদ পুনরুদ্ধার করা - অ্যাপস
পলি এপিআই: আপনার ভিআর এবং এআর অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলির জন্য 3 ডি সম্পদ পুনরুদ্ধার করা - অ্যাপস

কন্টেন্ট


ভার্চুয়াল রিয়ালিটি (ভিআর) বা অগমেন্টেড রিয়েলিটি (এআর) মোবাইল অ্যাপের জন্য আপনার কাছে দুর্দান্ত ধারণা আছে, তবে কীভাবে আপনার দৃষ্টি সঞ্চারিত করবেন তা জানেন না?

যদি আপনি এমন একজন অ্যান্ড্রয়েড বিকাশকারী না হন যিনি অভিজ্ঞ 3 ডি শিল্পী হিসাবেও না ঘটে থাকেন তবে নিমজ্জনকারী, 360 ডিগ্রি অভিজ্ঞতা সরবরাহ করার জন্য প্রয়োজনীয় সমস্ত সম্পদ তৈরি করা একটি দু: খজনক প্রক্রিয়া হতে পারে।

কেবলমাত্র আপনার কাছে 3D মডেল তৈরি করার জন্য প্রয়োজনীয় সময়, সংস্থান বা অভিজ্ঞতা নেই, না এর অর্থ আপনি কোনও দুর্দান্ত ভিআর বা এআর মোবাইল অ্যাপ্লিকেশন তৈরি করতে পারবেন না! ওয়ার্ল্ড ওয়াইড ওয়েবে অবাধে উপলভ্য 3 ডি সংস্থান রয়েছে, এছাড়াও আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলিতে এই সম্পদগুলি ডাউনলোড এবং রেন্ডার করতে আপনার প্রয়োজনীয় সমস্ত API, ফ্রেমওয়ার্ক এবং লাইব্রেরি রয়েছে।

পরবর্তী পড়ুন: আপনি এখন ডেড্রিম ভিআর ব্যবহার করে যে কোনও ওয়েবসাইট দেখতে পারেন। এমনকি যে এক।

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


পলির সাথে 3 ডি সম্পদ প্রদর্শন করা হচ্ছে

আপনি যদি everক্য বিকাশে কখনও ডাবলড হয়ে থাকেন তবে পলি স্টোরগুলি ইউনিটি অ্যাসেট স্টোরের সমান - পলির সমস্ত কিছুই নিখরচায় ব্যতীত!

পলির অনেকগুলি 3D মডেল ক্রিয়েটিভ কমন্স লাইসেন্সের অধীনে প্রকাশিত হয়েছে, আপনি যতক্ষণ না আপনি নির্মাতাকে যথাযথ creditণ প্রদান করেন ততক্ষণ আপনি এই সম্পদগুলি ব্যবহার করতে, পরিবর্তন করতে এবং পুনঃস্মরণ করতে মুক্ত হন।

পলির সমস্ত 3 ডি মডেল গুগলের ভিআর এবং এআর প্ল্যাটফর্মগুলির সাথে ডায়ড্রিম এবং এআরকোরের সাথে সামঞ্জস্য করার জন্য ডিজাইন করা হয়েছে তবে আপনি এগুলি যেখানেই চাইবেন এবং যাইহোক আপনি ব্যবহার করতে পারেন - সম্ভবত আপনি এগুলি অ্যাপলের আরকিট দিয়েও ব্যবহার করতে পারেন!

পলি সম্পদগুলি পুনরুদ্ধার এবং প্রদর্শন করার ক্ষেত্রে যখন আপনার কাছে দুটি বিকল্প থাকে। প্রথমত, আপনি আপনার কম্পিউটারে সম্পদগুলি ডাউনলোড করতে পারেন এবং তারপরে এগুলিকে অ্যান্ড্রয়েড স্টুডিওতে আমদানি করতে পারেন, সুতরাং তারা আপনার অ্যাপ্লিকেশন সহ শিপ করে এবং এর APK আকারের দিকে অবদান রাখে, বা আপনি পলি API ব্যবহার করে এই সম্পদগুলি পুনরুদ্ধার করতে পারেন।


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

আপনি আপনার ব্যবহারকারীদের আরও পছন্দ দিতে পলি এপিআই ব্যবহার করতে পারেন, উদাহরণস্বরূপ যদি আপনি একটি মোবাইল গেম বিকাশ করছেন তবে আপনি আপনার ব্যবহারকারীদের বিভিন্ন চরিত্রের মডেল থেকে বেছে নিতে পারেন।

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

একটি 3 ডি মডেলিং প্রকল্প তৈরি করা হচ্ছে

আমরা অ্যাপ্লিকেশন তৈরি করতে যাচ্ছি যখন অ্যাপ্লিকেশনটি প্রথম চালু হওয়ার পরে একটি নির্দিষ্ট পলি সম্পদ পুনরুদ্ধার করে এবং তারপরে ব্যবহারকারীর অনুরোধে সেই সম্পদটি ফুলস্ক্রিন মোডে প্রদর্শন করে।

আমাদের এই সম্পদটি পুনরুদ্ধারে সহায়তা করতে, আমি ফুয়েল ব্যবহার করব, যা কোটলিন এবং অ্যান্ড্রয়েডের জন্য এইচটিটিপি নেটওয়ার্কিং লাইব্রেরি। আপনার পছন্দসই সেটিংস সহ একটি নতুন প্রকল্প তৈরি করে শুরু করুন, তবে যখন "কোটলিন সমর্থন অন্তর্ভুক্ত করুন" বেছে নেওয়ার অনুরোধ জানানো হয়।

পলি এপিআইতে আপনার করা সমস্ত কলগুলিতে অবশ্যই একটি এপিআই কী অন্তর্ভুক্ত থাকতে হবে যা আপনার অ্যাপ্লিকেশন সনাক্ত করতে এবং ব্যবহারের সীমা প্রয়োগ করতে ব্যবহৃত হয়। বিকাশ এবং পরীক্ষার সময় আপনি প্রায়শই একটি সীমাহীন এপিআই কী ব্যবহার করবেন তবে আপনার যদি এই অ্যাপটি প্রকাশের কোনও পরিকল্পনা থাকে তবে আপনার অবশ্যই একটি অ্যান্ড্রয়েড-সীমাবদ্ধ এপিআই কী ব্যবহার করতে হবে।

একটি সীমাবদ্ধ কী তৈরি করতে আপনার নিজের প্রকল্পের SHA-1 স্বাক্ষর শংসাপত্রটি জানতে হবে, সুতরাং এই তথ্যটি এখনই আসুন:

  • অ্যান্ড্রয়েড স্টুডিওর "গ্রেডল" ট্যাবটি নির্বাচন করুন (যেখানে নিম্নলিখিত স্ক্রিনশটে কার্সারটি অবস্থিত)। এটি একটি "গ্রেডেল প্রকল্পগুলি" প্যানেল খোলে।

  • "গ্রেডেল প্রকল্পগুলি" প্যানেলে আপনার প্রকল্পের ‘রুট’ প্রসারিত করতে ডাবল-ক্লিক করুন এবং তারপরে "কার্য> অ্যান্ড্রয়েড> সাইনিং রিপোর্ট" নির্বাচন করুন This এটি অ্যান্ড্রয়েড স্টুডিও উইন্ডোর নীচে একটি নতুন প্যানেল খোলে।
  • ‘টগল টাস্ক এক্সিকিউশনস / টেক্সট মোড’ বাটনটি নির্বাচন করুন (যেখানে নিম্নলিখিত স্ক্রিনশটে কার্সারটি অবস্থিত)।

"রান" প্যানেলটি এখন আপনার প্রকল্প সম্পর্কিত SHA-1 আঙুলের ছাপ সহ প্রচুর তথ্য প্রদর্শন করতে আপডেট করবে।

একটি গুগল ক্লাউড প্ল্যাটফর্ম অ্যাকাউন্ট তৈরি করুন

প্রয়োজনীয় এপিআই কী অর্জন করতে আপনার একটি Google ক্লাউড প্ল্যাটফর্ম (জিপিসি) অ্যাকাউন্ট প্রয়োজন।

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

আপনার পলি এপি কীটি পান

আপনি একবার সাইন আপ হয়ে গেলে, আপনি পলি এপিআই সক্ষম করতে এবং আপনার কী তৈরি করতে পারেন:

  • জিসিপি কনসোলে চলে যান।
  • উপরের-বাম কোণে রেখাযুক্ত আইকনটি নির্বাচন করুন এবং "এপিআই এবং পরিষেবাদি> ড্যাশবোর্ড" নির্বাচন করুন।
  • "API এবং পরিষেবাদি সক্ষম করুন" নির্বাচন করুন।
  • বাম-হাতের মেনুতে, "অন্যান্য" নির্বাচন করুন।
  • "পলি এপিআই" কার্ড নির্বাচন করুন।
  • "সক্ষম করুন" বোতামটি ক্লিক করুন।
  • কয়েক মুহুর্ত পরে, আপনাকে একটি নতুন স্ক্রিনে নিয়ে যাওয়া হবে; সাইড-মেনুটি খুলুন এবং "এপিআই এবং পরিষেবাদি> শংসাপত্রগুলি" নির্বাচন করুন।

  • পরবর্তী পপআপে, "সীমাবদ্ধ কী" নির্বাচন করুন।
  • আপনার কীটির একটি স্বতন্ত্র নাম দিন।
  • "অ্যাপ্লিকেশন বিধিনিষেধের" অধীনে "অ্যান্ড্রয়েড অ্যাপস" নির্বাচন করুন।
  • "প্যাকেজের নাম এবং আঙ্গুলের ছাপ যুক্ত করুন" নির্বাচন করুন।
  • আপনার প্রকল্পের SHA-1 ফিঙ্গারপ্রিন্টটিকে "সাইনিং-শংসাপত্রের ফিঙ্গারপ্রিন্ট" ক্ষেত্রে অনুলিপি করুন / আটকান।
  • আপনার প্রকল্পের প্যাকেজের নাম লিখুন (এটি আপনার ম্যানিফেস্টে এবং প্রতিটি শ্রেণীর ফাইলের শীর্ষে প্রদর্শিত হবে)।
  • "সংরক্ষণ করুন" এ ক্লিক করুন।

আপনাকে এখন আপনার প্রকল্পের "শংসাপত্রগুলি" স্ক্রিনে নিয়ে যাওয়া হবে, যাতে আপনার সদ্য নির্মিত পলি-সক্ষম এপিআই কী সহ - আপনার সমস্ত API কীগুলির একটি তালিকা রয়েছে।

প্রকল্পের নির্ভরতা: জ্বালানী, পি 3 ডি এবং কোটলিন এক্সটেনশনগুলি

পলি সম্পদগুলি পুনরুদ্ধার এবং প্রদর্শন করতে আমাদের কিছু অতিরিক্ত লাইব্রেরির সাহায্যের প্রয়োজন হবে:

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

আপনার প্রকল্পের বিল্ড.gradle ফাইলটি খুলুন এবং এই দুটি গ্রন্থাগারকে প্রকল্প নির্ভরতা হিসাবে যুক্ত করুন:

নির্ভরতা {বাস্তবায়ন ফাইলবৃক্ষবৃক্ষ (অন্তর্ভুক্ত:, দির: libs) বাস্তবায়ন "org.jetbrains.kotlin: কোটলিন-স্ট্ডলিব-জ্রে 7: $ কোটলিন_ভার্সন" বাস্তবায়ন com.android.support:appcompat-v7:27.1.1 // ফুয়েল লাইব্রেরি যুক্ত করুন / / বাস্তবায়ন com.github.kittinunf.fuel: ফুয়েল-অ্যান্ড্রয়েড: 1.13.0 // অ্যান্ড্রয়েড ইঞ্জিনের জন্য প্রসেসিং যুক্ত করুন // বাস্তবায়ন org.p5android: প্রসেসিং-কোর: 4.0.1}

আমাদের কোডটি আরও সংক্ষিপ্ত করে তুলতে, আমি কোটলিন অ্যান্ড্রয়েড এক্সটেনশানগুলিও ব্যবহার করব, সুতরাং আমাদের বিল্ডড্র্যাডল ফাইলটি খোলা থাকার সময় এই প্লাগইনটি যুক্ত করা যাক:

প্লাগইন প্রয়োগ করুন: কোটলিন-অ্যান্ড্রয়েড-এক্সটেনশনগুলি

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

আপনার এপিআই কী যুক্ত করা হচ্ছে

যতবারই আমাদের অ্যাপ্লিকেশন পলি থেকে কোনও সম্পদের জন্য অনুরোধ করে, এর জন্য একটি বৈধ এপিআই কীটি অন্তর্ভুক্ত করা দরকার। আমি স্থানধারক পাঠ্য ব্যবহার করছি, তবে আপনি অবশ্যই যদি অ্যাপ্লিকেশনটি কখনও কাজ করে চলেছে তবে এই স্থানধারকটিকে আপনার নিজস্ব API কী দিয়ে প্রতিস্থাপন করুন।

আমি একটি চেকও যুক্ত করছি, যাতে আপনি যদি "INSERT-YOUR-API-KEY" পাঠ্যটি প্রতিস্থাপন করতে ভুলে যান তবে অ্যাপ্লিকেশনটি একটি সতর্কতা প্রদর্শন করবে:

আমদানি android.os.Bundle আমদানি android.support.v7.app.appCompatActivity ক্লাস মূল কার্যকলাপ: AppCompatActivity () {সহকর্মী অবজেক্ট {কনস ভাল APIKey = "INSERT-YOUR-API-KEY"} ওভাররাইড মজা অনক্রিট (সেভডআইনস্ট্যান্স স্টেট: und বান্ডেল)? সুপার.অনক্রিয়েট (সেভডআইনস্ট্যান্সস্টেট) সেটকন্টেন্টভিউ (আর .layout.activity_main) // যদি API কীটি "INSERT" ... // দিয়ে শুরু হয় ... তবে (APIKey.startsWith ("INSERT")) {// নীচে টোস্টটি প্রদর্শিত করুন ... .// টোস্ট.মেকটেক্সট (এটি, "আপনি নিজের এপিআই কী আপডেট করেছেন", টোস্ট। এলএনজিটিএসএসএইচআরটি) .শো ()} অন্য {... ... ...

সম্পদ পুনরুদ্ধার করা

আপনি গুগল পলি সাইটে যে কোনও সম্পদ চয়ন করতে পারেন তবে আমি গ্রহ আর্থের এই মডেলটি ব্যবহার করব।

আপনি তার আইডি ব্যবহার করে একটি সম্পদ পুনরুদ্ধার করুন, যা ইউআরএল স্লাগের শেষে প্রদর্শিত হবে (পূর্ববর্তী স্ক্রিনশটটিতে হাইলাইট করা হয়েছে)। আমরা এই সম্পদ আইডিটিকে পলি এপিআই হোস্টের সাথে একত্রিত করি যা "https://poly.googleapis.com/v1"।

আমদানি android.content.Inttent আমদানি android.os.Bundle আমদানি android.support.v7.app.AppCompatActivity আমদানি android.widget.Toast আমদানি com.github.kittinunf.fuel.android.extension.responseJson আমদানি com.github.kittinunf.fuel .httpDownload আমদানি com.github.kittinunf.fuel.http গুগল আমদানি করুন kotlinx.android.synthet.main.activity_main। * আমদানি java.io.File বর্গ প্রধান ক্রিয়াকলাপ: অ্যাপকোম্প্যাটঅ্যাক্টিভিটি () object সহচর অবজেক্ট {কনট Val APIKey = "INSERT-YOUR-API -KEY "ভাল সম্পদ URL =" https://poly.googleapis.com/v1/assets/94XG1XUy10q "on ওভারক্রাইড মজা onCreate (সেভেনডান্সস্টেট: বান্ডেল?) {সুপার.অনক্রিট (সেভডআইনস্ট্যান্সস্টেট) সেটকন্টেন্টভিউ (আর.লেআউট.অ্যাক্টিভিটি_মেন) APIKey.startsWith ("INSERT")) ast Toast.makeText (এটি, "আপনি নিজের API কী আপডেট করেছেন", টোস্ট.এলএনজিএইচথএসএইচআরটি) .শো ()} অন্য {

এর পরে, আমাদের httpGet () পদ্ধতিটি ব্যবহার করে সম্পদ ইউআরএলটিতে একটি জিইটি অনুরোধ করা দরকার। আমি আরও উল্লেখ করছি যে প্রতিক্রিয়া প্রকারটি অবশ্যই JSON হওয়া উচিত:

আমদানি android.content.Inttent আমদানি android.os.Bundle আমদানি android.support.v7.app.AppCompatActivity আমদানি android.widget.Toast আমদানি com.github.kittinunf.fuel.android.extension.responseJson আমদানি com.github.kittinunf.fuel .httpDownload আমদানি com.github.kittinunf.fuel.http গুগল আমদানি করুন kotlinx.android.synthet.main.activity_main। * আমদানি java.io.File বর্গ প্রধান ক্রিয়াকলাপ: অ্যাপকোম্প্যাটঅ্যাক্টিভিটি () object সহচর অবজেক্ট {কনট Val APIKey = "INSERT-YOUR-API -KEY "ভাল সম্পদ URL =" https://poly.googleapis.com/v1/assets/94XG1XUy10q "on ওভারক্রাইড মজা onCreate (সেভেনডান্সস্টেট: বান্ডেল?) {সুপার.অনক্রিট (সেভডআইনস্ট্যান্সস্টেট) সেটকন্টেন্টভিউ (আর.লেআউট.অ্যাক্টিভিটি_মেন) APIKey.startsWith ("INSERT")) ast Toast.makeText (এটি, "আপনি নিজের এপিআই কী আপডেট করেছেন", টোস্ট.এলএনজিটিএসএসএইচআরটি)। শো ()} অন্য {// সার্ভার কল করুন, এবং তারপরে ডেটাটি ব্যবহার করে পাস করুন "ListOf" পদ্ধতি // assetURL.http গেট (listOf (APIKey এর "কী"))। প্রতিক্রিয়া জেসন {অনুরোধ, প্রতিক্রিয়া, ফলাফল -> // প্রতিক্রিয়া দিয়ে কিছু করুন // রেজাল্ট.ফোল্ড ({মান হিসাবে { সেট = it.obj ()

সম্পদের বেশ কয়েকটি ফর্ম্যাট থাকতে পারে যেমন ওবিজে, জিএলটিএফ, এবং এফবিএক্স। আমাদের নির্ধারণ করা দরকার যে সম্পদটি ওবিজে ফর্ম্যাটে রয়েছে।

এই পদক্ষেপে, আমাদের ডাউনলোড করতে হবে এমন সমস্ত ফাইলের নাম এবং ইউআরএলও পুনরুদ্ধার করছি,
সম্পদের প্রাথমিক ফাইল ("রুট"), এবং কোনও সম্পর্কিত উপাদান এবং টেক্সচার ফাইল ("সংস্থানসমূহ") সহ

যদি আমাদের অ্যাপ্লিকেশন সঠিকভাবে সম্পদটি পুনরুদ্ধার করতে অক্ষম হয়, তবে এটি ব্যবহারকারীকে অবহিত করে একটি টোস্ট প্রদর্শন করবে।

আমদানি android.content.Inttent আমদানি android.os.Bundle আমদানি android.support.v7.app.AppCompatActivity আমদানি android.widget.Toast আমদানি com.github.kittinunf.fuel.android.extension.responseJson আমদানি com.github.kittinunf.fuel .httpDownload আমদানি com.github.kittinunf.fuel.http গুগল আমদানি করুন kotlinx.android.synthet.main.activity_main। * আমদানি java.io.File বর্গ প্রধান ক্রিয়াকলাপ: অ্যাপকোম্প্যাটঅ্যাক্টিভিটি () object সহচর অবজেক্ট {কনট Val APIKey = "INSERT-YOUR-API -KEY "ভাল সম্পদ URL =" https://poly.googleapis.com/v1/assets/94XG1XUy10q "on ওভারক্রাইড মজা onCreate (সেভেনডান্সস্টেট: বান্ডেল?) {সুপার.অনক্রিট (সেভডআইনস্ট্যান্সস্টেট) সেটকন্টেন্টভিউ (আর.লেআউট.অ্যাক্টিভিটি_মেন) APIKey.startsWith ("INSERT")) ast Toast.makeText (এটি, "আপনি নিজের API কী আপডেট করেছেন", টোস্ট.এলএনজিটিএসএসএইচআরটি)। দেখান ()} অন্য {// সম্পদ ইউআরএল // সম্পদ URL এ একটি জিইটি অনুরোধ করুন। httpGet (listOf (APIKey to "key"))। প্রতিক্রিয়া জেসন {অনুরোধ, প্রতিক্রিয়া, ফলাফল -> // প্রতিক্রিয়া দিয়ে কিছু করুন // রেজাল্ট.ফোল্ড ({ভাল সম্পদ = it.obj () var অবজেক্ট URL: স্ট্রিং? = নাল ওয়ার মেটাল লাইবারি নাম: স্ট্রিং? = নাল ওয়ার মেটাল লাইবারি ইউআরএল: স্ট্রিং? = নাল // সম্পত্তির ফর্ম্যাটটি পরীক্ষা করে "ফরমেট" অ্যারে // ভ্যালু অ্যাসেটফর্ম্যাটস = asset.getJSONArray ("ফর্ম্যাটস") // সমস্ত ফরমেটের মাধ্যমে লুপ করুন // এর জন্য (আমি 0 এ্যাসেট ফরমেটস.লেন্থ () অবধি) { ভাল কারেন্ট ফরমেট = assetFor format.getJSONObject (i) // এই সংস্থানটির ফর্ম্যাট প্রকারটি সনাক্ত করতে ফর্ম্যাটটাইপ ব্যবহার করুন। যদি ফর্ম্যাটটি ওবিজে হয়… .// যদি (বর্তমান ফরম্যাট.সেটস্ট্রিং ("ফর্ম্যাটটাইপ") == "ওবিজে") {//... তবে এই সংস্থানটির 'রুট' ফাইলটি উদ্ধার করুন, অর্থাৎ ওবিজে ফাইল // অবজেক্ট URL = কারেন্ট ফরম্যাট mat getJSONObject ("রুট") .getString ("url") // সমস্ত মূল ফাইলের নির্ভরতা পুনরুদ্ধার করুন // উপাদানলিবারিয়ান নাম = কারেন্টফর্ম্যাটসেট জেএসএসএনআরাই ("রিসোর্সস") .getJSONObject (0) .get স্ট্রিং ("আপেক্ষিকপথ") উপাদানলিবারলিআরএল = বর্তমান ফর্ম্যাট ("রিসোর্স") .getJSONObject (0) .getString ("url") ব্রেক}} অবজেক্ট ইউআরএল !!। httpDownload ()। গন্তব্য {_, _ -> ফাইল (ফাইলডির, "গ্লোবএ্যাসেট.ওবজ") resp .অনজন্য {_ , _, ফলাফল -> ফলাফল.fold ({}, {// আপনি যদি ওবিজে ফাইলটি সনাক্ত বা ডাউনলোড করতে না পারেন তবে একটি ত্রুটি প্রদর্শন করুন // টোস্ট.মেকটেক্সট (এটি, "রিসোর্স ডাউনলোড করতে অক্ষম", টোস্ট.এলএনজিএইচটিএসএসএইচআরটি ) .শো ()})} ম্যাটারিয়াল লাইব্রিয়াল ইউআরএল !!। HTTP ডাউনডাউন ()। গন্তব্য {_, _ -> ফাইল (ফাইলডাইর, ম্যাটারিয়াললিবারিনেম)} .অনৌযোগ। _, _, ফলাফল -> ফলাফল.ফোল্ড ({}, ast টোস্ট। মেক টেক্সট (এটি, "রিসোর্স ডাউনলোড করতে অক্ষম", টোস্ট LE এলএনজিটিএসএসএইচআরটি) sh ow)} ow, ow ow টোস্ট.মেকটেক্সট (এটি, "রিসোর্স ডাউনলোড করতে অক্ষম", টোস্ট LE এলএনজিটিএসএসএইচআরটি) sh শো ()})}}

এই মুহুর্তে, আপনি যদি আপনার অ্যান্ড্রয়েড স্মার্টফোন বা ট্যাবলেট বা অ্যান্ড্রয়েড ভার্চুয়াল ডিভাইস (এভিডি) এ প্রকল্পটি ইনস্টল করেন তবে সম্পদটি সফলভাবে ডাউনলোড হবে তবে অ্যাপটি বাস্তবে এটি প্রদর্শিত হবে না। এখনই এটি ঠিক করা যাক!

দ্বিতীয় স্ক্রিন তৈরি করা হচ্ছে: নেভিগেশন যুক্ত করা হচ্ছে

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

এখন আসুন মেইনএকটিভিটি.কিটি ফাইলের শেষে অনক্লিকলিস্টার যুক্ত করুন:

আমদানি android.content.Inttent আমদানি android.os.Bundle আমদানি android.support.v7.app.AppCompatActivity আমদানি android.widget.Toast আমদানি com.github.kittinunf.fuel.android.extension.responseJson আমদানি com.github.kittinunf.fuel .httpDownload আমদানি com.github.kittinunf.fuel.http গুগল আমদানি করুন kotlinx.android.synthet.main.activity_main। * আমদানি java.io.File বর্গ প্রধান ক্রিয়াকলাপ: অ্যাপকোম্প্যাটঅ্যাক্টিভিটি () object সহচর অবজেক্ট {কনট Val APIKey = "INSERT-YOUR-API -KEY "ভাল সম্পদ URL =" https://poly.googleapis.com/v1/assets/94XG1XUy10q "on ওভারক্রাইড মজা onCreate (সেভেনডান্সস্টেট: বান্ডেল?) APIKey.startsWith ("INSERT")) ast Toast.makeText (এটি, "আপনি নিজের API কী আপডেট করেছেন", Toast.LENGTH_SHORT)। দেখান () অন্য {assetURL.http গেট (listOf (APIKey- এ "কী"))। প্রতিক্রিয়া জাসন {অনুরোধ, প্রতিক্রিয়া, ফলাফল -> ফলাফল.fold ({ভাল সম্পদ = it.obj () var অবজেক্ট ইউআরএল: স্ট্রিং? = নাল ওয়ার মেটাল লাইবারিয়ান নাম: স্ট্রিং? = নাল ওয়ার মেটাল লাইব্রিয়াল URL: স্ট্রিং ING? = নাল ভাল এ্যাসেট ফরমেটস = asset.getJSONArray ("ফর্ম্যাটস") এর জন্য (আমি 0 এ্যাসেট ফরমেটস.লেন্থ ()) এর জন্য current ভাল কারেন্ট ফরমেট = asset Format.getJSONObject (i) যদি (বর্তমান ফোর্ম্যাট.সেটস্ট্রিং ("ফর্ম্যাটটাইপ") == "ওবিজে" ) {অবজেক্ট ইউআরএলএল = কারেন্ট ফরমেট.সেট জেএসএনঅবজেক্ট ("মূল") ) .getJSONObject (0) .getString ("url") ব্রেক}} অবজেক্ট ইউআরএল !!। httpDownload ()। গন্তব্য {_, _ -> ফাইল (ফাইলডির, "globeAsset.obj") resp .অনজনিত {_, _, ফলাফল -> রেজাল্ট.ফোল্ড ({}, ast টোস্ট.মেকটেক্সট (এটি, "রিসোর্স ডাউনলোড করতে অক্ষম", টোস্ট.এলএনজিটিএসএসএইচআরটি)। দেখান ()})} উপাদানলিবারিয়ানাল! !! httpDownload () গন্তব্য {_, _ -> ফাইল (ফাইলডায়ার, ম্যাটারিয়াললিবারিনেম) resp .অনৌযোগ {_, _, ফলাফল -> ফলাফল.ফোল্ড ({}, {টোস্ট.মেকটেক্সট (এটি, "রিসোর্স ডাউনলোড করতে অক্ষম", টোস্ট.এলএনজিটিএসএইচআরটি)। শো ()})}}, Ast টোস্ট.মেকটেক্সট (এটি, "রিসোর্স ডাউনলোড করতে অক্ষম", টোস্ট LE এলএনজিটিএসএসএইচআরটি) sh ow ()})} // একটি বোতাম কার্যকর করুন // displayButton.setOnClickListener {ভাল অভিপ্রায় = ইচ্ছাকৃত (এটি, দ্বিতীয়তলাবদ্ধতা :: class.java) startActivity (উদ্দেশ্য); }}}

থ্রিডি ক্যানভাস তৈরি করা হচ্ছে

এখন, ক্রিয়াকলাপটি তৈরি করা যাক যেখানে আমরা আমাদের সম্পদটি পূর্ণস্ক্রিন মোডে প্রদর্শন করব:

  • আপনার প্রকল্পের MainActivity.kt ফাইলটি নিয়ন্ত্রণ করুন-ক্লিক করুন এবং "নতুন> কোটলিন ফাইল / শ্রেণি" নির্বাচন করুন।
  • "কিন্ড" ড্রপডাউনটি খুলুন এবং "ক্লাস" নির্বাচন করুন।
  • এই শ্রেণিকে "সেকেন্ডঅ্যাক্টিভিটি" নাম দিন এবং তারপরে "ঠিক আছে" ক্লিক করুন।

3 ডি অবজেক্ট আঁকার জন্য আমাদের একটি 3D ক্যানভাস দরকার! আমি অ্যান্ড্রয়েডের লাইব্রেরির পি 3 ডি রেন্ডারারের জন্য প্রসেসিংটি ব্যবহার করতে যাচ্ছি, যার অর্থ পিপ্লেলেট শ্রেণি প্রসারিত করা, সেটিংস () পদ্ধতিটিকে ওভাররাইড করে এবং তারপরে পুরো স্ক্রিন () পদ্ধতির আর্গুমেন্ট হিসাবে পি 3 ডি পাস করা। আমাদের এমন একটি সম্পত্তিও তৈরি করতে হবে যা পলি এ্যাসেটকে পিএসএপ অবজেক্ট হিসাবে প্রতিনিধিত্ব করে।

প্রাইভেট মজাদার ডিসপ্লেআসেট () {ভাল ক্যানভাস 3 ডি = অবজেক্ট: পিপ্লেলেট () {ভ্যার পলিএসেট: PShape? = নাল ওভাররাইড মজাদার সেটিংস () {ফুলস্ক্রিন (PConstants.P3D)}

এরপরে, আমাদের সেটআপ () পদ্ধতিটি ওভাররাইড করে, লোডশেপ () পদ্ধতিটি কল করে এবং .obj ফাইলের পরম পথটি পেরিয়ে আমাদের পিএসএইপ অবজেক্টটি আরম্ভ করতে হবে:

ওভাররাইড মজাদার সেটআপ () {বহুআসেট = লোডশ্যাপ (ফাইল (ফাইলডির, "globeAsset.obj") absolute পরমপথ)}

P3D এর ক্যানভাসে অঙ্কন

এই 3D ক্যানভাসটি আঁকতে, আমাদের ড্র () পদ্ধতিটি ওভাররাইড করতে হবে:

ওভাররাইড মজাদার অঙ্কন () {পটভূমি (0) আকৃতি (পলিএসেট)}

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

স্কেল () পদ্ধতিতে নেতিবাচক মান দিয়ে আপনি সম্পদের আকার বাড়াতে পারবেন:

স্কেল (-10f)

অনুবাদ () পদ্ধতি এবং নিম্নলিখিত সমন্বয়গুলি ব্যবহার করে আপনি ভার্চুয়াল 3 ডি স্পেসে সম্পদের অবস্থান সামঞ্জস্য করতে পারেন:

  • এক্স. অনুভূমিক অক্ষের সাথে সম্পদ স্থির করে।
  • ওয়াই উল্লম্ব অক্ষ বরাবর সম্পদ অবস্থান করে।
  • জেড এটি হল "গভীরতা / উচ্চতা" অক্ষ, যা একটি 2D অবজেক্টকে 3 ডি অবজেক্টে রূপান্তর করে। ধনাত্মক মানগুলি এই ধারণাটি তৈরি করে যে বস্তুটি আপনার দিকে আসছে এবং নেতিবাচক মানগুলি এই ধারণাটি তৈরি করে যে বস্তুটি আপনার থেকে দূরে চলেছে।

নোট করুন যে রূপান্তরগুলি ক্রমযুক্ত, সুতরাং ফাংশনটির পরে ঘটে যাওয়া সমস্ত কিছুই প্রভাব জমে।

আমি নিম্নলিখিত ব্যবহার করছি:

অনুবাদ (-50f, -100f, 10f)

এখানে সম্পূর্ণ কোডটি রয়েছে:

ওভাররাইড মজাদার অঙ্কন () {পটভূমি (0) স্কেল (-10f) অনুবাদ (-50f, -100f) // আকৃতি () পদ্ধতি // আকৃতি (বহুআসেট) calling calling কল করে সম্পদটি আঁকুন

এর পরে, আমাদের সংশ্লিষ্ট লেআউট ফাইল তৈরি করতে হবে, যেখানে আমরা ফ্রেম-লেআউট উইজেট হিসাবে 3 ডি ক্যানভাস যুক্ত করব:

  • আপনার প্রকল্পের "পুনরায়> লেআউট" ফোল্ডারটি নিয়ন্ত্রণ করুন।
  • "লেআউট রিসোর্স ফাইল" নির্বাচন করুন।
  • এই ফাইলটিকে "गतिविधि_সেকেন্ড" নাম দিন এবং তারপরে "ঠিক আছে" ক্লিক করুন।

এখন আমাদের "সম্পদ_দর্শন" ফ্রেমলআউট রয়েছে, আমাদের আমাদের দ্বিতীয় কার্যকলাপটিকে এটি জানাতে হবে! সেকেন্ডএটিভিটি.কটি ফাইলে ফ্লিপ করুন, একটি নতুন পিফ্রেগমেন্ট উদাহরণ তৈরি করুন এবং এটি আমাদের "সম্পদ_দর্শন" উইজেটের দিক নির্দেশ করুন:

আমদানি android.os.Bundle আমদানি android.support.v7.app.appCompatActivity আমদানি কোটলিনেক্স.অ্যান্ড্রয়েড.সেন্টিথিক.মেন.অ্যাকটিভিটি_সেকেন্ড। .Shape আমদানি java.io.File ক্লাস দ্বিতীয় কার্যকলাপ: AppCompatActivity () {ওভাররাইড মজা onCreate (সেভডআইনস্ট্যান্সস্টেট: বান্ডেল?) {সুপার.অনক্রিয়েট (সেভডআইনস্ট্যান্সস্টেট) সেটকন্টিভিউ (আর .আলআউট.অ্যাক্টিভিটি_সেকেন্ড) ডিসপ্লে -সেটসেট () fun বেসরকারী ফান্টসেট) ক্যানভাস 3 ডি = অবজেক্ট: পিপ্লেলেট () poly ভ্যার পলিএসেট: PShape? = নাল ওভাররাইড মজাদার সেটিংস () {ফুলস্ক্রিন (PConstants.P3D)} ওভাররাইড মজাদার সেটআপ () {polyAsset = loadShape (ফাইল (ফাইলডির, "globeAsset.obj")। পরমপথ) r ওভাররাইড মজাদার ড্র () {পটভূমি (0) স্কেল (-10f) অনুবাদ (-50f, -100f) আকৃতি (পলিএসেট)}} // নিম্নলিখিত // ভ্যালু এসেটভিউ = পিফ্রেগমেন্ট (ক্যানভাস 3 ডি) অ্যা্যাসেটভিউ.সেটভিউ (সম্পদ_দর্শন, এটি) যুক্ত করুন}}

চূড়ান্ত পদক্ষেপটি আপনার ম্যানিফেস্টে সেকেন্ড অ্যাক্টিভিটি যুক্ত করছে:

// নিম্নলিখিত যোগ করুন //

আপনার প্রকল্প পরীক্ষা করা হচ্ছে

আমরা এখন সমাপ্ত প্রকল্পটি পরীক্ষা করতে প্রস্তুত! এটি আপনার অ্যান্ড্রয়েড ডিভাইস বা এভিডিতে ইনস্টল করুন এবং নিশ্চিত করুন যে আপনার একটি সক্রিয় ইন্টারনেট সংযোগ রয়েছে। অ্যাপ্লিকেশনটি চালু হওয়ার সাথে সাথে এটি সম্পদটি ডাউনলোড করবে এবং তারপরে আপনি "প্রদর্শন সম্পদ" বোতামটি একটি ট্যাপ দিয়ে এটি দেখতে পারবেন can

আপনি এই সম্পূর্ণ প্রকল্পটি গিটহাব থেকে ডাউনলোড করতে পারেন।

মোড়ক উম্মচন

এই নিবন্ধে, আমরা রানটাইমে কোনও 3D সম্পদ পুনরুদ্ধার করার জন্য পলি এপিআই কীভাবে ব্যবহার করব এবং অ্যান্ড্রয়েড লাইব্রেরির প্রসেসিং ব্যবহার করে কীভাবে সেই সম্পদটি প্রদর্শন করব তা আমরা দেখেছি। আপনি কী ভাবেন যে পলি এপিআই-তে ভিআর এবং এআর বিকাশ আরও বেশি লোকের কাছে অ্যাক্সেসযোগ্য করার সম্ভাবনা রয়েছে? নীচের মতামত আমাদের জানতে দিন!

সম্পর্কিত

  • গুগল 2018 এ আর অ্যাপ্লিকেশনগুলিকে "কয়েক মিলিয়ন" অ্যান্ড্রয়েড ডিভাইসে নিয়ে আসবে
  • গুগল আপনাকে বিনামূল্যে এআই এবং মেশিন লার্নিং সম্পর্কে শিখিয়ে দেবে
  • গুগল কার্ডবোর্ডের জন্য সেরা 15 টি ভিআর গেমস
  • গুগল কার্ডবোর্ডের জন্য সেরা 10 টি ভিআর অ্যাপ্লিকেশন
  • গুগল ফুচিয়া কি? এটি কি নতুন অ্যান্ড্রয়েড?
  • গুগল ডুপ্লেক্স কি? - বৈশিষ্ট্য, প্রকাশের তারিখ এবং আরও অনেক কিছু
  • কীভাবে মাত্র 7 মিনিটের মধ্যে অ্যান্ড্রয়েডের জন্য একটি ভিআর অ্যাপ তৈরি করবেন
  • মোবাইল ভিআর হেডসেটগুলি - আপনার সেরা বিকল্পগুলি কী কী?

গুগল পিক্সেল 4 লঞ্চটি এক মাসেরও কম সময় বাদে, তবে পিক্সেল 3 সিরিজটি সঠিক দামের জন্য খুঁজে পেতে পারলে এখনও পাওয়া উপযুক্ত। ভাগ্যক্রমে, গুগল ফাইতে আপনি যা খুঁজছেন তা থাকতে পারে, কারণ এটি 2018 এর শেষের দ...

যদিও গুগল পিক্সেল 3 এবং পিক্সেল 3 এক্সএল কেবল এক মাসেরও বেশি সময় বাইরে চলে গেছে, আপনি গুগলের কোনও ফ্ল্যাগশিপ স্মার্টফোন বেছে নিলে বেস্ট বায় ইতিমধ্যে নিস ক্যামে নিখরচায় ছুটে চলেছে।...

আজকের আকর্ষণীয়