Game Graphics
গেম 3D ছবি আঁকে কীভাবে?
কম্পিউটার গেম 3D ছবি আঁকে কীভাবে?
গেমের পাহাড়, চরিত্র, গাড়ি — সব আসলে গণিত। স্ক্রিন সমতল (2D), তবু 3D দেখায় কীভাবে?
কেন এত জটিল প্রক্রিয়া দরকার?
তোমার চোখ বাস্তব জগতে গভীরতা (Depth) দেখতে পায় কারণ আলো ত্রিমাত্রিক বস্তু থেকে প্রতিফলিত হয়ে আসে। কিন্তু স্ক্রিন একটি সম্পূর্ণ সমতল (2D) গ্রিড — তাই কম্পিউটারকে গাণিতিকভাবে হিসাব করতে হয় একটি ত্রিমাত্রিক দৃশ্য দ্বিমাত্রিক স্ক্রিনে কেমন দেখাবে, ঠিক যেমন একজন শিল্পী পার্স্পেক্টিভ (দূরত্ব অনুযায়ী ছোট আঁকা) ব্যবহার করে কাগজে গভীরতার বিভ্রম তৈরি করেন।
ধাপ ১ — সবকিছু ত্রিভুজ দিয়ে তৈরি
প্রতিটি 3D বস্তু অসংখ্য ছোট ত্রিভুজ (Polygon) জোড়া দিয়ে বানানো — একটা মুখ হাজার হাজার ত্রিভুজ হতে পারে। প্রতিটি ত্রিভুজের কোণার বিন্দুকে বলে Vertex (বহুবচনে Vertices)। ত্রিভুজ ব্যবহারের কারণ সহজ — যেকোনো জটিল আকৃতি ছোট ছোট ত্রিভুজ দিয়ে আনুমানিকভাবে তৈরি করা যায়, আর ত্রিভুজের গণিত (তিনটি বিন্দু) সবচেয়ে সরল ও দ্রুত হিসাবযোগ্য।
ধাপ ২ — অবস্থান গণনা (Transformation)
খেলোয়াড় ঘুরলে বা ক্যামেরা নড়লে প্রতিটি Vertex-এর নতুন অবস্থান গণিত (ম্যাট্রিক্স গুণন) দিয়ে হিসাব হয় — 3D বিন্দু কীভাবে সমতল স্ক্রিনে পড়বে (প্রজেকশন)। প্রতি ফ্রেমে (সেকেন্ডে ৩০-৬০ বার) লক্ষ লক্ষ Vertex-এর এই হিসাব নতুন করে করতে হয়।
ধাপ ৩ — রঙ ও আলো (Shading/Texturing)
প্রতিটি ত্রিভুজে Texture (কাপড়/চামড়া/ধাতুর ছবি) বসানো হয়, আলো-ছায়ার উৎস হিসাব করে প্রতিটি বিন্দুর রঙ ঠিক করা হয় (Shading) — এই ধাপেই একটি সমতল ত্রিভুজ "কাঠ" বা "ধাতু" মনে হওয়ার বাস্তবসম্মত অনুভূতি পায়।
ধাপ ৪ — পিক্সেলে আঁকা (Rendering)
পুরো দৃশ্য (সব ত্রিভুজ, রঙ, আলো একসাথে) পিক্সেলে রূপান্তর হয় — এটাই Rendering। এক সেকেন্ডে ৩০–৬০ বার (FPS — Frames Per Second) এই পুরো প্রক্রিয়া পুনরাবৃত্তি হয় বলেই চোখে নড়াচড়া মসৃণ (একটানা) দেখায় — ঠিক ফ্লিপবুকের পাতা দ্রুত উল্টালে ছবি নড়ছে মনে হওয়ার মতো।
ধাপ ৫ — GPU করে এই কাজ
CPU একটার পর একটা কাজ (Sequential) করে; GPU (Graphics Processing Unit) একসাথে হাজারো ত্রিভুজের হিসাব সমান্তরালভাবে (Parallel) করে — তাই গ্রাফিক্স দ্রুত।
| অংশ | কাজ |
|---|---|
| CPU | গেমের যুক্তি, সিদ্ধান্ত (চরিত্র কোথায় যাবে, কী ঘটবে) |
| GPU | একসাথে বিপুল গ্রাফিক্স গণনা (ত্রিভুজ, আলো, রঙ) |
3D মডেল (ত্রিভুজের জাল) → Transformation (ম্যাট্রিক্স গণনা) → Shading/Texturing → Rendering → GPU দিয়ে পিক্সেলে আঁকা → স্ক্রিনে দৃশ্য
বাস্তব জীবনের সাথে মিল
🏠 অ্যানালজি: একটি 3D গেমের দৃশ্য বানানো অনেকটা কাগজের মডেল (Origami) তৈরির মতো — অসংখ্য ছোট ছোট ত্রিভুজাকার কাগজের টুকরা জোড়া দিয়ে একটা আকৃতি তৈরি হয়। পার্থক্য শুধু, এখানে কাগজের বদলে গণিতের সমীকরণ, আর জোড়া লাগানো হয় সেকেন্ডে ৬০ বার!
কেন GPU-কে CPU থেকে আলাদা প্রসেসর বানানো হলো?
CPU সাধারণ, বৈচিত্র্যময় (কিন্তু একের পর এক) কাজে দক্ষ — যেমন গেমের গল্প এগিয়ে নেওয়া, ফিজিক্স হিসাব। কিন্তু গ্রাফিক্সের কাজ (লক্ষ লক্ষ Vertex-এর একই ধরনের গণিত) অত্যন্ত পুনরাবৃত্তিমূলক ও সমান্তরাল — GPU-তে হাজার হাজার ছোট কোর একসাথে এই একই ধরনের হিসাব চালায়, CPU-তে যা সিরিয়ালি করলে বহুগুণ ধীর হতো।
🔗 HSC সিলেবাস সংযোগ
- অধ্যায় ১: ভার্চুয়াল রিয়েলিটি, মাল্টিমিডিয়া।
- অধ্যায় ৫: গেম একটি প্রোগ্রাম — Algorithm ও গণনা দিয়ে চলে।
📝 HSC পরীক্ষার প্রস্তুতি
- GPU কী? Graphics Processing Unit — গ্রাফিক্স গণনায় বিশেষায়িত, সমান্তরাল প্রক্রিয়াকরণে সক্ষম প্রসেসর।
- Rendering কী? 3D তথ্য থেকে 2D পিক্সেল ছবি তৈরির প্রক্রিয়া।
- FPS কী? Frames Per Second — সেকেন্ডে আঁকা ছবির সংখ্যা; বেশি FPS = মসৃণ গেমপ্লে।
- সাধারণ ভুল: CPU-কেই গ্রাফিক্সের মূল কাজ করে ভাবা — বাস্তবে ভারী গ্রাফিক্স গণনা GPU করে, CPU শুধু গেমের যুক্তি সামলায়।
📚 সারাংশ
3D বস্তু = ত্রিভুজের জাল (Vertex দিয়ে গঠিত) → গণিতে (ম্যাট্রিক্স) স্ক্রিনে অবস্থান হিসাব → Texture ও আলো (Shading) → পিক্সেলে Render → GPU সেকেন্ডে বহুবার (FPS) এই কাজ সমান্তরালভাবে করে মসৃণ দৃশ্য দেয়।