আমি কীভাবে আমার থ্রিডি গেমটি ASCII আর্টে রেন্ডার করব?


19

আমি ইউনিটি 3 ডি তে 3 ডি গেমের জন্য একটি ইস্টার ডিম তৈরি করার চেষ্টা করছি। আমি আমার গেমটি মুহূর্তের জন্য ASCII আর্টে রেন্ডার করতে চাই।

আমার প্রথম ধারণাটি এটির জন্য শেডার তৈরি করা, তবে এটি সঠিক উপায়ে কিনা তা আমি নিশ্চিত নই।


libAA বা libCACA সহ ( লিঙ্ক 1 - লিঙ্ক
রেস

উত্তর:


20

আমি এর জন্য কোনও প্লাগ এবং সমাধানের বিষয়টি জানি না, তবে এখানে একটি অ্যালগরিদম যা পিক্সেল শেডারটিতে অতিরিক্ত সম্পদ হিসাবে কেবল একটি টেক্সচার দিয়ে কাজ করে

প্রয়োজনীয় সম্পদটি হ'ল কয়েকটি টাইলসের একক সারি সহ একটি ছোট টেক্সচার, যেখানে বামদিকে সবচেয়ে অন্ধকার এবং ডানদিকে সবচেয়ে হালকা।

তারপরে যা ঘটে তা হ'ল (প্রতি ফ্রেমে):

  • আপনি যে ASCII সংস্করণটি তৈরি করতে চান সেটি নিন এবং টাইল আকার দ্বারা এটি ডাউনস্কেল করুন (সুতরাং আপনার যদি 8x8 টাইল থাকে তবে চিত্রটি উভয় মাত্রায় 8 দ্বারা কমিয়ে দেওয়া হবে)।
  • আসল পূর্ণ মাপের বাফারের একটি নতুন রেন্ডার লক্ষ্য তৈরি করুন।
  • নিম্নলিখিতগুলির সাথে একটি পিক্সেল শেডার ব্যবহার করুন:
    • বাফারের জন্য একটি নমুনা ইনপুট (নিকটস্থ প্রতিবেশীর সাথে স্যাম্পলিং সেট সহ) এবং টাইলসের জন্য একটি নমুনা ইনপুট।
    • টাইল আকার, টাইল পরিমাণ এবং চূড়ান্ত আউটপুট রেজোলিউশন জন্য ইউনিফর্ম
  • পিক্সেল শেডার এর পরে উচিত:
    • ডাউন স্কেল করা বাফার থেকে ধূসর স্কেল মানটি পান ( (col.r+col.g+col.b) / 3.0চোখের কাজগুলি ঠিক তেমনভাবে হয় না যদিও এটি যথেষ্ট যথেষ্ট)
    • আপনি কোন টাইলটি রেন্ডার করতে চান তা পেতে এই তথ্যটি ব্যবহার করুন ( floor(grayscale * TILE_COUNT))
    • আউটপুটটির পিক্সেল এক্স / ওয়াই স্থানাঙ্কগুলি গণনা করুন এবং সেইগুলি মডিউলটি টাইলের আকার (টাইলএক্স / টাইলওয়াই) নিন।
    • টাইল বাফার থেকে নমুনাযুক্ত মান হিসাবে রঙ হিসাবে প্রত্যাবর্তন করুন vec2( whichTile * TILE_WIDTH + tileX, tileY ) / vec2( TILE_WIDTH * TILE_COUNT, TILE_HEIGHT )

লিঙ্ক পৃষ্ঠা উদাহরণ বিভিন্ন চিত্র, এক জিনিস আমি যোগ গণনা গ্রেস্কেল মান গোলমাল সামান্য বিট হবে তাই এটি এক বড় ব্লক নয় বিবেচনা চাই রয়েছে MMMMMMMMMMMMMMMMগুলি

আপডেট হয়েছে: @ গেমদেব চ্যাটরুমের লোককিজ Unক্যের জন্য আরও একটি সম্পূর্ণ টিউটোরিয়াল পোস্ট করেছেন: http://pentahelix.github.io/ASCII- টিউটোরিয়াল- পুনর্বিবেচনা /


সহজ সমাধান যা বেশ ভালভাবে কাজ করতে পারে (+1)। এখন আমি নিজেই এই প্রভাবটি বাস্তবায়নের বিষয়ে ভাবছি।
পল মান্টা

2
@ সাটা কেভিনের মন্তব্যে উল্লেখ করেছেন যে "[এটি] চোখের কাজগুলি ঠিক কীভাবে হয় না", রঙিন চিত্রকে গ্রেস্কেলতে রূপান্তর করার একাধিক উপায়ের বর্ণনা এখানে দেওয়া হয়েছে: জোহন্ডকুক.com
পল মানতা

1
আপনি প্রান্ত সনাক্তকরণের মতো অতিরিক্ত পরামিতিগুলি অন্তর্ভুক্ত করতে ঘনত্ব / উজ্জ্বলতা ছাড়াও তাদের আকারের উপর ভিত্তি করে অক্ষর নির্বাচন করতে এটি প্রসারিত করতে পারেন।
ডিএমগ্রিগরি

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.