সফ্টওয়্যার রেন্ডারিং কিভাবে হয়?


15

আমি রিয়েলটাইম সফ্টওয়্যার ভিত্তিক রাস্টারাইজেশন অন্বেষণ করতে চাই। আমি জানি যে সমস্ত কিছু আজকাল জিপিইউর দিকে যাচ্ছে তবে কয়েকটি গেম রয়েছে যেখানে এটি এখনও একটি সফ্টওয়্যার রেন্ডারার ব্যবহার করে বোঝা যায়।

উদাহরণস্বরূপ: ভক্সেল্ট্রন

ভোকাস্ট্রন হ'ল একটি আখরার শুটার যা ভক্সেল (ছোট কিউব, ধরণের) দিয়ে তৈরি বিশ্বে ঘটে। গেমের সমস্ত কিছুই মেনু এবং প্লেয়ারের তালিকা সহ ভার্চুয়াল 128x128x64 ভক্সেল ডিসপ্লেতে প্রদর্শিত হবে। আপনি যদি ঘনিষ্ঠভাবে তাকান তবে আপনি কখনও কখনও আবিষ্কার করতে পারেন (স্কোর / জীবন / গোলাবারুদ) মাটির কিছু বস্তুর উপরে ছায়া ফেলে।

আমি একটি দীর্ঘ এক্সপ্লোরারি অ্যাডভেঞ্চার গেম করার চূড়ান্ত লক্ষ্য নিয়ে, দীর্ঘকাল ধরে ভক্সেল রেন্ডারিং এবং মডেলিং সরঞ্জামগুলিতে কাজ করছি। প্রায় আধা বছর আগে এটি কনফ্লাক্সের জন্য আমি রঙ্গভূমি শ্যুটারগুলিতে কাজ করে যাচ্ছিলাম এবং এটি ফলাফল।

এটি হৃৎপিণ্ডের মধ্যে বেশ সহজ একটি খেলা - বেশিরভাগ মাত্র বোকা প্রাণীদের সাথে 3 ডি ধ্বংসাত্মক বিশ্বে রবোট্রন সেট করে। গেমপ্লেয়ের জন্য ধ্বংসাত্মকতার প্রভাবগুলি কতটা বড় হবে তা আমি নিশ্চিত নই, তবে প্রাচীরের টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো করা আমি একটি পরীক্ষামূলক দেয়াল-বিল্ডিং পিকআপও যুক্ত করেছি যা আপনি ভীতিজনক দানবগুলি থেকে আড়াল করতে বাধা তৈরি করতে ব্যবহার করতে পারেন।

গেমটি অ্যারেনাসের একটি ছোট সেটে স্থান নেয়। তাদের মধ্যে কিছুতে সেট অ্যাকশন টুকরা সহ কক্ষগুলি নাইটলোর এবং স্ম্যাশ টিভির মধ্যে রয়েছে feature এটি মূল অ্যাডভেঞ্চার ভিত্তিক ডিজাইনের মধ্যে কিছু পিছনে লুকিয়ে থাকা এবং থিম্যাটিক পরিবেশ তৈরির একটি অজুহাত।

বৈশিষ্ট্য:

  • নরম ছায়ার সাথে কাস্টম সফ্টওয়্যার রেন্ডারিং।
  • অন্তর্নির্মিত শব্দ এবং সঙ্গীত সংশ্লেষ (ট্রেলার সঙ্গীত তৈরি করতে ব্যবহৃত হয়)।
  • প্লেব্যাক এবং গেমের রেকর্ডিং পোস্ট করুন।

1
একটি গেমের সাথে সুস্পষ্ট লিঙ্ক। জিপিইউতে নরম ছায়া পাওয়ার জন্য কোনও সফ্টওয়্যার রেন্ডারার ব্যবহার করার প্রয়োজন নেই তা নোট করুন । তিনি রেন্ডার লুপের দিক থেকে কিছু কর্মক্ষমতা সীমাবদ্ধতার মধ্যে চলে যাবেন, 1.6 গিগাহার্টজ ল্যাপটপ বা হ্যান্ডহেল্ড ডিভাইসগুলির মতো আরও বেসিক মেশিনগুলিতে চালাতে সক্ষম হবেন না, যদি সে উপলব্ধ হার্ডওয়্যারটি কাজে লাগায় সত্যই তা করতে পারে।
bobobobo

উত্তর:


11

আমি ধরে নিচ্ছি যে আপনি ইতিমধ্যে কিছু প্রাথমিক লিনিয়ার বীজগণিত সম্পর্কে জেনে গেছেন, এতে জড়িত ধরণের: 3 ডি অনুমান, ক্যামেরা সেটআপ, বিশিষ্ট কোণকে বিশ্বের অবস্থানে রূপান্তর করা ইত্যাদি ... যদি আপনি তা না করেন তবে শেখার জন্য প্রচুর দুর্দান্ত জায়গা রয়েছে। এখানে আমার দুটি পছন্দ রয়েছে:

