প্রকল্প সম্পর্কে
এই রিপোজিটরিটি 3D গাউসিয়ান স্প্ল্যাটিংয়ের জন্য একটি Unity-ভিত্তিক ভিউয়ার, যা Kerbl, Kopanas, Leimkühler এবং Drettakis-এর SIGGRAPH 2023 পেপার "3D Gaussian Splatting for Real-Time Radiance Field Rendering"-এর রিয়েল-টাইম ভিজ্যুয়ালাইজেশন অংশ বাস্তবায়ন করে। এটি প্রশিক্ষিত গাউসিয়ান স্প্ল্যাট মডেল ফাইল ব্যবহার করে, নিজে প্রশিক্ষণ সম্পাদন করে না, এবং এটি মূল পেপারের উপর ভিত্তি করে তৈরি, পরবর্তী অনেক গবেষণা প্রকরণের উপর নয়।
স্ট্যাটাস এবং প্ল্যাটফর্ম সমর্থন
লেখক জানিয়েছেন যে ডিসেম্বর 2023 পর্যন্ত আর কোনো উল্লেখযোগ্য উন্নয়নের পরিকল্পনা নেই। পরিচিত-কাজ করা প্ল্যাটফর্মগুলো হলো যেগুলো D3D12, Metal বা Vulkan গ্রাফিক্স API ব্যবহার করে: Windows (D3D12 বা Vulkan), Mac (Metal) এবং Linux (Vulkan)। DX11 কাজ করে না। OpenGL এবং OpenGL ES সমর্থিত নয়, WebGPU এখনও কার্যকর নয়, এবং মোবাইল সমর্থন অসামঞ্জস্যপূর্ণ, কিছু iOS এবং Android ডিভাইস অ-কার্যকর বলে রিপোর্ট করা হয়েছে। কিছু VR ডিভাইস কাজ করে বলে রিপোর্ট করা হয়েছে (HTC Vive, Varjo Aero, Quest 3, Quest Pro), অন্যদিকে Apple Vision Pro-এর মতো কিছু কাজ নাও করতে পারে।
ব্যবহারের কর্মপ্রবাহ
projects/GaussianExample ফোল্ডারটি একটি Unity প্রকল্প হিসেবে খুলুন (Unity 2022.3 দিয়ে তৈরি) এবং GSTestScene দৃশ্যটি লোড করুন। GaussianSplat অ্যাসেট তৈরি হয় Tools -> Gaussian Splats -> Create GaussianSplatAsset মেনুর মাধ্যমে। ইনপুট হতে পারে মূল 3DGS পেপারের একটি PLY ফাইল (সাধারণত point_cloud/iteration_*/point_cloud.ply) বা Scaniverse SPZ ফরম্যাট। একটি ঐচ্ছিক cameras.json ফাইল পাশে বা প্যারেন্ট ফোল্ডারে রাখা যেতে পারে। ডায়ালগটি কম্প্রেশন বিকল্প এবং একটি আউটপুট ফোল্ডার অফার করে; এমনকি "খুব কম" মানের প্রিসেটটিও মোটামুটি ব্যবহারযোগ্য বলে বর্ণনা করা হয়েছে, একটি ক্যাপচার 8MB-এর নিচে। ফলস্বরূপ অ্যাসেটটি বেশ কয়েকটি ডেটা ফাইল নিয়ে গঠিত। রিপোজিটরিতে কোনো স্প্ল্যাট মডেল অন্তর্ভুক্ত নেই কারণ সেগুলো বড়; মূল পেপার রিপোজিটরি 14GB জিপ প্রিট্রেইনড মডেলের লিঙ্ক দেয়।
রেন্ডারিং এবং নিয়ন্ত্রণ
একটি গেম অবজেক্টে থাকা GaussianSplatRenderer স্ক্রিপ্ট তৈরি অ্যাসেটটি তার Asset ফিল্ডে নেয়। স্ক্রিপ্টটি ডেটা ডিবাগিং এবং ভিজ্যুয়ালাইজ করার জন্য নিয়ন্ত্রণ প্রকাশ করে, পাশাপাশি গেম ক্যামেরাটিকে অ্যাসেটের একটি ক্যামেরা অবস্থানে সরানোর জন্য একটি স্লাইডার। রেন্ডারিং গেম অবজেক্টের ট্রান্সফরমেশন ম্যাট্রিক্স বিবেচনা করে; অফিসিয়াল মডেলগুলো X-এর চারপাশে প্রায় -160 ডিগ্রি ঘোরানো এবং Z-এর চারপাশে মিরর করা দেখা যায়, তাই নমুনা দৃশ্যটি এমন একটি ট্রান্সফর্ম প্রয়োগ করে। অতিরিক্ত ডকুমেন্টেশন রেন্ডার পাইপলাইন ইন্টিগ্রেশন এবং স্প্ল্যাট সম্পাদনা কভার করে।
পারফরম্যান্স নোট
পেপারের "bicycle" দৃশ্যের জন্য 6.1M স্প্ল্যাট 1200x797 এবং মাঝারি অ্যাসেট মানের (282MB অ্যাসেট) সহ, লেখক Windows-এ NVIDIA RTX 3080 Ti-তে রিপোর্ট করেছেন: অফিসিয়াল SBIR ভিউয়ার 7.4ms (135FPS) এ 4.8GB VRAM ব্যবহার করে, এবং Unity DX12 বা Vulkan-এ 6.8ms (147FPS) এ, যা 4.5ms রেন্ডারিং, 1.1ms সর্টিং এবং 0.8ms স্প্ল্যাট ভিউ গণনায় বিভক্ত, 1.3GB VRAM ব্যবহার করে। Mac-এ Apple M1 Max-এর সাথে, Unity Metal-এ 21.5ms (46FPS) রিপোর্ট করা হয়েছে। লোড করা অ্যাসেটের বাইরে, প্রতি স্প্ল্যাটে প্রায় 48 বাইট GPU মেমরি বর্তমানে সর্টিং এবং ভিউ-নির্ভর ডেটা ক্যাশ করার জন্য প্রয়োজন।
লাইসেন্সিং
লেখকের কোড MIT লাইসেন্সযুক্ত। তৃতীয়-পক্ষের উপাদানগুলির মধ্যে রয়েছে zanders3/json (MIT), GPU সর্টিং কোড "DeviceRadixSort" যা Thomas Smith অবদান রেখেছেন, এবং @ninjamode-এর Unity-VR-Gaussian-Splatting-এর উপর ভিত্তি করে VR ফিক্স। README সতর্ক করে যে মূল পেপার বাস্তবায়নের লাইসেন্স তার প্রশিক্ষণ সফ্টওয়্যারকে শিক্ষামূলক, একাডেমিক এবং অ-বাণিজ্যিক ব্যবহারে সীমাবদ্ধ করে, বাণিজ্যিক ব্যবহারের জন্য INRIA থেকে লাইসেন্স প্রয়োজন; ব্যবহারকারীদের আলাদাভাবে বিবেচনা করতে হবে কীভাবে তাদের PLY ফাইল তৈরি করা হয়েছে।
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.