منصوبے کے بارے میں

یہ ریپوزٹری 3D Gaussian Splatting کے لیے ایک Unity پر مبنی ویور ہے، جو Kerbl، Kopanas، Leimkühler اور Drettakis کے SIGGRAPH 2023 کے مقالے "3D Gaussian Splatting for Real-Time Radiance Field Rendering" کے ریئل ٹائم ویژولائزیشن حصے کو نافذ کرتی ہے۔ یہ خود تربیت کرنے کے بجائے پہلے سے تربیت یافتہ گاوسی اسپلاٹ ماڈل فائلیں استعمال کرتی ہے، اور یہ واضح طور پر اصل مقالے پر مبنی ہے نہ کہ بعد میں آنے والے متعدد گاوسی اسپلاٹنگ تحقیقی ورژنز پر۔ حیثیت اور پلیٹ فارم سپورٹ مصنف کا کہنا ہے کہ دسمبر 2023 تک کوئی اہم مزید ترقی کا منصوبہ نہیں ہے۔ معلوم طور پر کام کرنے والے پلیٹ فارمز وہ ہیں جو D3D12، Metal یا Vulkan گرافکس APIs استعمال کرتے ہیں: 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 ساتھ یا پیرنٹ فولڈرز میں رکھی جا سکتی ہے۔ ڈائیلاگ کمپریشن آپشنز اور آؤٹ پٹ فولڈر پیش کرتا ہے؛ یہاں تک کہ "very low" کوالٹی پری سیٹ کو بھی معقول حد تک قابل استعمال بتایا گیا ہے، جس میں ایک کیپچر کل 8MB سے کم ہے۔ نتیجے میں بننے والا اثاثہ کئی ڈیٹا فائلوں پر مشتمل ہوتا ہے۔ ریپوزٹری میں اسپلاٹ ماڈلز ان کے سائز کی وجہ سے شامل نہیں ہیں؛ اصل مقالے کی ریپوزٹری پہلے سے تربیت یافتہ ماڈلز کی 14GB زپ فائل سے لنک کرتی ہے۔ رینڈرنگ اور کنٹرولز گیم آبجیکٹ پر GaussianSplatRenderer اسکرپٹ اپنے Asset فیلڈ میں بنائے گئے اثاثے کو لیتا ہے۔ اسکرپٹ ڈیٹا کو ڈیبگ کرنے اور ویژولائز کرنے کے لیے کنٹرولز پیش کرتا ہے، نیز گیم کیمرے کو اثاثے کے کیمرہ مقامات میں سے کسی ایک پر لے جانے کے لیے ایک سلائیڈر۔ رینڈرنگ گیم آبجیکٹ کے ٹرانسفارمیشن میٹرکس کا حساب رکھتی ہے؛ سرکاری ماڈلز X کے گرد تقریباً -160 ڈگری گھمائے ہوئے اور Z کے گرد آئینہ دار دکھائی دیتے ہیں، اس لیے نمونہ سین ایسا ٹرانسفارم لاگو کرتا ہے۔ اضافی دستاویزات رینڈر پائپ لائن انضمام اور اسپلاٹ ایڈیٹنگ کا احاطہ کرتی ہیں۔ کارکردگی کے نوٹس مقالے کے "bicycle" سین کے لیے جس میں 6.1M اسپلاٹس 1200x797 پر اور Medium اثاثہ کوالٹی (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)، Thomas Smith کا تعاون کردہ GPU چھانٹی کوڈ "DeviceRadixSort"، اور @ninjamode کے VR اصلاحات شامل ہیں جو Unity-VR-Gaussian-Splatting پر مبنی ہیں۔ README خبردار کرتا ہے کہ اصل مقالے کے نفاذ کا لائسنس اس کے تربیتی سافٹ ویئر کو تعلیمی، علمی اور غیر تجارتی استعمال تک محدود کرتا ہے، تجارتی استعمال کے لیے INRIA سے لائسنس درکار ہے؛ صارفین کو علیحدہ طور پر غور کرنا چاہیے کہ ان کی PLY فائلیں کیسے تیار کی گئیں۔