HeadlinesBriefing favicon HeadlinesBriefing.com

SDF বনাম MSDF বনাম Slug: GPU টেক্সট রেন্ডারিং গাইড

Hacker News •
×

SDF, MSDF, Slug, টেক্সচার অ্যাটলাস বা Rive-এর মধ্যে টেক্সট রেন্ডারিং অ্যালগরিদম কীভাবে চয়ন করব? টেক্সটটি সহজ দেখায় যতক্ষণ না আপনাকে নিজে এটি আঁকতে হয়। একটি অক্ষর হল আউটলাইনের একটি সেট: সরল রেখা এবং বেজিয়ার বক্ররেখার বন্ধ লুপ, যা উইন্ডিং নিয়ম অনুসারে পূর্ণ। CPU-তে এটি একটি বিটম্যাপে আঁকা সমাধান করা হয়েছে। GPU-তে, যেকোনো আকারে, যেকোনো 3D ট্রান্সফর্মের অধীনে, যখন টেক্সট প্রতি ফ্রেমে পরিবর্তিত হয়, স্পষ্টভাবে আঁকা সমাধান নয়।

বেশিরভাগ ইঞ্জিন আগে থেকেই গ্লিফগুলিকে টেক্সচারে বেক করে কঠিন সংস্করণটি এড়িয়ে যায়। 2017 সালে, Eric Lengyel Slug প্রকাশ করেন, যা ফ্র্যাগমেন্ট শেডারে আউটলাইন থেকে সরাসরি গ্লিফ রেন্ডার করে, টেক্সচার অ্যাটলাস ছাড়া এবং প্রতি-ফ্রেম টেসেলেশন ছাড়া। Lengyel এটি 2019 সালে পেটেন্ট করেন এবং 17 মার্চ, 2026-এ তিনি সেই পেটেন্টটি পাবলিক ডোমেনে উৎসর্গ করেন। এই গাইডটি GPU টেক্সট রেন্ডারিং কীভাবে কাজ করে তা কভার করে, বিটম্যাপ অ্যাটলাস থেকে Slug পর্যন্ত।

পদ্ধতি 1, টেক্সচার অ্যাটলাস, প্রতিটি গ্লিফকে একবার একটি ভাগ করা টেক্সচারে রাস্টারাইজ করে। এটি দ্রুত, তবে স্কেলিং করার সময় সমস্যা দেখা দেয়: বেকড আকারের বাইরে বড় করুন এবং গ্লিফটি ঝাপসা হয়ে যায়। প্রতিটি আকার যা আপনি স্পষ্ট চান তা আরেকটি অ্যাটলাস, এবং চীনা, জাপানি এবং কোরিয়ান ভাষাগুলি মেমরি বিপর্যয় ঘটায়। পদ্ধতি 2, সাইনড ডিসটেন্স ফিল্ড (SDF), নিকটতম প্রান্তের দূরত্ব সঞ্চয় করে। যেহেতু দূরত্ব মসৃণভাবে ইন্টারপোলেট হয়, আপনি একটি ছোট SDF টেক্সচারকে নাটকীয়ভাবে বড় করতে পারেন এবং একটি পরিষ্কার প্রান্ত পেতে পারেন। দীর্ঘ সময়ের জন্য, এটি স্পষ্ট UI টেক্সটের জন্য ডিফল্ট ছিল, তবে SDF এখনও একটি বেকড টেক্সচার।