وی آر رینڈرنگ پرفارمنس
ٹننگ اور آپٹیمائزیشنز
تعارف
وسائل محدود ہارڈ ویئر پر ایک بہترین VR تجربہ حاصل کرنا صارف کے ہموار اور آرام دہ تجربہ فراہم کرنے کی کلید ہے۔ اگر مواد پیش کرنے کا فریم ریٹ ڈیوائس کی ریفریش ریٹ سے کم یا غیر مستحکم ہوتا ہے، تو یہ فریم جوڈر اور سٹٹنگ، موشن سکنز وغیرہ کا باعث بنے گا۔ آخر کار صارف کے تجربے کو منفی طور پر متاثر کرتا ہے۔ لہٰذا، ایک خوشگوار تجربہ کو یقینی بنانے کے لیے مواد کی کارکردگی کو بہتر بنانا بہت ضروری ہے۔
کارکردگی کی ٹیوننگ شروع کرنے سے پہلے، یہ سمجھنا ضروری ہے کہ غیر موثر ٹننگ سے بچنے کے لیے کارکردگی میں رکاوٹیں کہاں ہیں۔ یہ دستاویز ڈویلپرز کو کارکردگی کی رکاوٹوں کی نشاندہی کرنے اور پیش کرنے کی کارکردگی کے مسائل کو حل کرنے کے لیے حل پیش کرنے میں مدد کے لیے ڈیزائن کیا گیا ہے۔
دستاویز کو مندرجہ ذیل حصوں میں ترتیب دیا گیا ہے:
- باب 2: رکاوٹ کی شناخت کریں - یہ سیکشن ڈویلپرز کو اس بات کی نشاندہی کرنے میں مدد کرتا ہے کہ رکاوٹیں کہاں ہیں۔
- باب 3 اور 4: VIVE Wave اور VIVE OpenXR ترتیبات - یہ حصے مخصوص ترتیبات کا خاکہ پیش کرتے ہیں جو VIVE Wave اور OpenXR ایپس کے لیے CPU/GPU کی کارکردگی کو متاثر کر سکتے ہیں۔ ڈیولپرز ان خصوصیات کو فعال یا غیر فعال کرنے کے ساتھ تجربہ کر سکتے ہیں جن کا سامنا کارکردگی کی رکاوٹوں کی بنیاد پر کیا گیا ہے تاکہ یہ معلوم کیا جا سکے کہ آیا کوئی بہتری ہے۔
- باب 5: کامن آپٹیمائزیشن - یہ سیکشن کچھ عام اصلاحی طریقوں اور تجربات کا اشتراک کرتا ہے۔
رکاوٹ کی شناخت کریں۔
جب HMD حرکت پذیر ہوتا ہے، اگر VR/MR ایپ میں فریم جِٹر یا بلیک ایج وغیرہ ہے، تو یہ عام طور پر خراب رینڈرنگ کارکردگی کے مسئلے کی وجہ سے ہوتا ہے۔ عام طور پر، کارکردگی کے مسائل کو 2 اقسام میں درجہ بندی کیا جا سکتا ہے: CPU- پابند یا GPU- پابند۔ غیر موثر ٹننگ سے بچنے کے لیے شروع میں سمجھیں کہ آپ کی ایپ کے لیے کون سی قسم کی پابندی بہت اہم ہے۔
اس باب میں، ہم آسان اقدامات فراہم کرتے ہیں جو آپ کو تیزی سے شناخت کرنے دیتے ہیں کہ کارکردگی کے مسائل کہاں ہیں۔
2.1 مواد رینڈرنگ FPS چیک کریں۔
سب سے پہلے، ہم FPS مواد کی جانچ کر کے شروع کرتے ہیں جو کہ فی سیکنڈ کے مواد کو پیش کرنے والے فریموں کی تعداد ہے۔ اسے ڈسپلے فریمریٹ پر برقرار رکھا جانا چاہئے اور مستحکم رکھا جانا چاہئے۔ بصورت دیگر، یہ فریم کے جھٹکے کا سبب بن سکتا ہے۔
اگر آپ کی ایپلیکیشن SDK VIVE WAVE SDK 6.0.0 یا اس کے بعد کا استعمال کر رہی ہے، تو آپ FPS کو چیک کرنے کے لیے درج ذیل adb کمانڈ استعمال کر سکتے ہیں۔ DK 6.0.0
$adb Logcat -s VRMetric
آپ کو درج ذیل لاگ ڈیٹا نظر آئے گا۔
VRMetric:FPS=89.8/89.8,CPU-27/1,GPU=72/3,GpuBd=0,LrCnt=1,2Stag=1,Pstat=2,AQ=1,FOVED=0/0, FSE=1,TWS-2,PT=0(0), RndrBK=0,GLTA=2D,EB=1720×1720
"FPS=89.8/89.8" پہلا نمبر مواد FPS کی نمائندگی کرتا ہے، جبکہ دوسرا نمبر ڈسپلے فریمریٹ کی نمائندگی کرتا ہے۔
اگر آپ کا Wave SDK ورژن 6.0.0 سے کم ہے، تو رینڈرنگ کی کارکردگی اور دیگر کو بہتر بنانے کے لیے تازہ ترین ورژن میں اپ گریڈ کرنے کی سفارش کی جاتی ہے۔
اگر آپ کی درخواست SDK VIVE OpenXR کے ساتھ بنائی گئی ہے۔ آپ FPS کو چیک کرنے کے لیے درج ذیل adb کمانڈ استعمال کر سکتے ہیں۔
$adb Logcat -s RENDER_ATW
آپ کو درج ذیل لاگ ڈیٹا نظر آئے گا۔
RENDER_ATW: [FPS] نئی ساخت: 90.00
RENDER_ATW: [FPS] R present:90.00 skip:0 317, -0.0155 0.805527, 0.006788)
RENDER_ATW: [FPS] L present:90.00 skip:0 (0.592301, -0.015502, 0.805539, 0.006773)
"نئی ساخت" کے بعد نمبر فی الحال مواد FPS کی نمائندگی کرتا ہے۔ "R موجود" اور "L present" کے بعد نمبر ڈسپلے فریمریٹ کی نمائندگی کرتا ہے۔
بعض اوقات، مواد FPS اور ڈسپلے فریمریٹ میں تھوڑا سا تضاد ہو سکتا ہے۔
سابق کے لیےample، اوپر کی صورت میں، 89.8 FPS کو 90 FPS سمجھا جا سکتا ہے۔
اگر ایپ کا مواد FPS ڈسپلے فریمریٹ سے مسلسل کم ہے یا غیر مستحکم رہتا ہے، تو یہ رینڈرنگ پرفارمنس کے مسئلے کی نشاندہی کرتا ہے۔ لہذا، اگلا مرحلہ یہ شناخت کرنا ہے کہ آیا رکاوٹ CPU سے آرہی ہے یا GPU سے۔
2.2 CPU اور GPU کا استعمال چیک کریں۔
اگر آپ کی ایپلیکیشن SDK VIVE WAVE SDK 6.0.0 یا اس کے بعد کا استعمال کر رہی ہے، تو آپ FPS کو چیک کرنے کے لیے درج ذیل adb کمانڈ استعمال کر سکتے ہیں۔
$adb logcat -s VRMetric
آپ کو درج ذیل لاگ ڈیٹا نظر آئے گا۔
VRMetric:FPS=89.8/89.8,CPU=27/1,GPU=72/3,GpuBd=0,LrCnt=1,2Stag=1,Pstat=2,AQ=1,FOVED=0 /0, FSE=1,TWS=2,PT=0(0),RndrBK=0,GLTA=2D,EB=1720×1720
جیسا کہ آپ اوپر لاگ کے نتیجے میں دیکھ سکتے ہیں، CPU کا استعمال 27% ہے اور GPU کا استعمال 72% ہے اگر آپ کا Wave SDK ورژن 6.0.0 سے کم ہے، تو رینڈرنگ کی کارکردگی اور دیگر کو بہتر بنانے کے لیے تازہ ترین ورژن میں اپ گریڈ کرنے کی سفارش کی جاتی ہے۔
VIVE OpenXR ایپ کے لیے، آپ CPU اور GPU کے استعمال کو چیک کرنے کے لیے درج ذیل کمانڈ کا استعمال کر سکتے ہیں۔
# linux/ubuntu پر
$ adb logcat | grep CPU_USAGE
# پاور شیل پر
$ adb logcat | سلیکٹ سٹرنگ - پیٹرن CPU_USAGE
آپ کو درج ذیل لاگ نظر آئے گا۔
CPU اوسط CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7 GPU CPU_USAGE [LOAD] 25.67% 32.22% 25.29% 30.77% 29.35% 21.35% 22.09% 18.39% 24.14%
اگر آپ دیکھتے ہیں کہ FPS ڈسپلے فریم کی شرح کو برقرار نہیں رکھ سکتا اور GPU کا استعمال بھی بہت زیادہ ہے، عام طور پر 85% سے زیادہ ہے، تو آپ آئی بفر ریزولوشن (سیکشن 3.1.2، سیکشن 4.1.2) کو ایڈجسٹ کرنے کی کوشش کر سکتے ہیں کہ آیا یہ FPS کو بہتر بناتا ہے۔ اگر یہ ایڈجسٹمنٹ بہتر کی طرف جاتا ہے۔
کارکردگی، ہم یہ نتیجہ اخذ کر سکتے ہیں کہ مسئلہ GPU سے منسلک ہے اور اسی کے مطابق اپنی اصلاح کی کوششوں پر توجہ مرکوز کر سکتے ہیں۔
دوسری طرف، اگر آئی بفر ریزولوشن کو ایڈجسٹ کرنے کے نتیجے میں کارکردگی میں نمایاں بہتری نہیں آتی ہے، تو ممکنہ طور پر سی پی یو سے منسلک رکاوٹ ہے، اور ہمیں سی پی یو کی کارکردگی کو بہتر بنانے پر توجہ دینی چاہیے۔
یہ بھی ممکن ہے کہ ایپلیکیشن بیک وقت CPU کے پابند اور GPU کے پابند ہو۔ ایسے معاملات میں، کارکردگی میں متوازن بہتری حاصل کرنے کے لیے اصلاح کی کوششوں کو CPU اور GPU دونوں پر لاگو کیا جانا چاہیے۔
2.3 GPU پابند
جب ایک VR ایپ GPU کے ساتھ پابند ہوتی ہے، تو اس کا مطلب ہے کہ GPU بنیادی رکاوٹ ہے، اور یہ ایپلیکیشن کے رینڈرنگ مطالبات کو پورا کرنے سے قاصر ہے۔ GPU سے منسلک مسائل کو کم کرنے کے لیے، درج ذیل سفارشات پر غور کریں:
پہلے، پروفائلنگ ٹولز جیسے RenderDoc یا Game Engine pro کا استعمال کریں۔filer (یونٹی پروfiler، غیر حقیقی بصیرت) تجزیہ کرنے کے لیے کہ GPU اپنا زیادہ تر وقت کہاں گزار رہا ہے۔ مہنگے ترین آپریشنز کی نشاندہی کریں اور ان کو بہتر بنانے پر توجہ دیں۔
مقامی ڈویلپر کے لیے، آپ RenderDoc کا استعمال کر سکتے ہیں تاکہ شناخت کی جا سکے کہ کون سی ڈرا کال GPU کی ضرورت سے زیادہ بوجھ کا باعث بن رہی ہے۔
یونٹی ڈیولپر کے لیے، آپ یونٹی اس دستاویز کی پیروی کر سکتے ہیں یا رینڈرنگ کارکردگی کے مسئلے کا تجزیہ کرنے کے لیے RenderDoc کا استعمال کر سکتے ہیں، اور اپنی درخواست کو بہتر بنانے کے لیے رہنمائی کے لیے یونٹی گرافکس آپٹیمائزیشن دستاویزات کی پیروی کر سکتے ہیں۔
غیر حقیقی ڈیولپر کے لیے، آپ GPU Visualizer استعمال کر سکتے ہیں یا RenderDoc استعمال کر سکتے ہیں تاکہ رینڈرنگ کارکردگی کے مسئلے کا تجزیہ کریں، اور اپنی ایپلیکیشن کو بہتر بنانے کے لیے رہنمائی کے لیے غیر حقیقی کارکردگی کے رہنما خطوط پر عمل کریں۔
دوسرا، آپ GPU لوڈنگ کو کم کرنے کے لیے Wave کی مخصوص خصوصیات یا ترتیبات کو ایڈجسٹ کرنے کی کوشش بھی کر سکتے ہیں۔
- ڈسپلے ریفریش ریٹ کو سست سیٹ کریں (سیکشن 3.1.1، سیکشن 4.1.1)
- آئی بفر ریزولوشن کو ایڈجسٹ کریں (سیکشن 3.1.2، سیکشن 4.1.2)، 14.1.1)
- Foveation کو فعال کرنے کی کوشش کریں (سیکشن 3.1.4، سیکشن 4.1.4)۔
اگر آپ کی ایپ بھی ایک MR ایپ ہے، تو آپ پاس تھرو سیٹنگز کو بھی ایڈجسٹ کر سکتے ہیں۔
- پاس تھرو امیج کوالٹی کم ایڈجسٹ کریں۔ (سیکشن 3.2.1)
- پاس تھرو فریمریٹ کو آہستہ سے ایڈجسٹ کریں۔ (سیکشن 3.2.2)۔
GPU کی کارکردگی کے بارے میں مزید دیگر ترتیبات کے لیے، آپ باب 2.6 کا حوالہ دے سکتے ہیں۔
2.4 CPU پابند
جب ایک VR ایپ CPU سے منسلک ہے، تو اس کا مطلب ہے کہ CPU بنیادی رکاوٹ ہے، درج ذیل سفارشات پر غور کریں:
سب سے پہلے، پروفائلنگ ٹولز جیسے Systrace یا Game Engine pro کا استعمال کریں۔filer (یونٹی پروfiler، غیر حقیقی بصیرت) کا تجزیہ اور شناخت کرنے کے لیے آپ کے کوڈ کے کون سے حصے سب سے زیادہ CPU وسائل استعمال کر رہے ہیں۔ ان علاقوں کو بہتر بنانے پر توجہ مرکوز کریں اور CPU بوجھ کو کم کرنے کے لیے کمپیوٹیشنل انٹینسیو الگورتھم کو ری ایکٹر کریں۔
- مقامی ڈویلپر کے لیے، آپ Systrace to pro استعمال کر سکتے ہیں۔filer آپ کا پروجیکٹ۔
- یونٹی ڈیولپر کے لیے، آپ سی پی یو یوزیج پرو استعمال کر سکتے ہیں۔fileCPU کارکردگی کا مسئلہ تلاش کرنے کے لیے r ماڈیول۔
- غیر حقیقی ڈیولپر کے لیے، آپ CPU کی کارکردگی کا مسئلہ تلاش کرنے کے لیے غیر حقیقی کی بصیرت کا استعمال کر سکتے ہیں۔
دوسرا، آپ GPU لوڈنگ کو کم کرنے کے لیے Wave کی مخصوص خصوصیات یا ترتیبات کو ایڈجسٹ کرنے کی کوشش بھی کر سکتے ہیں۔
- ڈسپلے ریفریش ریٹ کو سست سیٹ کریں (سیکشن 3.1.1، سیکشن 4.1.1)
- کثیر استعمال کریںView رینڈرنگ (سیکشن 3.1.4، سیکشن 4.1.4)
اگر آپ کی ایپ بھی ایک MR ایپ ہے، تو آپ پاس تھرو سیٹنگز کو بھی ایڈجسٹ کر سکتے ہیں۔
- پاس تھرو فریمریٹ کو آہستہ سے ایڈجسٹ کریں (سیکشن 3.2.2)۔
CPU کی کارکردگی کے بارے میں مزید دیگر ترتیبات کے لیے، آپ باب 2.6 کا حوالہ دے سکتے ہیں۔
2.5 خلاصہ
آخر میں، ہم نے مندرجہ بالا کارکردگی کی جانچ کرنے والے ورک فلو کو شکل 2-5-1 میں ترتیب دیا ہے۔ مواد کے FPS کو چیک کرکے شروع کریں۔ اگر یہ ڈسپلے فریمریٹ سے کم ہے یا غیر مستحکم رہتا ہے، تو GPU/CPU کے استعمال کا تجزیہ کرکے یہ تعین کریں کہ آیا یہ GPU- پابند ہے یا CPU باؤنڈ۔ آخر میں، ایک پرو استعمال کریںfiler ممکنہ کارکردگی کے مسائل کی نشاندہی کرنے یا CPU کی کارکردگی کو بہتر بنانے کے لیے Wave کی خصوصیات یا ترتیبات کو ایڈجسٹ کرنے کے لیے۔

2.6 فوری حوالہ کون سی سیٹنگز CPU/GPU لوڈنگ کو بہتر بنا سکتی ہیں۔
SDK کی ان ترتیبات کی فہرست بنائیں جو CPU/GPU لوڈنگ سے متعلق ہیں جیسا کہ ذیل میں ہے۔ آپ متعلقہ اصلاح کی ترتیبات کو چیک کرنے کے لیے ایپ کی رکاوٹ پر مبنی ہو سکتے ہیں۔
سی پی یو سے متعلق:
- VIVE Wave SDK سیٹنگ
o VR مواد
▪ 3.1.1 ڈسپلے ریفریش ریٹ
▪ 3.1.4 کثیرView رینڈرنگ
▪ 3.1.6 موافقت کا معیار
▪ 3.1.7 اڈاپٹیو موشن کمپوزیٹر
اے ایم آر مواد
▪ 3.2.2 پاس تھرو فریم ریٹ کو ایڈجسٹ کریں۔ - VIVE OpenXR SDK سیٹنگ
o VR مواد
▪ 4.1.1 ڈسپلے ریفریش ریٹ
▪ 4.1.4 کثیرView رینڈرنگ - عام اصلاح
o 5.5 CPU سپائیک
GPU سے متعلق:
- VIVE Wave SDK سیٹنگ
o VR مواد
▪ 3.1.1 ڈسپلے ریفریش ریٹ
▪ 3.1.2 آئی بفر ریزولوشن
▪ 3.1.3 کثیرView رینڈرنگ
▪ 3.1.4 فوویشن
▪ 3.1.5 فریم شارپنیس اینہانسمنٹ (FSE)
▪ 3.1.6 موافقت کا معیار
▪ 3.1.7 اڈاپٹیو موشن کمپوزیٹر
▪ 3.1.8 رینڈر ماسک [غیر حقیقی کی حمایت نہیں کرتا] o MR مواد
▪ 3.2.1 پاس تھرو کوالٹی کو ایڈجسٹ کریں۔
▪ 3.2.2 پاس تھرو فریم ریٹ کو ایڈجسٹ کریں۔ - VIVE OpenXR SDK سیٹنگ
o VR مواد
▪ 4.1.1 ڈسپلے ریفریش ریٹ
▪ 4.1.2 آئی بفر ریزولوشن
▪ 4.1.3 کثیرView رینڈرنگ
▪ 4.1.4 Foveation [غیر حقیقی کی حمایت نہیں کرتا] ▪ 4.1.5 رینڈر ماسک [غیر حقیقی کی حمایت نہیں کرتا] - عام اصلاح
o 5.1 ہائی پرفارمنس موڈ کو آف کریں۔
o 5.2 ملٹیزampلنگ
o 5.3 GMEM لوڈ/اسٹور
o 5.4 کمپوزیشن لیئر (ملٹی لیئر)
VIVE لہر کی ترتیب
VIVE Wave ایک کھلا پلیٹ فارم اور ٹول سیٹ ہے جو آپ کو آسانی سے VR مواد تیار کرنے دیتا ہے اور فریق ثالث کے شراکت داروں کے لیے اعلیٰ کارکردگی والے ڈیوائس کی اصلاح فراہم کرتا ہے۔ VIVE ویو اتحاد اور غیر حقیقی گیم انجنوں کی حمایت کرتا ہے۔
ہم مسلسل بہتر بناتے ہیں اور مختلف کیڑوں کو حل کرتے ہیں، اس لیے ہم نے SDK کو اپ ٹو ڈیٹ رکھنے کی سفارش کی۔
فی الحال، VIVE Wave صرف OpenGL ES کو سپورٹ کرتا ہے۔ یہاں GPU کی کارکردگی کے اثر و رسوخ کے ذریعہ ترتیب دی گئی خصوصیات کی فہرست ہے۔ ہم اسے دو حصوں میں تقسیم کریں گے: VR مواد اور MR مواد۔
3.1 VR مواد
3.1.1 ڈسپلے ریفریش ریٹ
ریفریش کی اعلی شرحیں ہموار بصری پیش کرتی ہیں، لیکن سسٹم بوجھ میں اضافے کی قیمت پر آتی ہیں۔ اس کے برعکس، ریفریش کی کم شرحیں سسٹم کا بوجھ کم کرتی ہیں، لیکن اس کے نتیجے میں کم ہموار بصری ہوتے ہیں۔ اگر ایپ میں CPU/GPU باؤنڈ ایشو ہے، تو آپ اس مسئلے کو کم کرنے کے لیے ڈسپلے ریفریش ریٹ کو کم کرنے کی کوشش کر سکتے ہیں۔
- مقامی ڈویلپر کے لیے، WVR_SetFrameRate سے رجوع کریں۔
- یونٹی ڈویلپر کے لیے، اس گائیڈ سے رجوع کریں۔
- غیر حقیقی ڈویلپر کے لیے، اس گائیڈ سے رجوع کریں۔
3.1.2 آئی بفر ریزولوشن
آئی بفر ریزولیوشن ٹیکسچر کا سائز ہے جو مواد ایپ کو رینڈر کیا جائے گا، رینڈرڈ ٹیکسچر پوسٹنگ کے عمل کو کرنے کے لیے رن ٹائم پر جمع کرایا جائے گا اور HMD ڈسپلے پر پیش کیا جائے گا۔
اگرچہ آنکھوں کے بڑے بفر سائز کے نتیجے میں واضح اور زیادہ تفصیلی بصری ہوسکتے ہیں، لیکن یہ GPU پر ایک اہم بوجھ بھی عائد کرتا ہے۔ لہذا، بصری معیار اور کارکردگی کے درمیان صحیح توازن تلاش کرنا ضروری ہے۔
اگر ایپ میں GPU باؤنڈ ایشو ہے، تو آپ اسکیل فیکٹر کو ضرب دے کر آئی بفر کے سائز کو کم کرنے کی کوشش کر سکتے ہیں۔ تاہم، ہم تجویز کرتے ہیں کہ پیمانے کے عنصر کو 0.7 سے کم نہ کریں، کیونکہ اس کے نتیجے میں بصری معیار ناقابل قبول ہو سکتا ہے۔
- مقامی ڈویلپر کے لیے، WVR_ObtainTextureQueue سے رجوع کریں۔ سائز کو ایڈجسٹ کرتے وقت، آپ کو چوڑائی اور اونچائی کو تناسب سے ضرب دینا چاہیے۔
- یونٹی ڈویلپر کے لیے، WaveXRSettings سے رجوع کریں۔
متبادل کے طور پر، آپ بیلوو کے بطور کوڈ کے ذریعے تبدیلیاں کر سکتے ہیں۔
XRSettings.eyeTextureResolutionScale = ResolutionScaleValue; // C# - غیر حقیقی ڈویلپر کے لیے، SetPixelDensity سے رجوع کریں۔
3.1.3 کثیرView رینڈرنگ
روایتی رینڈرنگ میں، ہم بائیں اور دائیں آنکھیں الگ الگ کھینچتے ہیں، جس میں ایک ہی منظر کے لیے دو ڈرا کالز کی ضرورت ہوتی ہے۔ کثیرView رینڈرنگ صرف ایک ڈرا کال کرکے اس مسئلے کو حل کرتی ہے۔
یہ فیچر ڈرا کالز کی تعداد کو کم کرکے CPU لوڈ کو کم کرتا ہے۔ GPU کے کچھ فائدے بھی ہیں، ورٹیکس شیڈر کا کام کا بوجھ بھی کم ہو گیا ہے کیونکہ اسے دوسری آنکھ کے لیے اضافی شیڈر چلانے کی ضرورت نہیں ہے، لیکن فریگمنٹ شیڈر کا کام کا بوجھ بدستور برقرار ہے کیونکہ اسے اب بھی دونوں آنکھوں کے لیے ہر ایک پکسل کا جائزہ لینے کی ضرورت ہے۔ ہم اس خصوصیت کو فعال کرنے کی تجویز کرتے ہیں۔
- مقامی ڈویلپر کے لیے، آپ wvr_native_hellovr s کا حوالہ دے سکتے ہیں۔ample
- یونٹی ڈویلپر کے لیے، رینڈر موڈ سے رجوع کریں، سنگل پاس ملٹی-view خصوصیت
- غیر حقیقی ڈویلپر کے لیے، اس گائیڈ سے رجوع کریں۔
3.1.4 فوویشن
فوویٹڈ رینڈرنگ بنیادی طور پر GPU بوجھ کو کم کرنے کے لیے ڈیزائن کیا گیا ہے۔ یہ ڈسپلے کے پردیی میں فریم کی تفصیل کو کم کرتا ہے اور فیلڈ کے بیچ میں ہائی ریزولوشن ڈیٹیل کو برقرار رکھتا ہے۔ view. اگر ایپ میں GPU باؤنڈ ایشو ہے، تو آپ Foveation رینڈرنگ کو فعال کرنے کی کوشش کر سکتے ہیں۔

فوویشن کا استعمال کرتے وقت کچھ چیزوں پر توجہ دینے کی ضرورت ہے:
➢ صارفین عام طور پر پردیی علاقوں میں ڈیفالٹ فوویشن موڈ کا اطلاق کرتے ہوئے کم ہونے والی تفصیل کو نہیں دیکھتے ہیں۔ لیکن اگر فوویشن کا پردیی معیار بہت کم رکھا گیا ہے، تو یہ صارف کے لیے قابل توجہ بن سکتا ہے۔
➢ بناوٹ کے کچھ مواد کے ساتھ فوویشن کے اثرات زیادہ نمایاں ہو سکتے ہیں، جو صارف کی توجہ حاصل کر سکتے ہیں۔ ڈویلپرز کو اس سے آگاہ ہونا چاہئے اور اس کے مطابق اس کا جائزہ لینا چاہئے۔
➢ فوویٹڈ رینڈرنگ فیچر کو فعال کرنے سے GPU کارکردگی کی ایک مقررہ لاگت آتی ہے، جو آئی بفر کے سائز کے لحاظ سے 1% سے 6% کے درمیان مختلف ہو سکتی ہے۔ منظر میں ایک سادہ شیڈر کا استعمال کرتے وقت، وسائل کو بچانے سے کارکردگی کا فائدہ مقررہ GPU کارکردگی کی لاگت سے کم ہو سکتا ہے، جس کے نتیجے میں کارکردگی میں کمی واقع ہوتی ہے۔
- مقامی ڈویلپر کے لیے، اس گائیڈ سے رجوع کریں۔
- یونٹی ڈویلپر کے لیے، اس گائیڈ سے رجوع کریں۔ خاص طور پر، جب آپ پوسٹ پروسیسنگ یا ایچ ڈی آر کو فعال کرتے ہیں، تو فوویشن کو مکمل طور پر استعمال نہیں کیا جا سکتا۔ کیونکہ یونٹی اشیاء کو اپنے ہی تیار کردہ رینڈر ٹیکسچر پر رینڈر کرے گا، بجائے اس کے کہ رن ٹائم سے تیار کردہ موجودہ رینڈر ٹیکسچر جو فوویشن کو سپورٹ کرتا ہے۔
- غیر حقیقی ڈویلپر کے لیے، اس گائیڈ سے رجوع کریں۔ قابل ذکر بات یہ ہے کہ ملٹی پر فوویشن کو مکمل طور پر استعمال نہیں کیا جا سکتا۔View رینڈرنگ، کیونکہ غیر حقیقی اشیاء کو رن ٹائم سے تیار کردہ رینڈر ٹیکسچر پر براہ راست نہیں رینڈر کر سکتا ہے جو فوویشن کو سپورٹ کرتا ہے۔
3.1.5 فریم شارپنیس اینہانسمنٹ (FSE)
ایف ایس ای شارپن فلٹر متعارف کرانے کے ذریعے تیز رینڈرنگ کا نتیجہ فراہم کرتا ہے، یہ مواد کو مزید واضح بنا سکتا ہے اور منظر میں متن کی وضاحت کو بہتر بنانے میں کافی مددگار ثابت ہو سکتا ہے۔ اگر ایپ میں GPU باؤنڈ ایشو ہے تو، اگر ضروری نہ ہو تو آپ FSE کو غیر فعال کرنے پر غور کر سکتے ہیں۔

- مقامی ڈویلپر کے لیے، اس گائیڈ سے رجوع کریں۔
- یونٹی ڈویلپر کے لیے، اس گائیڈ سے رجوع کریں۔
- غیر حقیقی ڈویلپر کے لیے، اس گائیڈ سے رجوع کریں۔
3.1.6 انکولی معیار
بیٹری کو بچانے اور ڈیوائس کی رینڈرنگ پرفارمنس کو برقرار رکھنے کے لیے، یہ فیچر خود بخود CPU/GPU گھڑی کی کارکردگی کی سطح کو ان کے استعمال کی بنیاد پر ایڈجسٹ کرتا ہے۔ مزید برآں، کارکردگی کو بڑھانے کے لیے دیگر حکمت عملیوں کو لاگو کیا جا سکتا ہے، جیسے کہ فوویشن کو خود بخود فعال/غیر فعال کرنا یا زیادہ/کم بوجھ کے واقعات موصول ہونے پر مواد خود کو ایڈجسٹ کر سکتا ہے۔
- مقامی ڈویلپر کے لیے، اس گائیڈ سے رجوع کریں۔
- یونٹی ڈویلپر کے لیے، اس گائیڈ سے رجوع کریں۔ ہمارے یونٹی پلگ ان میں، آنکھوں کے بفر کے سائز کو موجودہ کارکردگی کی بنیاد پر خود بخود ایڈجسٹ کیا جا سکتا ہے۔ متن کا سائز ان اسکیل اقدار کو فلٹر کرے گا جو ریزولوشن لسٹ میں بہت چھوٹی ہیں۔ ہم کم از کم 20 ڈی ایم ایم یا اس سے بڑے سائز کے متن کی تجویز کرتے ہیں۔
- غیر حقیقی ڈویلپر کے لیے، اس گائیڈ سے رجوع کریں۔
3.1.7 اڈاپٹیو موشن کمپوزیٹر
یہ خصوصیت تجرباتی خصوصیت ہے جس میں UMC اور PMC شامل ہیں۔ UMC فریم ریٹ کو نصف تک کم کرے گا اور بصری ہمواری کو برقرار رکھنے کے لیے حقیقی وقت میں نئے فریم کو ایکسٹراپلیٹ کرے گا۔ تاہم، یہ کچھ تاخیر، نمونے اور GPU لوڈنگ کے ساتھ آتا ہے۔
PMC بنیادی طور پر ڈیپتھ بفر کا استعمال کرتا ہے تاکہ ATW کو HMD ترجمہ کا حساب کتاب کرنے کی اجازت دی جائے، 6-dof معاوضے تک توسیع کی جائے۔ یہ خصوصیت ترجمے کی تاخیر کو 1~2 فریمز تک کم کر سکتی ہے، لیکن GPU لوڈنگ میں اضافہ کر سکتی ہے۔
- مقامی ڈویلپر کے لیے، اس گائیڈ سے رجوع کریں۔
- یونٹی ڈویلپر کے لیے، اس گائیڈ سے رجوع کریں۔
- غیر حقیقی ڈویلپر کے لیے، اس گائیڈ سے رجوع کریں۔
3.1.8 رینڈر ماسک [غیر حقیقی کی حمایت نہیں کرتا]
کناروں پر موجود پکسلز مسخ ہونے کے بعد تقریباً پوشیدہ ہو جاتے ہیں، رینڈر ماسک ان پوشیدہ پکسلز کی گہرائی کے بفر اقدار کو تبدیل کرتا ہے۔ اگر آپ گہرائی کی جانچ کو فعال کرتے ہیں، ابتدائی-z کی وجہ سے، یہ پوشیدہ پکسلز پیش نہیں کیے جائیں گے، اس طرح GPU لوڈ کم ہو جائے گا۔ یہ خصوصیت مفید ہے اگر ان پوشیدہ علاقوں میں بھاری بھرکم رینڈرنگ اشیاء موجود ہوں۔ بصورت دیگر، اگر ان علاقوں میں کوئی رینڈرنگ آبجیکٹ نہیں ہیں، تو اسے غیر فعال کرنے کی سفارش کی جاتی ہے کیونکہ یہ ایک چھوٹا GPU استعمال کرے گا۔
- مقامی ڈویلپر کے لیے، اس گائیڈ سے رجوع کریں۔ RenderMask کو کال کرنے سے پہلے آپ کو گہرائی کے بفر کو بائنڈنگ کرنا ہوگا۔ دوسری صورت میں، یہ غیر موثر ہو جائے گا.
- یونٹی ڈویلپر کے لیے، اس گائیڈ سے رجوع کریں۔
- غیر حقیقی ڈویلپر کے لیے، فی الحال رینڈر ماسک فیچر کو سپورٹ نہیں کرتا ہے۔
3.2 MR مواد
3.2.1 پاس تھرو کوالٹی کو ایڈجسٹ کریں۔
پاس تھرو امیج کوالٹی کے لیے 3 لیولز ہیں:
➢ WVR_PassthroughImageQuality_DefaultMode – MR مواد کے لیے مخصوص ڈیمانڈ کے بغیر موزوں ہے۔
➢ WVR_PassthroughImageQuality_PerformanceMode – MR مواد کے لیے موزوں ہے جسے ورچوئل سین رینڈرنگ کے لیے مزید GPU وسائل کی ضرورت ہے۔
➢ WVR_PassthroughImageQuality_QualityMode – MR مواد کے لیے موزوں ہے جو صارفین کو ارد گرد کے ماحول کو واضح طور پر دیکھنے کی اجازت دیتا ہے، لیکن مواد کے ورچوئل سین میں کارکردگی کے لیے زیادہ عمدہ ٹیوننگ ہونی چاہیے۔
آپ GPU کے استعمال کو کم کرنے کے لیے پاس تھرو کوالٹی کو PerformanceMode میں ایڈجسٹ کر سکتے ہیں۔
- مقامی، یونیٹی یا غیر حقیقی ڈویلپر کے لیے، اس گائیڈ سے رجوع کریں۔
3.2.2 پاس تھرو فریم ریٹ کو ایڈجسٹ کریں۔
ڈسپلے ریفریش ریٹ کی طرح، اعلی پاس تھرو فریمریٹ ہموار بصری پیش کرتے ہیں، لیکن سسٹم بوجھ میں اضافے کی قیمت پر آتے ہیں۔ اس کے برعکس، ریفریش کی کم شرحیں سسٹم کا بوجھ کم کرتی ہیں، لیکن اس کے نتیجے میں کم ہموار بصری ہوتے ہیں۔ پاس تھرو فریمریٹ کے 2 طریقے ہیں: بوسٹ اور نارمل۔
- مقامی ڈویلپر کے لیے، WVR_SetPassthroughImageRate کا استعمال کرتے ہوئے پاس تھرو کوالٹی کو ایڈجسٹ کر سکتے ہیں۔
- یونٹی ڈویلپر کے لیے، کوڈ کے ذریعے تبدیل کر سکتے ہیں، سابقample ترتیبات مندرجہ ذیل ہیں // C#
Interop.WVR_SetPassthroughImageQuality(WVR_PassthroughImageQuality.PerformanceMode)؛ - غیر حقیقی ڈویلپر کے لیے، ترتیب کا طریقہ تصویر 3-2-2 میں بلیو پرنٹ نوڈ دیکھیں۔

