ভলিউম রেন্ডারিং

বৈজ্ঞানিক চিত্রায়ন এবং কম্পিউটার গ্রাফিক্স-এ, ভলিউম রেন্ডারিং হল কিছু কৌশলের সমষ্টি যা একটি ত্রি-মাত্রিক, বিচ্ছিন্নভাবে নমুনায়িত ডেটাসেট থেকে একটি দ্বি-মাত্রিক প্রক্ষেপণ উপস্থাপন করতে ব্যবহৃত হয়। সাধারণত এটি একটি ত্রি-মাত্রিক স্কেলার ক্ষেত্র (scalar field) হয়ে থাকে।
একটি সাধারণ ত্রি-মাত্রিক ডেটাসেট তৈরি হয় বহু ২-মাত্রিক স্লাইস চিত্র থেকে, যেগুলি কম্পিউটেড টোমোগ্রাফি (CT), চৌম্বক অনুরণন চিত্রায়ন (MRI) অথবা মাইক্রোটোমোগ্রাফি (MicroCT) স্ক্যানারের মাধ্যমে সংগ্রহ করা হয়। সাধারণত এই স্লাইসগুলো একটি নির্দিষ্ট ব্যবধানে (যেমন প্রতি মিলিমিটারে একটি স্লাইস) সংগৃহীত হয় এবং তাতে একটি নির্দিষ্ট সংখ্যক পিক্সেল থাকে একটি নিয়মিত বিন্যাসে।
এই ধরনের একটি ডেটাসেটকে একটি নিয়মিত ভলিউমেট্রিক গ্রিড হিসেবে ধরা হয়, যেখানে প্রতিটি ভলিউম উপাদান বা ভক্সেল (voxel) একটি একক মান দ্বারা উপস্থাপিত হয়, যেটি ঐ ভক্সেলের আশপাশ থেকে সংগ্রহ করা তথ্যের নমুনা।
এই ত্রি-মাত্রিক ডেটাসেট থেকে একটি দ্বি-মাত্রিক চিত্র রেন্ডার করতে হলে প্রথমে একটি ভার্চুয়াল ক্যামেরা-র অবস্থান নির্ধারণ করতে হয় সেই ভলিউমের আপেক্ষিক অবস্থানে। এরপর, প্রতিটি ভক্সেলের অস্বচ্ছতা (opacity) এবং রঙ নির্ধারণ করতে হয়। সাধারণত এটি একটি RGBA রঙ স্থান (রেড, গ্রিন, ব্লু, আলফা) ট্রান্সফার ফাংশনের মাধ্যমে নির্ধারিত হয়, যা প্রতিটি সম্ভাব্য ভক্সেল মানের জন্য RGBA মান নির্ধারণ করে।
উদাহরণস্বরূপ, একটি ভলিউমকে দেখা যেতে পারে আইসোসারফেস (সমমান পৃষ্ঠ) বের করে সেটিকে পলিগনাল মেশ হিসেবে রেন্ডার করে অথবা সরাসরি ভলিউমকে একটি ডেটা ব্লক হিসেবে রেন্ডার করে। ভলিউম থেকে আইসোসারফেস বের করার জন্য মার্চিং কিউবস (marching cubes) অ্যালগোরিদম একটি প্রচলিত কৌশল। সরাসরি ভলিউম রেন্ডারিং একটি কম্পিউটেশনালভাবে জটিল প্রক্রিয়া, যা বিভিন্ন উপায়ে সম্পাদিত হতে পারে।
আরও একটি কৌশল হল রে মার্চিং (Ray marching), যা ভলিউম রেন্ডারিংয়ের আরেকটি পদ্ধতি।
ভলিউম রেন্ডারিংকে টোমোগ্রাফির পাতলা স্লাইস ভিত্তিক উপস্থাপনা থেকে আলাদা হিসেবে বিবেচনা করা হয় এবং সাধারণভাবে এটি maximum intensity projection-সহ 3D মডেলের প্রক্ষেপণ থেকেও পৃথক ধরা হয়। যদিও প্রকৃতপক্ষে, ভলিউম রেন্ডারিং-এর যেকোনো ফলাফল যখন দ্বি-মাত্রিক পর্দায় দেখা হয়, তখন তা এক ধরনের প্রক্ষেপণে পরিণত হয়, ফলে "প্রক্ষেপণ" এবং "ভলিউম রেন্ডারিং"-এর পার্থক্য অনেক সময় অস্পষ্ট হয়ে পড়ে।
তবুও, ভলিউম রেন্ডারিং মডেলের বৈশিষ্ট্য হিসেবে সাধারণত রঙায়ন এবং ছায়াকরণ ব্যবহৃত হয়, যাতে করে উপস্থাপনাটি আরও বাস্তবধর্মী ও সহজবোধ্য হয়।
একটি সরাসরি ভলিউম রেন্ডারার প্রতিটি নমুনা মানকে অপাসিটি (অস্বচ্ছতা) এবং রঙে ম্যাপ করার প্রয়োজন হয়। এটি একটি "ট্রান্সফার ফাংশন" ব্যবহার করে করা হয় যা একটি সরল র‍্যাম্প, একটি পিসওয়াইজ লিনিয়ার ফাংশন বা একটি ইচ্ছামত সারণী হতে পারে। একবার আরজিবিএ কালার মডেল (লাল, সবুজ, নীল, আলফা)-এর মানে রূপান্তরিত হলে, সমন্বিত আরজিবিএ ফলাফল ফ্রেম বাফারের সংশ্লিষ্ট পিক্সেলের উপর প্রজেক্ট করা হয়। এটি কীভাবে করা হয় তা রেন্ডারিং কৌশলের উপর নির্ভর করে।
এই কৌশলগুলির সংমিশ্রণ সম্ভব। উদাহরণস্বরূপ, একটি শিয়ার ওয়ার্প বাস্তবায়ন অফ-স্ক্রিন বাফার-এ সারিবদ্ধ স্লাইসগুলি আঁকতে টেক্সচারিং হার্ডওয়্যার ব্যবহার করতে পারে।
ভলিউম রে কাস্টিং কৌশলটি সরাসরি রেন্ডারিং সমীকরণ থেকে উদ্ভূত হতে পারে। এটি অত্যন্ত উচ্চ মানের ফলাফল প্রদান করে, সাধারণত এটিকে সেরা ছবির গুণমান প্রদানকারী হিসাবে বিবেচনা করা হয়। ভলিউম রে কাস্টিংকে ইমেজ-ভিত্তিক ভলিউম রেন্ডারিং কৌশল হিসাবে শ্রেণীবদ্ধ করা হয়, কারণ গণনা আউটপুট ইমেজ থেকে শুরু হয়, অবজেক্ট-ভিত্তিক কৌশলগুলির মতো ইনপুট ভলিউম ডেটা থেকে নয়। এই কৌশলে, প্রতিটি কাঙ্ক্ষিত ইমেজ পিক্সেলের জন্য একটি রশ্মি (ray) তৈরি করা হয়। একটি সাধারণ ক্যামেরা মডেল ব্যবহার করে, রশ্মিটি ক্যামেরার প্রক্ষেপণ কেন্দ্র (সাধারণত চোখের বিন্দু) থেকে শুরু হয় এবং ক্যামেরা ও রেন্ডার করার ভলিউমের মধ্যে ভাসমান কাল্পনিক ইমেজ প্লেনের ইমেজ পিক্সেলের মধ্য দিয়ে যায়। সময় বাঁচানোর জন্য রশ্মিটিকে ভলিউমের সীমানা দ্বারা ক্লিপ করা হয় (কেটে ফেলা হয়)। তারপর রশ্মিটি ভলিউম জুড়ে নিয়মিত বা অভিযোজিত বিরতিতে নমুনায়ন করা হয়। প্রতিটি নমুনা বিন্দুতে ডেটা ইন্টারপোলেট করা হয়, একটি আরজিবিএ নমুনা তৈরি করতে ট্রান্সফার ফাংশন প্রয়োগ করা হয়, নমুনাটি রশ্মির সঞ্চিত আরজিবিএ-র উপর কম্পোজিট করা হয়, এবং রশ্মিটি ভলিউম থেকে বেরিয়ে না যাওয়া পর্যন্ত প্রক্রিয়াটি পুনরাবৃত্তি করা হয়। আরজিবিএ রঙকে একটি আরজিবি রঙে রূপান্তরিত করা হয় এবং সংশ্লিষ্ট ইমেজ পিক্সেলে স্থাপন করা হয়। সম্পূর্ণ চিত্র গঠন করতে স্ক্রিনের প্রতিটি পিক্সেলের জন্য প্রক্রিয়াটি পুনরাবৃত্তি করা হয়।
এটি এমন একটি কৌশল যা গতির জন্য গুণমানের সাথে আপোস করে। এখানে, লি ওয়েস্টওভারের ভাষায়, প্রতিটি ভলিউম উপাদানকে স্প্ল্যাট করা হয়, অনেকটা স্নোবলের মতো, দেখার পৃষ্ঠের উপর পিছন থেকে সামনের ক্রমে। এই স্প্ল্যাটগুলিকে ডিস্ক হিসাবে রেন্ডার করা হয় যার বৈশিষ্ট্যগুলি (রঙ এবং স্বচ্ছতা) ব্যাস বরাবর স্বাভাবিক (গাউসিয়ান) পদ্ধতিতে পরিবর্তিত হয়। অ্যাপ্লিকেশনের উপর নির্ভর করে ফ্ল্যাট ডিস্ক এবং অন্যান্য ধরণের বৈশিষ্ট্য বিতরণ সহ ডিস্কও ব্যবহৃত হয়।
ভলিউম রেন্ডারিংয়ের শিয়ার ওয়ার্প পদ্ধতিটি ক্যামেরন এবং আন্ড্রিল দ্বারা বিকশিত হয়েছিল এবং ফিলিপ ল্যাক্রুট ও মার্ক লেভয় দ্বারা জনপ্রিয় হয়েছিল। এই কৌশলে, ভিউইং ট্রান্সফরমেশন এমনভাবে রূপান্তরিত হয় যাতে ভলিউমের নিকটতম তলটি ভক্সেল থেকে পিক্সেলের একটি নির্দিষ্ট স্কেল সহ একটি অফ-স্ক্রিন ইমেজ ডেটা বাফার-এর সাথে অক্ষ-সারিবদ্ধ হয়ে যায়। তারপর ভলিউমটি এই বাফারে রেন্ডার করা হয়, যেখানে অনেক বেশি অনুকূল মেমরি অ্যালাইনমেন্ট এবং নির্দিষ্ট স্কেলিং ও ব্লেন্ডিং ফ্যাক্টর ব্যবহার করা হয়। একবার ভলিউমের সমস্ত স্লাইস রেন্ডার হয়ে গেলে, বাফারটিকে কাঙ্ক্ষিত ওরিয়েন্টেশনে ওয়ার্প করা হয় এবং প্রদর্শিত ছবিতে স্কেল করা হয়।
রে কাস্টিংয়ের তুলনায় কম নির্ভুল স্যাম্পলিং এবং সম্ভাব্য খারাপ ছবির গুণমানের বিনিময়ে এই কৌশলটি সফটওয়্যারে তুলনামূলকভাবে দ্রুত। প্রায় অক্ষ-সারিবদ্ধ ভলিউম রাখার ক্ষমতার জন্য ভলিউমের একাধিক কপি সংরক্ষণ করার জন্য মেমরির অতিরিক্ত চাপ (ওভারহেড) রয়েছে। রান লেন্থ এনকোডিং ব্যবহার করে এই ওভারহেড কমানো যেতে পারে।
অনেক ৩ডি গ্রাফিক্স সিস্টেম জ্যামিতিক বস্তুতে ছবি বা টেক্সচার প্রয়োগ করতে টেক্সচার ম্যাপিং ব্যবহার করে। সাধারণ পিসি গ্রাফিক্স কার্ড টেক্সচারিংয়ে দ্রুত এবং রিয়েল-টাইম ইন্টারঅ্যাকশন ক্ষমতা সহ একটি ৩ডি ভলিউমের স্লাইস দক্ষতার সাথে রেন্ডার করতে পারে। ওয়ার্কস্টেশন জিপিইউ গুলি আরও দ্রুত, এবং মেডিকেল ইমেজিং, তেল ও গ্যাস এবং অন্যান্য বাজারে (২০০৭) ব্যবহৃত বেশিরভাগ প্রোডাকশন ভলিউম ভিজ্যুয়ালাইজেশনের ভিত্তি। পূর্ববর্তী বছরগুলিতে, সিলিকন গ্রাফিক্স ইনফিনিট রিয়েলিটি, এইচপি ভিজ্যুয়ালাইজ এফএক্স গ্রাফিক্স অ্যাক্সিলারেটর এবং অন্যান্য গ্রাফিক্স সিস্টেমে ডেডিকেটেড ৩ডি টেক্সচার ম্যাপিং সিস্টেম ব্যবহার করা হত। এই কৌশলটি প্রথম বিল হিবার্ড এবং ডেভ স্যান্টেক দ্বারা বর্ণিত হয়েছিল।
এই স্লাইসগুলি হয় ভলিউমের সাথে সারিবদ্ধ (volume aligned) এবং দর্শকের দিকে একটি কোণে রেন্ডার করা যেতে পারে, অথবা ভিউয়িং প্লেনের সাথে সারিবদ্ধ (view aligned) এবং ভলিউমের মধ্য দিয়ে অ-সারিবদ্ধ স্লাইস থেকে নমুনায়ন করা যেতে পারে। দ্বিতীয় কৌশলের জন্য ৩ডি টেক্সচারের জন্য গ্রাফিক্স হার্ডওয়্যার সমর্থন প্রয়োজন।
ভলিউম অ্যালাইনড টেক্সচারিং যুক্তিসঙ্গত মানের ছবি তৈরি করে, যদিও ভলিউম ঘোরানো হলে প্রায়শই একটি লক্ষণীয় পরিবর্তন দেখা যায়।
ডাইরেক্ট ভলিউম রেন্ডারিং প্রক্রিয়াটি অত্যন্ত সমান্তরাল (parallel) প্রকৃতির হওয়ায়, GPU-নির্ভর ভলিউম রেন্ডারিং পর্যাপ্ত দ্রুত না হওয়া পর্যন্ত বিশেষায়িত ভলিউম রেন্ডারিং হার্ডওয়্যার একটি গুরুত্বপূর্ণ গবেষণার ক্ষেত্র ছিল। এই ক্ষেত্রে সবচেয়ে বেশি উদ্ধৃত প্রযুক্তি ছিল VolumePro নামক বাস্তব-সময়ে রে-কাস্টিং ব্যবস্থা, যা Hanspeter Pfister ও Mitsubishi Electric Research Laboratories-এর গবেষকরা যৌথভাবে তৈরি করেছিলেন। এই পদ্ধতিতে রে-কাস্টিং অ্যালগরিদম ব্যবহার করে উচ্চ মেমোরি ব্যান্ডউইথ ও brute force প্রসেসিংয়ের মাধ্যমে রেন্ডারিং সম্পন্ন করা হতো।
এই প্রযুক্তি পরবর্তীতে TeraRecon, Inc.-এ হস্তান্তরিত হয় এবং দুটি প্রজন্মের ASIC (অ্যাপ্লিকেশন-নির্দিষ্ট ইন্টিগ্রেটেড সার্কিট) তৈরি ও বাজারজাত করা হয়। ২০০২ সালে VP1000 এবং ২০০৭ সালে VP2000 প্রকাশিত হয়।
বর্তমান GPU-এর পিক্সেল শেডারগুলো ভিডিও মেমোরি থেকে এলোমেলোভাবে ডেটা পড়া ও লেখা করতে পারে এবং মৌলিক গাণিতিক ও যৌক্তিক হিসাব করতে সক্ষম। পূর্বে এগুলো SIMD (সিঙ্গল ইনস্ট্রাকশন, মাল্টিপল ডেটা) প্রসেসর হিসেবে ব্যবহৃত হতো যেমন বহুভুজ রেন্ডারিং বা সিগনাল প্রসেসিংয়ের কাজে। কিন্তু সাম্প্রতিক প্রজন্মের GPU-তে এই পিক্সেল শেডারগুলো MIMD (মাল্টিপল ইনস্ট্রাকশন, মাল্টিপল ডেটা) প্রসেসর হিসেবে কার্যকর হচ্ছে এবং এতে স্বাধীনভাবে শাখা নির্ধারণ করা যায়। এরা প্রায় ১ গিগাবাইট পর্যন্ত ফ্লোটিং পয়েন্ট ফরম্যাটে টেক্সচার মেমোরি ব্যবহার করতে পারে।
এমন শক্তিশালী ক্ষমতা থাকায় যেকোনো সমান্তরাল ধাপে সম্পাদিত অ্যালগরিদম যেমন volume ray casting বা টোমোগ্রাফিক রিকনস্ট্রাকশন অনেক দ্রুত সম্পন্ন করা সম্ভব। প্রোগ্রামযোগ্য পিক্সেল শেডার ব্যবহার করে আলোর প্রকৃতি, ছায়া, প্রতিফলন, স্ব-আলোকিত রঙ ইত্যাদির ভিন্নতা অনুকরণ করা যায়। এসব অনুকরণ উচ্চস্তরের শেডিং ভাষা ব্যবহার করে লেখা যায়।
অপ্টিমাইজেশনের প্রাথমিক লক্ষ্য হলো যতটা সম্ভব ভলিউমের অংশ এড়িয়ে যাওয়া। একটি সাধারণ মেডিকেল ডেটা সেটের আকার ১ জিবি হতে পারে। সেটিকে ৩০ ফ্রেম/সেকেন্ড হারে রেন্ডার করার জন্য অত্যন্ত দ্রুত মেমরি বাস প্রয়োজন। ভক্সেল এড়িয়ে যাওয়ার অর্থ হলো কম তথ্য প্রক্রিয়া করতে হবে।
প্রায়শই, একটি ভলিউম রেন্ডারিং সিস্টেমে ভলিউমের এমন অঞ্চলগুলি সনাক্ত করার জন্য একটি ব্যবস্থা থাকে যেখানে কোনও দৃশ্যমান উপাদান নেই। এই তথ্য ব্যবহার করে এই স্বচ্ছ অঞ্চলগুলির রেন্ডারিং এড়ানো যায়।
এটি এমন একটি কৌশল যা ভলিউমকে সামনে থেকে পিছনে ক্রমে রেন্ডার করার সময় ব্যবহৃত হয়। একটি পিক্সেলের মধ্য দিয়ে যাওয়া রশ্মির ক্ষেত্রে, একবার পর্যাপ্ত ঘন উপাদান পাওয়া গেলে, পরবর্তী নমুনাগুলি পিক্সেলের জন্য কোনও উল্লেখযোগ্য অবদান রাখে না এবং তাই উপেক্ষা করা যেতে পারে।
অকট্রি এবং বিএসপি-ট্রির মতো হায়ারারকিক্যাল কাঠামোর ব্যবহার ভলিউম ডেটা সংকোচন এবং ভলিউমেট্রিক রে কাস্টিং প্রক্রিয়ার গতি অপ্টিমাইজেশন উভয়ের জন্যই খুব সহায়ক হতে পারে।
ইমেজ সেগমেন্টেশন একটি ম্যানুয়াল বা স্বয়ংক্রিয় পদ্ধতি যা রেন্ডার করার আগে ভলিউমের বড় অংশগুলিকে (যেগুলি কেউ অআগ্রহজনক বলে মনে করে) বাদ দিতে ব্যবহার করা যেতে পারে। এর ফলে রে কাস্টিং বা টেক্সচার ব্লেন্ডিংয়ের মাধ্যমে যে পরিমাণ গণনা করতে হয় তা উল্লেখযোগ্যভাবে হ্রাস করা যায়। এই হ্রাস n সংখ্যক ক্রমানুসারে সূচিত ভক্সেলের জন্য O(n) থেকে O(log n) পর্যন্ত হতে পারে। ভলিউম সেগমেন্টেশন অন্যান্য রে ট্রেসিং অ্যালগরিদমগুলির জন্যও উল্লেখযোগ্য পারফরম্যান্স সুবিধা দেয়। ভলিউম সেগমেন্টেশন পরবর্তীকালে আগ্রহের কাঠামো হাইলাইট বা প্রকাশ করতে ব্যবহার করা যেতে পারে।
ভলিউমের কম আকর্ষণীয় অঞ্চলগুলিকে একটি স্থূল (coarser) রেজোলিউশনে উপস্থাপন করে, ডেটা ইনপুট ওভারহেড হ্রাস করা যেতে পারে। কাছ থেকে পর্যবেক্ষণের সময়, এই অঞ্চলগুলির ডেটা মেমরি বা ডিস্ক থেকে পড়ে অথবা ইন্টারপোলেশন-এর মাধ্যমে পূরণ করা যেতে পারে। মূল থেকে একটি ২ডি মিপম্যাপ চিত্র যেভাবে তৈরি করা হয়, সেভাবেই স্থূল রেজোলিউশনের ভলিউমকে একটি ছোট আকারে পুনরায় নমুনায়ন (resample) করা হয়। ভলিউমকে একটি নতুন ওরিয়েন্টেশনে ঘোরানোর সময় এই ছোট ভলিউমগুলিও ব্যবহৃত হয়।
প্রি-ইন্টিগ্রেটেড ভলিউম রেন্ডারিং এমন একটি পদ্ধতি যা প্রয়োজনীয় ডেটার বেশিরভাগ অংশ প্রি-কম্পিউট (পূর্ব-গণনা) করে স্যাম্পলিং আর্টিফ্যাক্টগুলি হ্রাস করতে পারে। এটি হার্ডওয়্যার-এক্সিলারেটেড অ্যাপ্লিকেশনগুলিতে বিশেষভাবে উপযোগী কারণ এটি কর্মক্ষমতার উপর বড় প্রভাব ছাড়াই গুণমান উন্নত করে। বেশিরভাগ অন্যান্য অপ্টিমাইজেশনের বিপরীতে, এটি ভক্সেল এড়িয়ে যায় না। বরং এটি ভক্সেলের একটি অঞ্চল সঠিকভাবে প্রদর্শন করার জন্য প্রয়োজনীয় নমুনার সংখ্যা হ্রাস করে। এর মূল ধারণা হলো নমুনাগুলির পরিবর্তে নমুনাগুলির মধ্যবর্তী বিরতিগুলি রেন্ডার করা। এই কৌশলটি দ্রুত পরিবর্তনশীল উপাদানকে, উদাহরণস্বরূপ পেশী থেকে হাড়ে রূপান্তর, অনেক কম গণনার মাধ্যমে ধারণ করতে পারে।
ইমেজ-ভিত্তিক মেশিং হলো ৩ডি ইমেজ ডেটা (যেমন এমআরআই, সিটি, ইন্ডাস্ট্রিয়াল সিটি বা মাইক্রোটমোগ্রাফি) থেকে কম্পিউটেশনাল বিশ্লেষণ এবং ডিজাইনের (যেমন CAD, CFD, এবং FEA) জন্য স্বয়ংক্রিয়ভাবে কম্পিউটার মডেল তৈরি করার প্রক্রিয়া।
একটি সম্পূর্ণ ডিসপ্লে ভিউয়ের জন্য, প্রতি পিক্সেলে কেবল একটি ভক্সেল (সামনেরটি) দেখানো প্রয়োজন (যদিও ছবিটি মসৃণ করার জন্য আরও বেশি ব্যবহার করা যেতে পারে)। যদি অ্যানিমেশনের প্রয়োজন হয়, তবে দেখানো হবে এমন সামনের ভক্সেলগুলি ক্যাশে করা যেতে পারে এবং ক্যামেরা সরানোর সাথে সাথে ক্যামেরার সাপেক্ষে তাদের অবস্থান পুনরায় গণনা করা যেতে পারে। যেখানে ডিসপ্লে ভক্সেলগুলি সমস্ত পিক্সেল কভার করার জন্য খুব দূরে চলে যায়, সেখানে রে কাস্টিং বা অনুরূপ পদ্ধতির মাধ্যমে নতুন সামনের ভক্সেলগুলি খুঁজে পাওয়া যেতে পারে, এবং যেখানে একটি পিক্সেলে দুটি ভক্সেল থাকে, সেখানে সামনেরটি রাখা যেতে পারে।