Rasterization (রাস্টারাইজেশন) হল ত্রিমাত্রিক প্রিমিটিভ (ত্রিভুজ, রেখা, বিন্দু) এর ভেক্টর বর্ণনাকে স্ক্রিনে প্রদর্শনের জন্য পিক্সেল (ফ্র্যাগমেন্ট) এর সেটে রূপান্তর করার প্রক্রিয়া। Khronos Group, 2025 অনুসারে, রাস্টারাইজেশন গ্রাফিক্স পাইপলাইনের একটি স্বয়ংক্রিয় (অ-প্রোগ্রামেবল) ধাপ, যা Vertex Shader এবং Fragment Shader-এর মধ্যে অবস্থিত। Rasterization নির্ধারণ করে স্ক্রিনের কোন পিক্সেল কোন ত্রিভুজের অন্তর্গত এবং প্রতিটি ফ্র্যাগমেন্টের জন্য ইন্টারপোলেটেড অ্যাট্রিবিউট গণনা করে।
মূল বিষয়
Rasterization গ্রাফিক্স পাইপলাইনের একটি ধাপ যা জ্যামিতিক প্রিমিটিভ (ত্রিভুজ, রেখা) কে Fragment Shader দ্বারা আরও প্রক্রিয়াকরণের জন্য ফ্র্যাগমেন্টের সেটে রূপান্তর করে। ইনপুট ডেটা হল স্ক্রিন কোঅর্ডিনেটে ত্রিভুজের শীর্ষবিন্দু এবং তাদের অ্যাট্রিবিউট (রং, নর্মাল, UV)। আউটপুট হল ইন্টারপোলেটেড অ্যাট্রিবিউট সহ ফ্র্যাগমেন্টের একটি সেট।
প্রোগ্রামেবল শেডার (Vertex Shader এবং Fragment Shader) এর বিপরীতে, রাস্টারাইজেশন একটি নির্দিষ্ট (অ-প্রোগ্রামেবল) ধাপ। ডেভেলপার রাস্টারাইজেশন অ্যালগরিদম পরিবর্তন করতে পারে না, তবে এর প্যারামিটার নিয়ন্ত্রণ করতে পারে: কুলিং মোড, লাইনের প্রস্থ, পলিগন অফসেট এবং মাল্টি-স্যাম্পলিং।
প্রায় সমস্ত আধুনিক রিয়েল-টাইম গ্রাফিক্স — গেম, UI, AR/VR — রাস্টারাইজেশন ব্যবহার করে। এটি সবচেয়ে পারফরম্যান্ট রেন্ডারিং পদ্ধতি, যা 60 FPS-এ প্রতি ফ্রেমে লক্ষ লক্ষ ত্রিভুজ প্রক্রিয়া করতে সক্ষম। GPU রাস্টারাইজার বিশেষায়িত ROP (রেন্ডার আউটপুট ইউনিট) ব্লকের মাধ্যমে একসাথে হাজার হাজার ত্রিভুজের সমান্তরাল প্রক্রিয়াকরণের জন্য অপ্টিমাইজ করা হয়।
ত্রিভুজ রাস্টারাইজেশন শুরু হয় Vertex Shader শীর্ষবিন্দুগুলিকে স্ক্রিন কোঅর্ডিনেটে রূপান্তর করার পরে। GPU একটি ত্রিভুজের তিনটি শীর্ষবিন্দু নেয় এবং নির্ধারণ করে স্ক্রিনের কোন পিক্সেল সেই ত্রিভুজের ভিতরে রয়েছে।
প্রক্রিয়াটিতে তিনটি ক্রমিক ধাপ অন্তর্ভুক্ত: পিক্সেলে ত্রিভুজের বাউন্ডিং বক্স নির্ধারণ — বাউন্ডিং বক্সের ভিতরে প্রতিটি পিক্সেলের ত্রিভুজ সদস্যতা (এজ ফাংশন) পরীক্ষা — প্রতিটি কভার করা পিক্সেলের জন্য ইন্টারপোলেটেড অ্যাট্রিবিউট (ব্যারিসেন্ট্রিক কোঅর্ডিনেট) গণনা। এজ ফাংশন একটি রৈখিক সমীকরণ যা নির্ধারণ করে একটি বিন্দু ত্রিভুজের প্রান্তের কোন পাশে অবস্থিত।
| ধাপ | বর্ণনা | ফলাফল |
|---|---|---|
| ক্লিপিং | ভিউপোর্ট সীমানার বাইরে ত্রিভুজ কাটা | দৃশ্যমান প্রিমিটিভ |
| ভিউপোর্ট ট্রান্সফর্ম | স্ক্রিন কোঅর্ডিনেটে রূপান্তর | পিক্সেল কোঅর্ডিনেট |
| ত্রিভুজ সেটআপ | এজ ফাংশন এবং বাউন্ডিং বক্স গণনা | রাস্টারাইজেশন প্যারামিটার |
| ফ্র্যাগমেন্ট জেনারেশন | কভারেজ পরীক্ষা এবং ইন্টারপোলেশন | ফ্র্যাগমেন্ট + অ্যাট্রিবিউট |
Rasterization বিভিন্ন অ্যালগরিদম দ্বারা বাস্তবায়িত হতে পারে, প্রতিটির পারফরম্যান্স এবং গুণমানের মধ্যে নিজস্ব ট্রেড-অফ রয়েছে। আধুনিক GPU বিভিন্ন পদ্ধতির সংমিশ্রণ ব্যবহার করে।
প্রারম্ভিক GPU-র জন্য তৈরি ক্লাসিক রাস্টারাইজেশন অ্যালগরিদম। ত্রিভুজটি লাইন বাই লাইন (স্ক্যানলাইন) প্রক্রিয়া করা হয়: স্ক্রিনের প্রতিটি লাইনের জন্য ত্রিভুজের প্রবেশ এবং প্রস্থান বিন্দু নির্ধারণ করা হয় এবং তাদের মধ্যে থাকা সমস্ত পিক্সেল পূর্ণ করা হয়। স্ক্যানলাইন কনভার্শন বড় ত্রিভুজের জন্য কার্যকর কিন্তু নির্বিচার আকারের ত্রিভুজের জন্য জটিল লজিক প্রয়োজন।
আধুনিক GPU হাফ-স্পেস রাস্টারাইজেশন পদ্ধতি ব্যবহার করে: ত্রিভুজের প্রতিটি পাশের জন্য একটি এজ ফাংশন গণনা করা হয় — একটি রৈখিক সমীকরণ যা এক পাশে ধনাত্মক এবং অপর পাশে ঋণাত্মক। একটি পিক্সেল ত্রিভুজের অন্তর্গত যদি তিনটি এজ ফাংশনই ধনাত্মক হয়। হাফ-স্পেস রাস্টারাইজেশন সহজেই সমান্তরালীকরণযোগ্য এবং SIMD GPU আর্কিটেকচারের জন্য উপযুক্ত।
মোবাইল GPU (Qualcomm Adreno, ARM Mali) টাইল-ভিত্তিক রেন্ডারিং (TBR) ব্যবহার করে। স্ক্রিনটি ছোট টাইল (16x16 বা 32x32 পিক্সেল) এ বিভক্ত করা হয় এবং প্রতিটি টাইলের জন্য আলাদাভাবে রাস্টারাইজেশন করা হয়। এটি ফ্রেমবাফারকে দ্রুত লোকাল মেমোরিতে (টাইল মেমোরি) সংরক্ষণ করে মেমোরি অ্যাক্সেস হ্রাস করে। TBR বিদ্যুৎ খরচ কমায়, যা মোবাইল ডিভাইসের জন্য গুরুত্বপূর্ণ।
Rasterization এবং ray tracing হল 3D গ্রাফিক্স রেন্ডারিংয়ের দুটি মৌলিকভাবে ভিন্ন পদ্ধতি। রাস্টারাইজেশন রিয়েল-টাইম অ্যাপ্লিকেশনে আধিপত্য বিস্তার করে, যখন ray tracing অফলাইন রেন্ডারিংয়ে ব্যবহৃত হয় এবং ধীরে ধীরে রিয়েল-টাইমে প্রবেশ করছে (RTX-সামঞ্জস্যপূর্ণ GPU-তে)।
| প্যারামিটার | Rasterization | Ray Tracing |
|---|---|---|
| নীতি | ত্রিভুজ → ফ্র্যাগমেন্ট | রশ্মি → দৃশ্য ছেদ |
| গতি | খুব দ্রুত (লক্ষ লক্ষ ত্রিভুজ/ফ্রেম) | ধীর (হাজার হাজার রশ্মি/ফ্রেম) |
| গুণমান | অতিরিক্ত কৌশল প্রয়োজন (ছায়া, প্রতিফলন) | ভৌতিকভাবে সঠিক ছায়া এবং প্রতিফলন |
| মোবাইল GPU | মানক পদ্ধতি | সীমিত সমর্থন (A17 Pro, Snapdragon Gen 3) |
| বিদ্যুৎ খরচ | কম | উচ্চ |
রাস্টারাইজেশন aliasing সমস্যার সৃষ্টি করে — ত্রিভুজ সীমানায় জ্যাগড এজ (jaggies)। এটি ঘটে কারণ পিক্সেল বিচ্ছিন্ন এবং ত্রিভুজ দ্বারা আংশিকভাবে কভার করা যায় না। aliasing মোকাবেলায় মাল্টি-স্যাম্পলিং (MSAA) ব্যবহার করা হয়।
MSAA (মাল্টি-স্যাম্পল অ্যান্টি-আলিয়াসিং) বর্ধিত স্যাম্পলিং হার (2x, 4x, 8x) এ রাস্টারাইজেশন সম্পাদন করে। প্রতি পিক্সেলে একটি স্যাম্পলের পরিবর্তে একাধিক উপ-স্যাম্পল ব্যবহার করা হয়, প্রতিটি ত্রিভুজ কভারেজের জন্য পরীক্ষা করা হয়। MSAA 4x প্রতি পিক্সেলে 4টি উপ-স্যাম্পল প্রক্রিয়া করে, যা রেন্ডারিং রেজোলিউশন সম্পূর্ণরূপে বৃদ্ধি না করেই লক্ষণীয় এজ স্মুথিং প্রদান করে।
MSAA-র বিপরীতে, পোস্ট-প্রসেস অ্যান্টি-আলিয়াসিং পদ্ধতি (FXAA, SMAA, TAA) চূড়ান্ত চিত্র বিশ্লেষণ করে রাস্টারাইজেশনের পরে কাজ করে। FXAA (ফাস্ট অ্যাপ্রোক্সিমেট অ্যান্টি-আলিয়াসিং) চিত্রের প্রান্ত সনাক্ত করে এবং স্মুথিংয়ের জন্য ব্লার প্রয়োগ করে, যা MSAA-র তুলনায় উল্লেখযোগ্যভাবে দ্রুত কাজ করে তবে কম গুণমানের সাথে।
Rasterization আধুনিক GPU-তে বিশেষায়িত হার্ডওয়্যার ব্লক — ROP (রেন্ডার আউটপুট ইউনিট) দ্বারা সম্পাদিত হয়। ROP-এর সংখ্যা সরাসরি ফিল রেটকে প্রভাবিত করে — পিক্সেলের সংখ্যা যা GPU প্রতি সেকেন্ডে প্রক্রিয়া করতে পারে।
মোবাইল GPU (টাইল-ভিত্তিক রেন্ডারিং) এর জন্য গুরুত্বপূর্ণ বিষয়গুলির মধ্যে রয়েছে: আর্লি-Z রিজেকশনের মাধ্যমে ওভারড্র কমানো, অদৃশ্য ত্রিভুজ অপসারণের জন্য ব্যাক-ফেস কুলিং ব্যবহার করা এবং অন্যান্য বস্তু দ্বারা সম্পূর্ণরূপে আবৃত ত্রিভুজ প্রত্যাখ্যান করার জন্য অক্লুশন কুলিং ব্যবহার করা।
সচরাচর জিজ্ঞাসিত প্রশ্ন
রাস্টারাইজেশন হল ত্রিভুজকে স্ক্রিনে পিক্সেলে রূপান্তরের প্রক্রিয়া। GPU একটি ত্রিমাত্রিক ত্রিভুজ নেয়, নির্ধারণ করে স্ক্রিনের কোন পিক্সেল এটি কভার করে, এবং রঙ করার জন্য সেগুলি Fragment Shader-এ পাঠায়।
রাস্টারাইজেশন ত্রিভুজকে স্ক্রিনে প্রজেক্ট করে এবং পিক্সেল কভারেজ নির্ধারণ করে (খুব দ্রুত)। Ray tracing ক্যামেরা থেকে রশ্মি নিক্ষেপ করে এবং জ্যামিতির সাথে ছেদ পরীক্ষা করে (ভৌতিকভাবে আরও নির্ভুল তবে উল্লেখযোগ্যভাবে ধীর)।
রাস্টারাইজেশনের সময়, একটি পিক্সেল হয় সম্পূর্ণরূপে ত্রিভুজের অন্তর্গত বা নয় — তাই জ্যাগড এজ (aliasing) তৈরি হয়। MSAA প্রতি পিক্সেলে একাধিক উপ-স্যাম্পল ব্যবহার করে প্রান্ত মসৃণ করে, যখন FXAA চূড়ান্ত চিত্রে একটি ফিল্টার প্রয়োগ করে।
না, রাস্টারাইজেশন গ্রাফিক্স পাইপলাইনের একটি নির্দিষ্ট ধাপ। ডেভেলপার অ্যালগরিদম পরিবর্তন করতে পারে না, তবে সেটিংস নিয়ন্ত্রণ করতে পারে: কুলিং, পলিগন অফসেট, রাস্টারাইজেশন মোড (বিন্দু, রেখা, ত্রিভুজ) এবং MSAA প্যারামিটার।
টাইল-ভিত্তিক রেন্ডারিং (TBR) স্ক্রিনকে টাইলে বিভক্ত করে এবং গ্লোবাল VRAM-এর পরিবর্তে দ্রুত লোকাল মেমোরিতে সেগুলি প্রক্রিয়া করে। এটি বিদ্যুৎ খরচ এবং ব্যান্ডউইথ大幅度 হ্রাস করে, যা ব্যাটারি চালিত মোবাইল ডিভাইসের জন্য গুরুত্বপূর্ণ।
সারাংশ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন