پکسل شیڈر کی شکل میں ایک RISC-V ایمولیٹر جو آپ کو VRChat میں لینکس چلانے کی اجازت دیتا ہے۔

ملٹی پلیئر آن لائن گیم VRChat کے ورچوئل 3D اسپیس کے اندر لینکس کے لانچ کو منظم کرنے کے تجربے کے نتائج شائع کیے گئے ہیں، جو 3D ماڈلز کو ان کے اپنے شیڈرز کے ساتھ لوڈ کرنے کی اجازت دیتا ہے۔ تصور شدہ آئیڈیا کو عملی جامہ پہنانے کے لیے، RISC-V فن تعمیر کا ایک ایمولیٹر بنایا گیا تھا، جسے GPU سائیڈ پر پکسل (فریگمنٹ) شیڈر (VRChat کمپیوٹیشنل شیڈرز اور UAV کو سپورٹ نہیں کرتا) کی شکل میں عمل میں لایا گیا تھا۔ ایمولیٹر کوڈ MIT لائسنس کے تحت شائع کیا گیا ہے۔

ایمولیٹر C زبان میں ایک نفاذ پر مبنی ہے، جس کی تخلیق، بدلے میں، minimalistic ایمولیٹر riscv-rust کی ترقی کو استعمال کرتی ہے، جو Rust زبان میں تیار کی گئی ہے۔ تیار کردہ C کوڈ کا ترجمہ HLSL میں پکسل شیڈر میں کیا جاتا ہے، جو VRChat میں لوڈ کرنے کے لیے موزوں ہے۔ ایمولیٹر rv32imasu انسٹرکشن سیٹ آرکیٹیکچر، SV32 میموری مینجمنٹ یونٹ، اور پیری فیرلز کے کم سے کم سیٹ (UART اور ٹائمر) کے لیے مکمل تعاون فراہم کرتا ہے۔ تیار کردہ صلاحیتیں لینکس کرنل 5.13.5 اور بنیادی BusyBox کمانڈ لائن ماحول کو لوڈ کرنے کے لیے کافی ہیں، جس کے ساتھ آپ VRChat ورچوئل دنیا سے براہ راست بات چیت کر سکتے ہیں۔

پکسل شیڈر کی شکل میں ایک RISC-V ایمولیٹر جو آپ کو VRChat میں لینکس چلانے کی اجازت دیتا ہے۔
پکسل شیڈر کی شکل میں ایک RISC-V ایمولیٹر جو آپ کو VRChat میں لینکس چلانے کی اجازت دیتا ہے۔

ایمولیٹر کو شیڈر میں اس کے اپنے ڈائنامک ٹیکسچر (یونٹی کسٹم رینڈر ٹیکسچر) کی شکل میں لاگو کیا جاتا ہے، جسے VRChat کے لیے فراہم کردہ Udon اسکرپٹس کے ذریعے ضمیمہ کیا جاتا ہے، جو اس کے عمل کے دوران ایمولیٹر کو کنٹرول کرنے کے لیے استعمال ہوتا ہے۔ RAM کے مواد اور ایمولیٹڈ سسٹم کی پروسیسر سٹیٹ کو ٹیکسچر کی شکل میں، 2048x2048 پکسلز سائز میں محفوظ کیا جاتا ہے۔ ایمولیٹڈ پروسیسر 250 kHz کی فریکوئنسی پر کام کرتا ہے۔ لینکس کے علاوہ ایمولیٹر مائیکرو پیتھون بھی چلا سکتا ہے۔

پکسل شیڈر کی شکل میں ایک RISC-V ایمولیٹر جو آپ کو VRChat میں لینکس چلانے کی اجازت دیتا ہے۔

پڑھنے اور لکھنے کے لیے سپورٹ کے ساتھ مستقل ڈیٹا اسٹوریج بنانے کے لیے، ایک چال یہ ہے کہ کیمرہ آبجیکٹ کو استعمال کیا جائے جو شیڈر کے ذریعے تیار کردہ مستطیل علاقے سے منسلک ہو اور رینڈر شدہ ٹیکسچر کے آؤٹ پٹ کو شیڈر ان پٹ کی طرف لے جائے۔ اس طرح، پکسل شیڈر ایگزیکیوشن کے دوران لکھا ہوا کوئی بھی پکسل پڑھا جا سکتا ہے جب اگلے فریم پر کارروائی کی جاتی ہے۔

پکسل شیڈرز لاگو کرتے وقت، ہر ٹیکسچر پکسل کے متوازی طور پر ایک الگ شیڈر مثال شروع کی جاتی ہے۔ یہ خصوصیت عمل درآمد کو نمایاں طور پر پیچیدہ بناتی ہے اور اس کے لیے پورے ایمولیٹڈ سسٹم کی حالت اور پروسیس شدہ پکسل کی پوزیشن کا اس میں انکوڈ شدہ CPU اسٹیٹ یا ایمولیٹڈ سسٹم کی RAM کے مواد کے موازنہ کی ضرورت ہوتی ہے (ہر پکسل 128 کو انکوڈ کر سکتا ہے۔ معلومات کے ٹکڑے)۔ شیڈر کوڈ میں بہت زیادہ چیک شامل کرنے کی ضرورت ہوتی ہے، جس کے نفاذ کو آسان بنانے کے لیے پرل پری پروسیسر perlpp استعمال کیا گیا تھا۔



ماخذ: opennet.ru

نیا تبصرہ شامل کریں