গেম ইঞ্জিন আর্কিটেকচার

  • বেসিক লিনিয়ার বীজগণিতের সংক্ষিপ্ত কভারেজ তবে আপনাকে যা জানার দরকার তা সমস্তই কভার করে। বইটি অন্যান্য অনেক কারণেও মূল্যবান।

রিয়েল-টাইম রেন্ডারিং

  • কিছুটা আরও বিস্তারিত কভারেজ তবে আবার আপনার কেবল যা জানা দরকার তা স্থির করে রাখেন। আবার, আমি এই অধ্যায়গুলির বাকি অধ্যায়গুলিতে অন্তর্ভুক্ত বিষয়গুলির জন্য এটির প্রস্তাব দিই।

3 ডি অবজেক্টগুলি কীভাবে উপস্থাপন এবং পরিচালনা করতে হয় তা জানার পরে আপনি কীভাবে তাদের স্ক্রিনে টানাবেন তা দেখার জন্য প্রস্তুত। সাধারণত এটি একটি স্ক্যান লাইনের ত্রিভুজ রাস্টারাইজেশন কৌশল দ্বারা করা হয়। এটি আসলে বেশ সহজ ধারণা। রঙ এবং ইউভি টেক্সচারের স্থানাঙ্ককে পৃথক করার সময় আপনি একবারে একটি ত্রিভুজের একটি সারি আঁকুন। এই প্রক্রিয়াটি স্ক্রিনের সমস্ত ত্রিভুজগুলির জন্য অব্যাহত রয়েছে। এমনকি অর্ডার রেন্ডারিংয়ের বাইরে চলে যাওয়ার জন্য আপনি গভীরতার বাফার বাস্তবায়ন করতে পারেন।

এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন

এটি এই নিবন্ধগুলিতে আরও বিশদে আবৃত:

টিউটোরিয়াল - সফ্টওয়্যার ভিত্তিক রেন্ডারিংয়ের পরিচিতি: ত্রিভুজ রাস্টারাইজেশন

সফ্টওয়্যার রেন্ডারিং স্কুল: প্রথম খণ্ড


এবং কেবল মজাদার জন্য, নিম্নলিখিত নিবন্ধটি দেখুন:

ভূমিকম্প 2 উত্স কোড পর্যালোচনা 3/4 (সফ্টওয়্যার রেন্ডারার)


তুমি স্বাগত:] (এছাড়াও আপনি এখান থেকে প্রক্রিয়ার একটি আরো বিস্তারিত বিবরণের জন্য কটাক্ষপাত করতে চাইতে পারেন en.wikipedia.org/wiki/Rasterisation )
zfedoran

কিছু ভাল লিঙ্ক আছে!
জোনাথন কনেল

5

এটি একটি দুর্দান্ত বিস্তৃত বিষয়। যদিও এর দুটি বুনিয়াদী অংশ রয়েছে: গ্রাফিক্স ট্রান্সফর্মেশন এবং রাস্টারাইজেশন পাইপলাইনটির আসল তত্ত্ব এবং প্রকৃত বাস্তবায়ন বিট যা আপনাকে বেছে নেওয়ার পরে পর্দায় টিক স্ক্রিনে ব্লাস্ট করতে দেয় let তার উপরে, অপ্টিমাইজেশনও রয়েছে (বিশেষত পরবর্তীকালের)।

প্রথম অংশটি ভাগ্যক্রমে গ্রাফিক্স পাইপলাইনের জন্য ব্যবহৃত আধুনিক তত্ত্ব হিসাবে একই হিসাবে আধুনিক হার্ডওয়্যার এবং এপিআই দ্বারা প্রকাশিত। যদি আপনি এটি ইতিমধ্যে জানেন তবে আপনি সেট হয়ে গেছেন। আপনি যদি না করেন তবে আমি একটি ভাল বইয়ের প্রস্তাব দিই। এই এক বেশ ভাল।

দ্বিতীয় অংশের জন্য প্রচুর বিকল্প রয়েছে। এগুলি আপনার ওএস এবং সরঞ্জামচেন পছন্দগুলির উপর খুব বেশি নির্ভর করে। আপনি যদি উইন্ডোজে সি বা সি ++ ব্যবহার করেন, আপনি কেবল জিডিআই বিটম্যাপে সরাসরি পিক্সেল প্লট করতে পারেন ( SetPixelসহজ, তবে বেদনাদায়ক, অকেজো ধীর - CreateDIBSectionআপনাকে আরও দ্রুত হারে ম্যানিপুলেট করতে পারেন এমন একটি কাঁচা বাইট দেয়)।