VIVE اوپن ایکس آر سیٹنگ
OpenXR کھلا معیار ہے جو XR ایپلی کیشنز تیار کرنے کے لیے APIs کا ایک مشترکہ سیٹ فراہم کرتا ہے جو کہ Khronos گروپ کے ذریعے تیار کردہ VR آلات کی ایک وسیع رینج میں چلتی ہے۔ VIVE فوکس 3 اور VIVE XR ایلیٹ بھی OpenXR کو سپورٹ کرتے ہیں، VIVE OpenXR SDK HTC VR ڈیوائسز کے لیے جامع سپورٹ فراہم کرتا ہے، جس سے ڈویلپرز کو Allin-One اور HTC VR ڈیوائسز پر یونٹی اور غیر حقیقی انجن کے ساتھ مواد بنانے کی اجازت ملتی ہے۔ ہم مختلف کیڑوں کو مسلسل بہتر اور حل کرتے ہیں، اس لیے یہ تجویز کیا جاتا ہے کہ ڈویلپرز اپنے آلے کے FOTA ورژن کو اپ ٹو ڈیٹ رکھنے کے لیے اسے اپ ڈیٹ کریں۔ فی الحال، VIVE OpenXR SDK OpenGL ES اور Vulkan کو سپورٹ کرتا ہے۔
4.1 VR مواد
4.1.1 ڈسپلے ریفریش ریٹ
یہاں کا تصور 3.1.1 ڈسپلے ریفریش ریٹ جیسا ہے۔
- مقامی ڈویلپر کے لیے، XrEventDataDisplayRefreshRateChangedFB سے رجوع کریں۔
- یونٹی ڈویلپر کے لیے، اس گائیڈ سے رجوع کریں۔
- غیر حقیقی ڈویلپر کے لیے، اس گائیڈ سے رجوع کریں۔
4.1.2 آئی بفر ریزولوشن
یہاں کا تصور 3.1.2 آئی بفر ریزولوشن جیسا ہے۔ ہم تجویز کرتے ہیں کہ پیمانے کے عنصر کو 0.7 سے کم نہ کریں، کیونکہ اس کے نتیجے میں بصری معیار ناقابل قبول ہو سکتا ہے۔
- مقامی ڈویلپر کے لیے، xrCreateSwapchain سے رجوع کریں۔ سائز کو ایڈجسٹ کرتے وقت، آپ کو چوڑائی اور اونچائی کو تناسب سے ضرب دینا چاہیے۔ ،
- یونٹی ڈویلپر کے لیے، مندرجہ ذیل سابق سے رجوع کریں۔ample // C#
XRSettings.eyeTextureResolutionScale = 0.7f; //تجویز کردہ 1.0f~0.7f - غیر حقیقی ترتیبات کے لیے، اس گائیڈ سے رجوع کریں۔
4.1.3 کثیرView رینڈرنگ
یہاں کا تصور 3.1.3 ملٹی۔View رینڈرنگ یہ فیچر سی پی یو پر بوجھ کم کرتا ہے، جی پی یو کے کچھ فائدے بھی ہیں۔ ہم اس خصوصیت کو فعال کرنے کی تجویز کرتے ہیں۔
- مقامی ڈویلپر کے لیے، KhronosGroup ایک OpenXR ملٹی-View example, اس گائیڈ کا حوالہ دیتے ہیں.
- یونٹی ڈویلپر کے لیے، رینڈر موڈ سے رجوع کریں، سنگل پاس ملٹی-view خصوصیت
- غیر حقیقی ڈویلپر کے لیے، جیسا کہ VIVE Wave کی ترتیبات کے ساتھ، اس گائیڈ سے رجوع کریں۔
4.1.4 فووی ایشن [غیر حقیقی کی حمایت نہیں]
یہاں کا تصور 3.1.4 Foveation جیسا ہے۔ فوویٹڈ رینڈرنگ بنیادی طور پر GPU بوجھ کو کم کرنے کے لیے ڈیزائن کیا گیا ہے لیکن اسے فعال کرنے سے GPU کی کارکردگی کی ایک مقررہ لاگت آئے گی اور اگر فوویشن بہت کم سیٹ کی جاتی ہے اور کچھ مواد یا ساخت کا استعمال کیا جاتا ہے، تو یہ بہت زیادہ ہو سکتا ہے۔
صارف کے لیے قابل توجہ۔ لہذا، یہ مشورہ دیا جاتا ہے کہ آپ کی مخصوص ضروریات اور کارکردگی کے تحفظات کی بنیاد پر فیچر کو فعال یا غیر فعال کر دیا جائے فی الحال، VIVE OpenXR SDK پر صرف OpenGL ES میں Foveated فعالیت کی حمایت کی جاتی ہے۔
- مقامی ڈویلپر کے لیے، یہ خصوصیت دستیاب ہے، لیکن فی الحال، کوئی سابقہ نہیں۔amples فراہم کی جاتی ہیں.
- یونٹی ڈویلپر کے لیے، اس گائیڈ سے رجوع کریں۔
- غیر حقیقی ڈویلپر کے لیے، اس وقت اس خصوصیت کو سپورٹ نہیں کرتا ہے۔
4.1.5 رینڈر ماسک [غیر حقیقی کی حمایت نہیں کرتا]
یہاں کا تصور 3.1.8 Render Mask جیسا ہے۔
- مقامی ڈویلپر کے لیے، میش حاصل کرنے کے لیے XrVisibilityMaskKHR استعمال کریں۔ منظر پیش کرنے سے پہلے، منظر پیش کرنے سے پہلے گہرائی کے بفر کی قدروں کو آباد کرنے کے لیے اس میش کا استعمال کریں۔
- یونٹی ڈویلپر کے لیے، رینڈر ماسک فیچر بطور ڈیفالٹ OpenGL ES کے لیے فعال ہے، اور اسے درج ذیل کوڈ کے ساتھ غیر فعال کیا جا سکتا ہے۔ ولکن فی الحال اس خصوصیت کی حمایت نہیں کرتا ہے۔ //C# UnityEngine.XR.XRSettings.occlusionMaskScale = 0.0f;
- غیر حقیقی ڈویلپر کے لیے، فی الحال رینڈر ماسک فیچر کو سپورٹ نہیں کرتا ہے۔
4.2 MR مواد
OpenXR فی الحال پاس تھرو کوالٹی اور فریم ریٹ سیٹ کرنے کی حمایت نہیں کرتا ہے۔ ہم پاس تھرو فیچر کو بہتر اور ٹھیک کرنا جاری رکھیں گے، اس لیے تجویز کیا جاتا ہے کہ ڈویلپرز ڈیوائس کے FOTA ورژن کو اپ ٹو ڈیٹ رکھنے کے لیے اسے اپ ڈیٹ کریں۔
عام اصلاح
5.1 ہائی پرفارمنس موڈ کو آف کریں۔
"ہائی پرفارمنس موڈ" کو آف کرنے سے ڈیوائس کا ڈسپلے سائز کم ہو سکتا ہے، اس طرح GPU کا استعمال کم ہو سکتا ہے۔ خرابی اسکرین ریزولوشن میں کمی ہے۔ آپ معیار اور کارکردگی کو متوازن کر سکتے ہیں تاکہ فیصلہ کر سکیں کہ آیا اسے فعال کرنا ہے۔
VIVE فوکس 3 کے لیے ترتیب کی جگہ تصویر 5-1-1 دکھائی گئی ہے:

VIVE XR ایلیٹ کے لیے ترتیب کی جگہ تصویر 5-1-2 دکھائی گئی ہے:

5.2 ملٹیزampلنگ اینٹی ایلائزنگ
ملٹیسampling ایک اینٹی الیاسنگ تکنیک ہے جو دانے دار کناروں کو ہموار کرنے کے لیے استعمال ہوتی ہے، جسے عام طور پر ہارڈ ویئر کے ذریعے تیز کیا جاتا ہے، جس میں GPU کی کارکردگی کی لاگت آتی ہے۔ ہم تجویز کرتے ہیں کہ MSAA کو 2x سے زیادہ متعین نہ کریں کیونکہ زیادہ ہائیٹ ویلیو زیادہ جی پی یو استعمال کرے گی۔
- مقامی ڈویلپر کے لیے، MSAA OpenGL ES exsample اس کا حوالہ دے سکتے ہیں۔ MSAA Vulkan سابقampler اس کا حوالہ دے سکتے ہیں۔
Adreno GPU ایک توسیع فراہم کرتا ہے جو MSAA کو بہتر بناتا ہے۔ - یونٹی ڈویلپر کے لیے، اس گلڈ سے رجوع کریں۔
- غیر حقیقی ڈویلپر کے لیے، اس گلڈ سے رجوع کریں۔ غیر حقیقی نے پوسٹ پروسیسنگ اینٹی ایلائزنگ بھی فراہم کی ہے، اس گلڈ سے رجوع کریں۔
5.3 GMEM لوڈ/اسٹور
ایڈرینو جی پی یو آرکیٹیکچر میں، ایک خصوصیت ہے جہاں، رینڈر ٹارگٹ کو بائنڈنگ کرتے وقت، اگر رینڈر ٹارگٹ صاف یا غلط نہیں ہوتا ہے، ہر بار رینڈرنگ ہوتی ہے، رینڈر ٹارگٹ کی ویلیوز گرافکس میموری میں لوڈ ہوتی ہیں، جسے GMEM لوڈ کہا جاتا ہے۔ اگر پچھلی اقدار کی ضرورت نہیں ہے تو، Render Target befaure rendering کو صاف یا غلط کر دیں، GPU کی کارکردگی کو بہتر بنانے کے لیے اس صورتحال سے بچ سکتے ہیں۔
آپ درج ذیل طریقوں کو استعمال کرتے ہوئے GMEM لوڈ سے بچ سکتے ہیں۔ OpenGL ES میں، FBO کو بائنڈنگ کرنے کے بعد، آپ رنگ، گہرائی، اور سٹینسل بفر کو صاف کرنے کے لیے glClear اور glClearDepth کو کال کر سکتے ہیں، یا مخصوص رینڈر ٹارگٹ کو باطل کرنے کے لیے glInvalidateFramebuffer کو کال کر سکتے ہیں۔ ولکان میں، اضافی ہدایات ضروری نہیں ہیں۔ آپ واضح طور پر سیٹ کر سکتے ہیں کہ آیا VkAttachmentDescription.loadOp میں استعمال کرنے سے پہلے منسلکہ کو صاف کرنا ہے۔
اسی طرح، ٹائل رینڈر کے نتیجے کو گرافکس میموری سے مین میموری پر واپس اسٹور کرنا GMEM اسٹور کہلاتا ہے۔ یہ آپریشن GPU کے لیے بھی مہنگا ہے۔ اس سے بچنے کے لیے، ہم غیر ضروری اسٹور آپریشنز کو روکنے کے لیے صرف مطلوبہ رینڈر ٹارگٹس کو پابند کرنے کی تجویز کرتے ہیں۔
5.4 کمپوزیشن لیئر (ملٹی لیئر)
ملٹی لیئر کا استعمال کرتے ہوئے دکھائے جانے والے ٹیکسچرز کا بصری معیار بہتر ہوتا ہے۔ تاہم، یہ خصوصیت تہوں کی تعداد اور ساخت کے سائز کے ساتھ GPU کی کارکردگی میں نمایاں اضافہ کرتی ہے۔ ہم تجویز کرتے ہیں کہ تین پرتوں سے زیادہ نہ ہوں۔
- مقامی ڈویلپر کے لیے،
o VIVE Wave SDK WVR_SubmitFrameLayers کو ہر پرت کے لیے ڈیٹا منتقل کرنے کے لیے استعمال کرتا ہے۔
o VIVE OpenXR SDK لیئر ڈیٹا کو XrFrameEndInfo میں رکھتا ہے اور اسے xrEndFrame کے ذریعے جمع کراتا ہے۔ - یونٹی ڈویلپر کے لیے،
o VIVE Wave SDK سیٹنگز، اس گائیڈ سے رجوع کریں،
o VIVE OpenXR سیٹنگز، اس گائیڈ سے رجوع کریں۔ - غیر حقیقی ڈویلپر کے لیے،
o VIVE Wave SDK سیٹنگز، اس گائیڈ سے رجوع کریں۔
o VIVE OpenXR سیٹنگز، اس گائیڈ سے رجوع کریں۔
5.5 CPU سپائیک
جب CPU لوڈنگ زیادہ بھاری ہوتی ہے، تو کچھ پس منظر اعلی ترجیح والے تھریڈز پر کارروائی کرتے ہیں، یہ مقامی عمل میں رکاوٹ بن سکتا ہے۔ ہم اس بات کی ضمانت نہیں دے سکتے کہ مواد کی درخواست میں دوسرے دھاگے کے ذریعے مداخلت نہیں کی جائے گی۔
اگر اس طرح کے مسائل پیدا ہوتے ہیں، تو آپ دھاگے کی ترجیح کو بڑھانے کی کوشش کر سکتے ہیں کہ آیا اس سے مسئلہ حل ہوتا ہے۔ لیکن اگر آپ آلات کے لیے بہتر بنانے کے لیے تھریڈ کنفیگریشن کو تبدیل کرتے ہیں، تو آپ کو یہ چیک کرنے کی ضرورت ہے کہ آیا اس کا کوئی منفی اثر ہے۔
- یونٹی ڈیولپر کے لیے، اینڈرائیڈ تھریڈ کنفیگریشن فیچر سے رجوع کریں۔ اگر آپ VIVE Wave SDK استعمال کر رہے ہیں، تو ہمارے پاس WaveXRSettings میں ایک خصوصیت ہے جو آپ کو ترجیح کو ایڈجسٹ کرنے کی اجازت دیتی ہے، جیسا کہ شکل 5-5-2 میں دکھایا گیا ہے۔ چھوٹی قدر اعلی ترجیح کی نمائندگی کرتی ہے۔

- بیرونی ترتیبات کے ذریعے گیم تھریڈ، رینڈرنگ تھریڈ اور RHI تھریڈ کی ترجیح کو تبدیل کرنے کا کوئی غیر حقیقی طریقہ نہیں ہے جب تک کہ آپ انجن کوڈ میں ترمیم نہ کریں۔
کاپی رائٹ © 2024 HTC کارپوریشن۔ جملہ حقوق محفوظ ہیں۔
دستاویزات / وسائل
![]() |
VIVE VR رینڈرنگ پرفارمنس [پی ڈی ایف] یوزر گائیڈ وی آر رینڈرنگ پرفارمنس، رینڈرنگ پرفارمنس، پرفارمنس |
