বেশ কয়েক বছর আগে আমি এমন একটি কৌশল শুনেছি যা ব্যবহারকারীকে 2 ডি টেক্সচার ব্যবহার করে ঘূর্ণনকারী গ্রহের মায়া দেয়। প্রদত্ত যে ব্যবহারকারী তার অবস্থান বা ভিউপোর্টটি পরিবর্তন করতে সক্ষম নয়।
এই কৌশলটির নাম কী?
বেশ কয়েক বছর আগে আমি এমন একটি কৌশল শুনেছি যা ব্যবহারকারীকে 2 ডি টেক্সচার ব্যবহার করে ঘূর্ণনকারী গ্রহের মায়া দেয়। প্রদত্ত যে ব্যবহারকারী তার অবস্থান বা ভিউপোর্টটি পরিবর্তন করতে সক্ষম নয়।
এই কৌশলটির নাম কী?
উত্তর:
ঠিক আছে আমি মনে করি আমার কাছে এখন রেপ আছে। এম্বেড থাকা চিত্র সহ পূর্ববর্তী পোস্টের বিষয়বস্তু। এটি কি আপনি ঘোরাচ্ছেন গ্রহের প্রভাব? তারার ক্ষেত্রের একটি আধা-স্বচ্ছ "গর্ত" এর মাধ্যমে এটি কেবল একটি স্ক্রলিং 2 ডি চিত্র।
প্রভাবটি কেমন হবে তার একটি দ্রুত সামান্য অ্যানিমেটেড জিএফ আমি একসাথে রেখেছি। স্পষ্টতই এটি অনেক মসৃণ এনিমেটেড হতে পারে - আমি গ্রহের পৃষ্ঠটি প্রতিটি ফ্রেমকে 4 পিক্সেল দ্বারা স্থানান্তরিত করেছি। এটি চিত্রটি মোড়ানোর জন্যও সেট করে নেই যাতে লুপের শেষে কোনও ত্রুটি থাকে।
গ্রহ http://www.perludus.com/orbit.gif
আমি ফটোশপটিতে এটি সবই করেছি, তবে ধারণার 2D রেন্ডারিং পরিবেশে কাজ করা উচিত যা আপনাকে আলফা ট্রান্স্পারেন্সিসিগুলি করতে দেয়, ইত্যাদি Here প্রক্রিয়াটি দেখানোর জন্য এখানে একটি ধারাবাহিক স্ক্রিনশট দেওয়া আছে ...
আপনার গ্রহের পৃষ্ঠকে অ্যানিমেট করার জন্য, কেবলমাত্র অন্তর্নিহিত গ্রহের পৃষ্ঠের অঙ্গবিন্যাসকে সরান। বিনা এবং অন্তহীন ঘূর্ণনটি পেতে প্রান্তে পৌঁছালে আপনাকে টেক্সচারটি স্থানান্তর করার বিষয়ে চতুর হতে হবে।
আশা করি এটি আপনাকে কার্যকরভাবে সন্ধান করছে এবং তা কার্যকর হবে!
পিএস গ্রহের টেক্সচার তৈরির পরিবর্তে অভিনব উপায় সহ শিল্পীদের সম্পর্কে এই নিবন্ধটি দেখেছেন - আমাকে এই উত্তরটি ভাবতে বাধ্য করেছেন :) http://www.behance.net/gallery/Pan-Planets/9557465
আমি আপনার অর্থটি অনুমান করতে চলেছি, এবং কেবল একটি ধারণা সেখানে ফেলে দিন, তবে এটি এটি করার জন্য 'বিখ্যাত' উপায় হতে চলেছে না।
সব 2D তে
2 টেক্সচার নিন। একটি আপনার জমির ভর, অন্যটি আপনার মেঘ। মেঘের একটি আলফা স্তর থাকা উচিত যা মেলে যাতে আপনি 'সেগুলি দেখতে পারেন'।
টেক্সচারকে টাইলটেবল করে তুলুন, এটাই সেগুলি সীমাহীন মোড়ানো। এমন প্রোগ্রাম রয়েছে যা আপনাকে অনুসরণ করতে পারে এমন ফটোশপগুলিতে বা এই টিউটোরিয়ালগুলিকে তৈরি করতে সহায়তা করে।
তারপরে অবশেষে আপনি একটি স্টেনসিল মুখোশ তৈরি করেন যা কেবল একটি বৃত্ত, তাই আপনি আপনার বর্গক্ষেত্রগুলিতে একটি বৃত্তাকার গর্তের মধ্য দিয়ে দেখতে পাবেন, এভাবে কোণগুলি ছুঁড়ে ফেলেছেন।
এখন আপনি স্থল এবং মেঘের টেক্সচারের টেক্সচার ম্যাট্রিক্সগুলি এনিমেট করুন যাতে তাদের সরানো যায়। এগুলিকে বিভিন্ন দিকে এবং গতিতে সরান এবং এটি ঘোরানো বলে মনে হবে। এগুলি সমস্ত নির্ভর করে আপনি কীভাবে নির্বিঘ্নে আপনার টেক্সচারটি তৈরি করেছেন।
আমি মনে করি এই নিবন্ধটি কৌশলটি বর্ণনা করে। (এটি রাশিয়ান ভাষায়, সুতরাং আমি অনুবাদিত লিঙ্কটি পোস্ট করি))
আমি এটি এখানে বাস্তবায়ন করেছি। http://github.com/meric/renderplanet
মূলত আপনি একটি চিত্র নিয়ে যান যা অর্থোগ্রাফিক প্রজেকশনকে এনকোড করে ( http://mathworld.wolfram.com/OrthographicProication.html ) এবং শেডার ব্যবহার করে আপনার গ্রহ এবং মেঘের কাঠামোটিকে চারপাশে মোড়ানো। গ্রহের টেক্সচারটি ডিটি অনুযায়ী এটি ঘোরানোর জন্য অফসেট করুন। বায়ুমণ্ডলের আংটি এবং ছায়ার জন্য একটি প্রস্তুত ট্রান্সলুসেন্ট চিত্র ব্যবহার করুন, বা এটি শূন্যতার জন্য শ্যাডারের সাথে পরীক্ষামূলকভাবে অর্কগুলি অঙ্কন করে এবং কিছু তৈরি করে উত্পন্ন করুন।
চিত্রটি এখানে:
চেনাশোনাটির মধ্যে প্রতিটি পিক্সেলের জন্য, Red + Green/255
গ্রহ / মেঘের টেক্সচারের এক্স কর্ডিনেটকে দেখার Blue + Alpha/255
জন্য স্বাভাবিক করা হয় এবং ওয়াই স্থানাঙ্কিকে স্বাভাবিক করা হয়।
ফলাফল এখানে:
গ্রহ এবং মেঘের টেক্সচার সমান্তরাল প্রক্ষেপণে হওয়া উচিত।
আপনি যে প্রসঙ্গে কাজ করছেন তার উপর বিধিনিষেধ সম্পর্কে আপনার প্রশ্নটি অস্পষ্ট 3D থ্রিডি রেন্ডারিংয়ের বিশাল অংশের টেক্সচার 2 ডি। সুতরাং আপনি যদি কেবল চারদিকে ম্যাপযুক্ত 2D পৃষ্ঠের টেক্সচারটি দিয়ে একটি 3 ডি স্পিওর দেখিয়ে থাকেন তবে এটি আসলে সমস্যা নয়। আপনি যদি থ্রিডি রেন্ডারিং ব্যবহার করতে না পারেন, তবে আপনি কী ব্যবহার করতে পারবেন তা আপনাকে অবশ্যই বলতে হবে।
মূল সমস্যাটি হ'ল আপনাকে একটি গোলকের পৃষ্ঠের উপরে একটি সমতল টেক্সচার রেন্ডার করতে হবে, যা আপনি থ্রিডি রেন্ডারিং সহ বিনামূল্যে পান get গ্রহটি ঘোরার সাথে সাথে গ্রহের পৃষ্ঠের দৃশ্যমান অংশগুলি একটি অ-রৈখিক উপায়ে অ্যানিমেটেড হয় (জমিনের নিরক্ষীয় অংশগুলি মেরুগুলির চেয়ে দ্রুত সরে যায়)। সুতরাং আমি মনে করি ডিস্কের উপরে এটি তৈরি করার সময় আপনার নিজের চিত্রটি নিজেকে বিকৃত করতে হবে অথবা ভার্চুয়ালভাইডের পরামর্শ অনুসারে আপনি নিজেই করেছেন এবং আপনার একাধিক চিত্র রয়েছে যা আপনি সময়ের সাথে সাথে পরিবর্তিত হন।
এটি প্রয়োগ করা ভয়াবহ হবে তবে আপনি যদি টেক্সচারটি পিক্সেল দ্বারা পিক্সেল রেন্ডার করতে সক্ষম হন তবে আপনি মূলত গোলকের প্রতিটি লাইনের জন্য পৃথকভাবে রেসটারাইজেশন গণনা করতে পারেন। আসুন ধরে নেওয়া যাক আপনার পৃষ্ঠের মানচিত্রের গঠনটি সমতল হয়েছে, যাতে নিরক্ষীয় অঞ্চলে 512px চিত্র থাকে x আসুন ধরে নেওয়া যাক আপনার দৃশ্যমান ডিস্কটি 256 পিক্সের প্রশস্ত। এখন রেন্ডারড ডিস্কের প্রতিটি লাইনকে পৃষ্ঠের টেক্সচারে স্লাইডিং উইন্ডো হিসাবে ভাবেন। নিরক্ষীয় অঞ্চলে, উইন্ডোটি জমিনের প্রস্থের 50% হয় এবং আপনি কেবল 256px এর প্রত্যেকটিকেই ডিস্কের সমতুল্য পিক্সেলটিতে অনুলিপি করেন। ডিস্কের পরবর্তী লাইনটি 256 পিক্সেলের চেয়ে সামান্য কম হবে তবে বিকৃত পৃষ্ঠের মানচিত্রের কারণে, এখনও ইনপুট পৃষ্ঠের মানচিত্রের ডেটা 256px রয়েছে। সুতরাং আপনি ইনপুট পৃষ্ঠের মানচিত্রের ডেটা উপ-নমুনা করুন এবং ফলস্বরূপ পিক্সেলটি সরবরাহ করুন। সহজ গণিতের জন্য, আসুন ' s ধরে নিও যে নিরক্ষীয় এবং মেরুর মধ্যবর্তী 1/3 পথ আউটপুট ডিস্কে 128px প্রশস্ত। সুতরাং সেই 128px এর প্রতিটিতে গড়ে 2 টি প্রতিবেশী পিক্সেল হতে চলেছে। আপনি যখন মেরুতে নামবেন, আপনি কেবল কয়েকটি আউটপুট পিক্সেলগুলিতে সমস্ত 256px গড় বজায় রাখবেন।
আপনি এটি অন্য উপায়েও করতে পারেন, এবং উত্স টেক্সচারের লাইনগুলি বিভিন্ন দৈর্ঘ্যের হতে পারে। সোর্স ডেটা সম্বলিত লাইনটিতে 512px থাকা অবস্থায়, নীচের দিকে 1/3 লাইনটি কেবল 256px রয়েছে এবং নীচে লাইনটিতে কয়েকটি পিক্সেল রয়েছে। তবে প্রতিটি লাইন সমতুল্য y স্থানাঙ্কে ডিস্কের প্রস্থের দ্বিগুণ। যদিও এই ধরণের টেক্সচারটি তৈরি করা একেবারে ভয়াবহ হবে। এবং সম্ভবত ভয়াবহ aliasing সমস্যা ভুগতে হবে।
উভয় ক্ষেত্রেই আপনার অ্যানিমেশনটি কেবলমাত্র ইনপুট টেক্সচারে প্রারম্ভিক পিক্সেল এক্স বৃদ্ধি করে এবং ইনপুট টেক্সচার লাইনের শুরুতে মোড়ানো হয়।
আমি এখন এ সম্পর্কে যত বেশি লিখছি, তত বেশি আমি নিশ্চিত হয়েছি যে এটি একটি ভয়াবহ ধারণা, আপনি যদি বাস্তবে অন্য কোনও পছন্দ না করেন তবেই আপনি এটি প্রয়োগ করতেন। অন্য কোনও পছন্দ না থাকলে আপনাকে খুব অস্বাভাবিক পরিস্থিতিতে থাকতে হবে।
আমি বিশ্বাস করি না যে আমি একটি নির্দিষ্ট নামযুক্ত কৌশল হিসাবে এর (বরং অস্পষ্ট) সমস্যার কোনও সমাধান শুনেছি।
Sprites। দেখে মনে হচ্ছে আপনি যে বর্ণনা করছেন তা হ'ল সস্তাভাবে রেন্ডার করার জন্য 3 ডি গেম ইঞ্জিনের 2D স্প্রাইট (অনেকগুলি প্রাথমিক 3 ডি ইঞ্জিনের মতোই নিন্টেন্ডো 64 এই জায়গা জুড়ে এটি করেছে)।
যদি আপনি কোনও গ্রহকে ঘোরানো রেন্ডার করতে চান তবে আপনাকে কেবল একটি 2 ডি স্প্রিট প্রদর্শন করতে হবে যা একটি স্প্রিট শীটের উপর ভিত্তি করে অ্যানিমেটেড ছিল যা প্রাক-রেন্ডার গ্রহের ঘূর্ণন ছিল। যেমন একটি অ্যানিমেটেড .GIF উদাহরণস্বরূপ। সমস্যাটি হ'ল এটি প্রাক-উপস্থাপিত হবে, সুতরাং যেমনটি আপনি বলেছেন, এটি কেবল তখনই কাজ করে যদি ব্যবহারকারীকে দেখার কোণটি কারচুপি করার অনুমতি না দেওয়া হয়।
এটি কেবল একটি সাধারণ অ্যানিমেশন হতে পারে, বেশ কয়েকটি ফ্রেমের সাথে একটি টেক্সচার ব্যবহার করে।