আপনি একটি ডাইরেক্টড্রও পৃষ্ঠ অর্জন করতে পারেন এবং এটিতে লিখতে বা ডাইরেক্ট 3 ডি বা ওপেনজিএল টেক্সচারে লিখতে পারেন। এই পরবর্তী ক্ষেত্রে আপনি এখনও হার্ডওয়্যার ব্যবহার করবেন, তবে আপনি যতক্ষণ না সিপিইউতে চূড়ান্ত চিত্রের সমস্ত রচনা নিজেই করেন এবং ফলাফলগুলিকে পর্দায় অনুলিপি করার জন্য কেবল হার্ডওয়্যার এপিআই ব্যবহার করেন, তবুও এটি গণনা করে। আধুনিক পিসিগুলিতে আপনি কোনওভাবেই কাঁচা ভিআরএএম বা কোনও কিছুতে অ্যাক্সেস পেতে পারবেন না।

আপনি যদি আরও জানতে চান তবে আপনার সম্ভবত আরও নির্দিষ্ট প্রশ্ন তৈরি করা উচিত। আমি বা অন্যরা তাদের উত্তর দিতে খুশি হবে।


বইটির জন্য: "বেশ ভাল" কতটা ভাল? $ 84 নগদ মোটামুটি বিট :)
জোনাথন কনেল

এটি আমি প্রস্তাব দিচ্ছি। সস্তার বিকল্পের জন্য আপনি রূপান্তর পাইপলাইনে ডিরেক্ট 3 ডি ডকুমেন্টেশনটি উল্লেখ করতে পারেন। যদিও এটি ডি 3 ডি নির্দিষ্ট, এর 95% সাধারণ তত্ত্বের জন্য প্রযোজ্য। আপনি ওপেনজিএল রেড বইয়ের অনলাইন কপিগুলিও পরীক্ষা করে দেখতে পারেন। তারা পুরানো, তবে তত্ত্বটি (আবার) এখনও প্রয়োগ হয়।

0

ঠিক আছে আমি এই প্রশ্নটি খুব বেসিকগুলি থেকে যাচ্ছি; এর বাইরে যে কোনও কিছুই সহজ কিউএর জন্য প্রশস্ত করার উপায়; আপনাকে এই বিষয়ে একটি বই কিনতে হবে।

সফ্টওয়্যারটি রেন্ডারিং এবং জিপিইউ ব্যবহারের মধ্যে সবচেয়ে মৌলিক পার্থক্যটি পিক্সেল প্লট করার ক্ষেত্রে নেমে আসে। এটি হ'ল, সফ্টওয়্যার রেন্ডারিং করার সময় আপনি চূড়ান্তভাবে প্রতিটি ক্ষতিকারক পিক্সেলের প্লট করার জন্য দায়বদ্ধ, যেখানে একটি জিপিইউ দিয়ে পিক্সেলের প্লটিং বেশিরভাগ হার্ডওয়্যার দ্বারা স্বয়ংক্রিয় হয় এবং আপনি শেডারগুলি ব্যবহার করে পিক্সেল পাইপলাইনটি কেবল "ম্যাসেজ" করেন।

উদাহরণস্বরূপ, স্ক্রিনে 3 ডি ত্রিভুজ প্রদর্শন করার জন্য আপনাকে প্রোগ্রামার হিসাবে কী করতে হবে তা ভেবে দেখুন। একটি জিপিইউর সাহায্যে আপনি হার্ডওয়্যারটি কেবলমাত্র উল্টোর এক্স, ওয়াই, জেড স্থানাঙ্কগুলি কী তা বলুন এবং তারপরে স্ক্রিনের সমস্ত পিক্সেলগুলিতে ভিডিয়োকার্ড পূরণ করে যা ত্রিভুজের চিত্র ধারণ করে। কোনও টেক্সচার বা কোনও কিছুর উপর ভিত্তি করে প্রতিটি পিক্সেলের রঙ পরিবর্তন করতে আপনি জিপিইউকে বলতে শেডার ব্যবহার করতে পারেন, তবে শেষ পর্যন্ত এটি আপনার জন্য সমস্ত পিক্সেল স্বয়ংক্রিয়ভাবে জিপিইউতে নেমে আসে।

সফ্টওয়্যার রেন্ডারিং করে, আপনাকে স্ক্রিনে কোন পিক্সেলগুলি পূরণ করতে হবে তা গণনা করতে হবে এবং তারপরে actually পিক্সেলগুলি পূরণ করার জন্য ব্লিটিং করতে হবে। এটি হ'ল, আপনি থ্রিডি দৃশ্যের স্থানাঙ্ক স্থান থেকে দর্শনীয় স্থানটিতে রূপান্তর করতে, তারপরে ভিউ স্পেস থেকে পর্দার উপরে পয়েন্টগুলি প্রজেক্ট করার জন্য ম্যাট্রিক্স গণিত করছেন d

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