
د VR رینډینګ فعالیت
ټوننګ او اصلاح کول
پیژندنه
په محدودو سرچینو هارډویر کې د غوره VR تجربې ترلاسه کول د اسانه او آرامه کارونکي تجربې وړاندې کولو لپاره کلیدي ده. که چیرې د مینځپانګې رینډرینګ فریم نرخ د وسیلې د ریفریش نرخ څخه ښکته یا بې ثباته شي ، نو دا به د فریم جوډر او سټټینګ ، حرکت ناروغۍ ، او نورو لامل شي. په نهایت کې د کارونکي تجربه منفي اغیزه کوي. له همدې امله ، د خوندورې تجربې ډاډ ترلاسه کولو لپاره د مینځپانګې فعالیت غوره کول خورا مهم دي.
د فعالیت تنظیم کولو پیل کولو دمخه، دا مهمه ده چې پوه شئ چې د فعالیت خنډونه چیرته دي ترڅو د غیر موثر ټونینګ څخه مخنیوی وشي. دا سند د دې لپاره ډیزاین شوی چې پراختیا کونکو سره د فعالیت خنډونه وپیژني او د رینډرینګ فعالیت مسلو حل کولو لپاره حلونه وړاندې کړي.
دا سند په لاندې برخو کې تنظیم شوی دی:
- دوهم فصل: د خنډونو پیژندنه - دا برخه پراختیا کونکو سره مرسته کوي چې د خنډونو ځای وپیژني.
- فصل ۳ او ۴: د VIVE Wave او VIVE OpenXR ترتیبات - دا برخې ځانګړي ترتیبات په ګوته کوي چې ممکن د VIVE Wave او OpenXR ایپسونو لپاره د CPU/GPU فعالیت اغیزه وکړي. پراختیا کونکي کولی شي د فعالیت خنډونو پراساس د دې ځانګړتیاو فعالولو یا غیر فعالولو تجربه وکړي ترڅو معلومه کړي چې ایا کوم پرمختګ شتون لري.
- پنځم فصل: عام اصلاح کول - دا برخه د اصلاح کولو ځینې عام طریقې او تجربې شریکوي.
د خنډ پیژندنه
کله چې HMD حرکت کوي، که چیرې د VR/MR اپلیکیشن فریم جټر یا تور څنډه ولري، نو دا معمولا د خراب رینډرینګ فعالیت مسلې له امله رامینځته کیږي. معمولا، د رینډرینګ فعالیت ستونزې په 2 ډولونو ویشل کیدی شي: CPU-باند یا GPU-باند. پوه شئ چې ستاسو د اپلیکیشن لپاره کوم ډول محدودیتونه په پیل کې خورا مهم دي ترڅو د غیر موثر ټونینګ څخه مخنیوی وشي.
پدې فصل کې، موږ ساده ګامونه وړاندې کوو چې تاسو سره مرسته کوي چې په چټکۍ سره وپیژنئ چې د فعالیت ستونزې چیرته دي.
۲.۱ د منځپانګې رینډرینګ 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 لاګ کیټ -s RENDER_ATW
تاسو به لاندې د لاګ معلومات وګورئ
RENDER_ATW: [FPS] نوی جوړښت: 90.00
RENDER_ATW: [FPS] R اوسنی: 90.00 پریږدئ: 0 317، -0.0155 0.805527، 0.006788)
RENDER_ATW: [FPS] L حاضر: 90.00 skip:0 (0.592301, -0.015502, 0.805539, 0.006773)
د "نوي جوړښت" وروسته شمیره د اوسني مینځپانګې FPS استازیتوب کوي. د "R موجود" او "L موجود" وروسته شمیره د ښودنې چوکاټ نرخ استازیتوب کوي.
ځینې وختونه، د منځپانګې FPS او د ښودلو چوکاټ نرخ ممکن یو څه توپیر ولري.
د مثال لپارهampپه پورته قضیه کې، 89.8 FPS د 90 FPS په توګه ګڼل کیدی شي.
که چیرې د اپلیکیشن د مینځپانګې FPS په دوامداره توګه د ښودنې چوکاټ نرخ څخه ټیټ وي یا بې ثباته پاتې شي، دا د رینډرینګ فعالیت مسله په ګوته کوي. له همدې امله، بل ګام دا دی چې وپیژندل شي چې ایا خنډ د CPU یا GPU څخه راځي.
۲.۲ د 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 کارولو چک کولو لپاره لاندې کمانډ وکاروئ.
# په لینوکس/اوبنټو کې
$ adb logcat | ګریپ CPU_USAGE
# په پاورشیل کې
$ adb logcat | د انتخاب-سټرینګ-نمونې CPU_USAGE
تاسو به لاندې لاګ وګورئ
د CPU اوسط CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7 GPU CPU_USAGE [لوډ] 25.67% 32.22% 25.29% 30.77% 29.35% 21.35% 22.09% 18.39% 24.14% 73%
که تاسو وګورئ چې FPS نشي کولی د ښودنې چوکاټ کچه وساتي او د GPU کارول هم خورا لوړ وي، معمولا له 85٪ څخه ډیر وي، تاسو کولی شئ د آی بفر ریزولوشن تنظیم کولو هڅه وکړئ (برخه 3.1.2، برخه 4.1.2) ترڅو وګورئ چې دا FPS ښه کوي. که دا سمون د ښه والي لامل شي
د فعالیت په اړه، موږ کولی شو دې پایلې ته ورسیږو چې مسله د GPU پورې تړلې ده او زموږ د اصلاح کولو هڅې د هغې مطابق تمرکز کوو.
له بلې خوا، که چیرې د آی بفر ریزولوشن تنظیم کول د پام وړ فعالیت ښه والی رامینځته نه کړي، نو احتمال لري چې خنډ د CPU پورې تړلی وي، او موږ باید د CPU فعالیت غوره کولو باندې تمرکز وکړو.
دا هم ممکنه ده چې اپلیکیشن په یو وخت کې د CPU او GPU دواړو سره تړلی وي. په داسې قضیو کې، د فعالیت متوازن پرمختګونو ترلاسه کولو لپاره باید د اصلاح هڅې په CPU او GPU دواړو باندې پلي شي.
۲.۳ د GPU سره تړلی
کله چې یو VR اپلیکیشن GPU پورې تړلی وي، نو دا پدې مانا ده چې GPU لومړنی خنډ دی، او دا د غوښتنلیک د رینډرینګ غوښتنو سره د ساتلو توان نلري. د GPU پورې تړلو مسلو کمولو لپاره، لاندې سپارښتنې په پام کې ونیسئ:
لومړی، د پروفایل کولو وسایلو لکه RenderDoc یا Game Engine pro څخه کار واخلئ.filer (یونټي پروfiler، غیر واقعي بصیرتونه) ترڅو تحلیل شي چې GPU خپل ډیری وخت چیرته تیروي. ترټولو ګران عملیات وپیژنئ او د هغوی په اصلاح کولو تمرکز وکړئ.
د اصلي پراختیا کونکي لپاره، تاسو کولی شئ د RenderDoc څخه کار واخلئ ترڅو وپیژنئ چې کوم ډراو کال د GPU ډیر بار لامل کیږي.
د یونیټي ډویلپر لپاره، تاسو کولی شئ د یونیټي دا سند تعقیب کړئ یا د رینډرډاک څخه کار واخلئ ترڅو د رینډرینګ فعالیت مسله تحلیل کړئ، او د خپل غوښتنلیک غوره کولو لپاره د لارښوونې لپاره د یونیټي ګرافیک اصلاح کولو اسناد تعقیب کړئ.
د غیر واقعي پراختیا کونکي لپاره، تاسو کولی شئ د GPU Visualizer څخه کار واخلئ یا د رینډرډاک څخه کار واخلئ ترڅو د رینډرینګ فعالیت مسله تحلیل کړئ، او د خپل غوښتنلیک غوره کولو لپاره د لارښوونې لپاره د غیر واقعي فعالیت لارښوونې تعقیب کړئ.
دوهم، تاسو کولی شئ د GPU بارولو کمولو لپاره د ویو ځینې ځانګړتیاوې یا ترتیبات تنظیم کړئ.
- د ښودنې تازه کولو کچه ورو تنظیم کړئ (برخه 3.1.1، برخه 4.1.1)
- د سترګو بفر ریزولوشن تنظیم کړئ (برخه 3.1.2، برخه 4.1.2)، 14.1.1)
- د فوویشن فعالولو هڅه وکړئ (برخه 3.1.4، برخه 4.1.4).
که ستاسو اپلیکیشن هم د MR اپلیکیشن وي، تاسو کولی شئ د پاس ترو ترتیبات هم تنظیم کړئ.
- د پاسترو انځور کیفیت ټیټ تنظیم کړئ. (برخه 3.2.1)
- د پاسترو فریم ریټ ورو تنظیم کړئ. (برخه 3.2.2).
د GPU فعالیت په اړه د نورو ترتیباتو لپاره، تاسو کولی شئ فصل 2.6 ته مراجعه وکړئ.
۲.۴ د CPU پورې تړلی
کله چې د VR اپلیکیشن CPU پورې تړلی وي، دا پدې مانا ده چې CPU لومړنی خنډ دی، لاندې سپارښتنې په پام کې ونیسئ:
لومړی، د پروفایل کولو وسایل لکه سیسټریس یا د لوبې انجن پرو وکاروئfiler (یونټي پروfiler، غیر واقعي بصیرتونه) ترڅو تحلیل او وپیژني چې ستاسو د کوډ کومې برخې د CPU ډیری سرچینې مصرفوي. د دې برخو په اصلاح کولو تمرکز وکړئ او د CPU بار کمولو لپاره د کمپیوټري پلوه شدید الګوریتمونه بیا فکتور کړئ.
- د اصلي پراختیا کونکي لپاره، تاسو کولی شئ د پرو لپاره سیسټریس وکاروئfileستاسو پروژه.
- د یونیټي ډویلپر لپاره، تاسو کولی شئ د CPU استعمال پرو وکاروئfileد CPU د فعالیت مسلې موندلو لپاره r ماډل.
- د غیر واقعي پراختیا کونکي لپاره، تاسو کولی شئ د CPU فعالیت مسلې موندلو لپاره د غیر واقعي بصیرت وکاروئ.
دوهم، تاسو کولی شئ د GPU بارولو کمولو لپاره د ویو ځینې ځانګړتیاوې یا ترتیبات تنظیم کړئ.
- د ښودنې تازه کولو کچه ورو تنظیم کړئ (برخه 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 پورې تړلی دی. په پای کې، یو مسلکي وکاروئfileد احتمالي فعالیت مسلو پیژندلو لپاره یا د CPU فعالیت غوره کولو لپاره د ویو ځانګړتیاوې یا ترتیبات تنظیم کړئ.

۲.۶ چټکه حواله چې کوم ترتیبات کولی شي د CPU/GPU بار کول ښه کړي
د SDK هغه ترتیبات چې د CPU/GPU بارولو سره تړاو لري په لاندې ډول لیست کړئ. تاسو کولی شئ د اپلیکیشن د خنډ پر بنسټ د اړونده اصلاح کولو ترتیباتو چک کولو لپاره.
د CPU پورې اړوند:
- د VIVE Wave SDK ترتیب
o د VR منځپانګه
▪ ۳.۱.۱ د تازه کولو کچه ښودل
▪ ۳.۱.۴ څو-View رینډینګ
▪ ۳.۱.۶ د تطبیق وړ کیفیت
▪ ۳.۱.۷ د تطبیق وړ حرکت کمپوزټر
o د MR منځپانګه
▪ ۳.۲.۲ د پاسترو چوکاټ کچه تنظیم کړئ - د VIVE OpenXR SDK ترتیب
o د VR منځپانګه
▪ ۳.۱.۱ د تازه کولو کچه ښودل
▪ ۳.۱.۴ څو-View رینډینګ - عام اصلاح کول
o ۵.۵ سي پي يو سپائيک
د GPU پورې اړوند:
- د VIVE Wave SDK ترتیب
o د VR منځپانګه
▪ ۳.۱.۱ د تازه کولو کچه ښودل
▪ ۳.۱.۲ د سترګو بفر ریزولوشن
▪ ۳.۱.۴ څو-View رینډینګ
▪ ۳.۱.۴ هڅونه
▪ ۳.۱.۵ د چوکاټ تیزوالی لوړول (FSE)
▪ ۳.۱.۶ د تطبیق وړ کیفیت
▪ ۳.۱.۷ د تطبیق وړ حرکت کمپوزټر
▪ 3.1.8 Render Mask [Not Support Unreal]
o د MR منځپانګه
▪ ۳.۲.۱ د پاس ترو کیفیت تنظیم کړئ
▪ ۳.۲.۲ د پاسترو چوکاټ کچه تنظیم کړئ - د VIVE OpenXR SDK ترتیب
o د VR منځپانګه
▪ ۳.۱.۱ د تازه کولو کچه ښودل
▪ ۳.۱.۲ د سترګو بفر ریزولوشن
▪ ۳.۱.۴ څو-View رینډینګ
▪ 4.1.4 Foveation [Not Support Unreal]
▪ 4.1.5 Render Mask [Not Support Unreal] - عام اصلاح کول
o ۵.۱ د لوړ فعالیت حالت بند کړئ
o ۵.۲ څوampلينګ
o ۵.۳ GMEM بار/ذخیره
o ۵.۴ د جوړښت طبقه (څو طبقه)
د VIVE څپې ترتیب
VIVE Wave یو خلاص پلیټ فارم او وسایل دي چې تاسو ته اجازه درکوي په اسانۍ سره د VR مینځپانګې رامینځته کړئ او د دریمې ډلې شریکانو لپاره د لوړ فعالیت وسیلې اصلاح چمتو کوي. VIVE Wave د یووالي او غیر ریښتیني لوبې انجنونو ملاتړ کوي.
موږ په دوامداره توګه مختلفې ستونزې اصلاح کوو او حل کوو، نو موږ سپارښتنه کوو چې SDK تازه وساتو.
اوس مهال، VIVE Wave یوازې د OpenGL ES ملاتړ کوي. دلته هغه ځانګړتیاوې لیست شوي چې د GPU فعالیت باندې د نفوذ له مخې ترتیب شوي. موږ به دا په دوو برخو وویشو: د VR مینځپانګه او د MR مینځپانګه.
۳.۱ د VR منځپانګه
۴.۱.۱ د تازه کولو کچه ښودل
Higher refresh rates offer smoother visuals, but come at the cost of increased system load. Conversely, lower refresh rates reduce system load, but result in less smooth visuals. If App has CPU/GPU bound issue, you can try decreasing the display refresh rate to alleviate the issue.
- د اصلي پراختیا کونکي لپاره، WVR_SetFrameRate ته مراجعه وکړئ.
- د یونیټي پراختیا کونکي لپاره، دې لارښود ته مراجعه وکړئ.
- د غیر واقعي پراختیا کونکي لپاره، دې لارښود ته مراجعه وکړئ.
۴.۱.۲ د سترګو بفر ریزولوشن
د آی بفر ریزولوشن د جوړښت اندازه ده چې د اپلیکیشن مینځپانګه به وړاندې شي، رینډر شوی جوړښت به د پوسټ کولو پروسې ترسره کولو او په HMD ډسپلې کې وړاندې کولو لپاره د رن ټایم ته وسپارل شي.
که څه هم د سترګو د بفر لویه اندازه کولی شي روښانه او مفصل لیدونه رامینځته کړي، مګر دا په GPU باندې د پام وړ بار هم اچوي. له همدې امله، د لید کیفیت او فعالیت ترمنځ سم توازن موندل اړین دي.
If App has GPU bound issue, you can try decreasing the eyebuffer size by multiply a scale factor. Howerver, we recommend not reducing the scale factor below 0.7, as this may result in unacceptable visual quality.
- د اصلي پراختیا کونکي لپاره، WVR_ObtainTextureQueue ته مراجعه وکړئ. کله چې اندازه تنظیم کړئ، تاسو باید عرض او لوړوالی د تناسب سره ضرب کړئ.
- د یونیټي پراختیا کونکي لپاره، WaveXRSettings ته مراجعه وکړئ.
په بدیل سره، تاسو کولی شئ د کوډ له لارې بدلونونه د belwoe په توګه راولیږئ.
د XRSettings.eyeTextureResolution پیمانه = د حل پیمانه ارزښت؛ // C# - د غیر واقعي پراختیا کونکي لپاره، SetPixelDensity ته مراجعه وکړئ.
3.1.3 څوView رینډینګ
په دودیز ډول، موږ چپ او ښي سترګې په جلا توګه رسم کوو، کوم چې د ورته صحنې لپاره دوه رسم کولو ته اړتیا لري.View رینډینګ دا ستونزه یوازې د یو ډرا کال په ترسره کولو سره حل کوي.
This feature reduces CPU load by decreasing the number of draw calls. The GPU also has some benefits, vertex shader’s workload is also reduced as it doesn’t need to run an additional shader for the other eye, but the fragment shader’s workload remains unchanged since it still needs to evaluate each pixel for both eyes. We recommand enabling this feature.
- د اصلي پراختیا کونکي لپاره، تاسو کولی شئ wvr_native_hellovr s ته مراجعه وکړئample.
- د یونیټي ډویلپر لپاره، د رینډر حالت ته مراجعه وکړئ، یو واحد پاس څو اړخیز دی.view ځانګړتیا.
- د غیر واقعي پراختیا کونکي لپاره، دې لارښود ته مراجعه وکړئ.
۳.۱.۴ هڅونه
فوویټډ رینډیرنګ په عمده توګه د GPU بار کمولو لپاره ډیزاین شوی. دا د نندارې په شاوخوا کې د چوکاټ توضیحات کموي او د ساحې په مرکز کې د لوړ ریزولوشن توضیحات ساتي. view. که چیرې اپلیکیشن د GPU تړلو ستونزه ولري، تاسو کولی شئ د فوویشن رینډرینګ eanbling هڅه وکړئ.

د فوویشن کارولو پرمهال یو څه باید په پام کې ونیول شي:
➢ کاروونکي معمولا په هغو سیمو کې چې د ډیفالټ فوویشن حالت پلي کوي کم شوي توضیحات نه ګوري. مګر که چیرې د فوویشن پردی کیفیت ډیر ټیټ وي، نو دا کارونکي ته د پام وړ کیدی شي.
➢ د فوویشن اغیزې ممکن د جوړښتونو په ځینو موادو کې ډیرې د پام وړ وي، کوم چې کولی شي د کارونکي پام ځانته راواړوي. پراختیا ورکوونکي باید له دې څخه خبر وي او د هغې مطابق یې ارزونه وکړي.
➢ د فوویټډ رینډینګ ځانګړتیا فعالول د GPU فعالیت ثابت لګښت لري، کوم چې د سترګو بفر اندازې پورې اړه لري د 1٪ څخه تر 6٪ پورې توپیر کولی شي. کله چې په صحنه کې د ساده شیډر کارول کیږي، د سرچینو خوندي کولو څخه د فعالیت ګټه ممکن د GPU فعالیت ثابت لګښت څخه ټیټه وي، چې په پایله کې د فعالیت کمښت رامینځته کیږي.
- د اصلي پراختیا کونکي لپاره، دې لارښود ته مراجعه وکړئ.
- د یونیټي پراختیا کونکي لپاره، دې لارښود ته مراجعه وکړئ. د پام وړ، کله چې تاسو د پوسټ پروسس کولو یا HDR فعال کړئ، نو فوویشن په بشپړ ډول نشي کارول کیدی. ځکه چې یونیټي به شیان په خپل تولید شوي رینډر جوړښت کې رینډر کړي، د رن ټایم لخوا رامینځته شوي موجود رینډر جوړښت پرځای چې د فوویشن ملاتړ کوي.
- د غیر واقعي پراختیا کونکي لپاره، دې لارښود ته مراجعه وکړئ. د پام وړ، فوویشن په بشپړ ډول په ملټي- کې نشي کارول کیدی.View رینډرینګ، ځکه چې غیر ریښتینی نشي کولی په مستقیم ډول شیان د رن ټایم لخوا رامینځته شوي رینډر جوړښت ته وړاندې کړي چې د فوویشن ملاتړ کوي.
۳.۱.۵ د چوکاټ تیزوالی (FSE)
FSE د شارپن فلټر معرفي کولو له لارې د شارپن رینډرینګ پایله چمتو کوي، دا کولی شي مینځپانګه نوره روښانه کړي او په صحنه کې د متن وضاحت ښه کولو لپاره خورا ګټور وي. که چیرې اپلیکیشن د GPU پابند ستونزه ولري، تاسو کولی شئ د FSE غیر فعالولو په اړه فکر وکړئ که دا اړین نه وي.

- د اصلي پراختیا کونکي لپاره، دې لارښود ته مراجعه وکړئ.
- د یونیټي پراختیا کونکي لپاره، دې لارښود ته مراجعه وکړئ.
- د غیر واقعي پراختیا کونکي لپاره، دې لارښود ته مراجعه وکړئ.
۳.۱.۶ د تطبیق وړ کیفیت
د بیټرۍ د خوندي کولو او د وسیلې د رینډرینګ فعالیت ساتلو لپاره، دا ځانګړتیا په اتوماتيک ډول د CPU/GPU ساعت د فعالیت کچه د دوی د کارونې پراساس تنظیموي. سربیره پردې، د فعالیت لوړولو لپاره نورې ستراتیژۍ پلي کیدی شي، لکه د فوویشن اتوماتیک فعال/غیر فعال کول یا مینځپانګه کولی شي ځان تنظیم کړي که چیرې لوړ/ټیټ بار پیښې ترلاسه شي.
- د اصلي پراختیا کونکي لپاره، دې لارښود ته مراجعه وکړئ.
- د یونیټي پراختیا کونکي لپاره، دې لارښود ته مراجعه وکړئ. زموږ په یونیټي پلگ ان کې، د سترګو بفر اندازه په اتوماتيک ډول د اوسني فعالیت پراساس تنظیم کیدی شي؛ د متن اندازه به هغه پیمانه ارزښتونه فلټر کړي چې د ریزولوشن لیست کې خورا کوچني دي. موږ د اندازې متن لږترلږه 20 dmm یا لوی وړاندیز کوو.
- د غیر واقعي پراختیا کونکي لپاره، دې لارښود ته مراجعه وکړئ.
۳.۱.۷ د تطبیق وړ حرکت کمپوزیټر
دا ځانګړتیا یو تجربوي ځانګړتیا ده چې UMC او PMC پکې شامل دي. UMC به د چوکاټ کچه نیمایي ته راټیټه کړي او په ریښتیني وخت کې به نوی چوکاټ پراخه کړي ترڅو د لید نرمښت وساتي. په هرصورت، دا د ځینې ځنډ، هنري اثارو او GPU بار کولو سره راځي.
PMC په عمده توګه د ژوروالي بفر کاروي ترڅو ATW ته اجازه ورکړي چې د HMD ژباړې حساب ورکړي، د 6-dof جبران ته وغځوي. دا ځانګړتیا کولی شي د ژباړې ځنډ د 1 ~ 2 چوکاټونو لخوا کم کړي، مګر د GPU بار کول زیات کړي.
- د اصلي پراختیا کونکي لپاره، دې لارښود ته مراجعه وکړئ.
- د یونیټي پراختیا کونکي لپاره، دې لارښود ته مراجعه وکړئ.
- د غیر واقعي پراختیا کونکي لپاره، دې لارښود ته مراجعه وکړئ.
۴.۱.۵ د ماسک رینډر [غیر واقعي ملاتړ نه کوي]
په څنډو کې پکسلونه د تحریف وروسته نږدې نه لیدل کیږي، د رینډر ماسک د دې نه لیدل کیدونکي پکسلونو د ژوروالي بفر ارزښتونه بدلوي. که تاسو د ژوروالي ازموینه فعاله کړئ، د early-z له امله، دا نه لیدل کیدونکي پکسلونه به نه وړاندې کیږي، په دې توګه د GPU بار کموي. دا ځانګړتیا ګټوره ده که چیرې په دې نه لیدل کیدونکو سیمو کې د درانه بار وړونکي رینډرینګ شیان شتون ولري؛ که نه نو، که چیرې په دې سیمو کې هیڅ نه ښودل کیدونکي شیان شتون ولري، نو سپارښتنه کیږي چې دا غیر فعال کړئ ځکه چې دا به د GPU لږ کارول مصرف کړي..
- د اصلي پراختیا کونکي لپاره، دې لارښود ته مراجعه وکړئ. تاسو باید د رینډرماسک زنګ وهلو دمخه د ژوروالي بفر پابند کړئ؛ که نه نو، دا به غیر موثر وي.
- د یونیټي پراختیا کونکي لپاره، دې لارښود ته مراجعه وکړئ.
- د غیر واقعي پراختیا کونکي لپاره، دا مهال د رینډر ماسک ځانګړتیا ملاتړ نه کوي.
۳.۲ د MR منځپانګه
۳.۲.۱ د پاسترو کیفیت تنظیم کړئ
د پاسترو عکس کیفیت لپاره درې کچې شتون لري:
➢ WVR_PassthroughImageQuality_DefaultMode – د ځانګړي غوښتنې پرته د MR منځپانګې لپاره مناسب.
➢ WVR_PassthroughImageQuality_PerformanceMode – د MR منځپانګې لپاره مناسب دی چې د مجازی صحنې وړاندې کولو لپاره ډیرو GPU سرچینو ته اړتیا لري.
➢ WVR_PassthroughImageQuality_QualityMode – د MR منځپانګې لپاره مناسب دی چې کاروونکو ته اجازه ورکوي چې شاوخوا چاپیریال په روښانه توګه وګوري، مګر د منځپانګې مجازی صحنه باید د فعالیت لپاره ډیر ښه تنظیم ولري.
تاسو کولی شئ د GPU کارولو کمولو لپاره د پاسترو کیفیت د فعالیت حالت ته تنظیم کړئ.
- د اصلي، یونیټي یا غیر واقعي پراختیا کونکو لپاره، دې لارښود ته مراجعه وکړئ.
۳.۲.۲ د پاسترو چوکاټ کچه تنظیم کړئ
د ډسپلې ریفریش نرخ په څیر، د پاس ترو فریم ریټ لوړ لیدونه اسانه وړاندې کوي، مګر د سیسټم بار زیاتوالي په قیمت راځي. برعکس، د ریفریش ټیټ نرخونه د سیسټم بار کموي، مګر د لږ اسانه لیدونو پایله لري. د پاس ترو فریم ریټ دوه طریقې شتون لري: بوسټ او نورمال.
- د اصلي پراختیا کونکي لپاره، کولی شي د WVR_SetPassthroughImageRate په کارولو سره د پاسترو کیفیت تنظیم کړي.
- د یونیټي پراختیا کونکي لپاره، د کوډ له لارې بدلیدلی شي، د مثال په توګهampترتیبات په لاندې ډول دي // C#
انټراپ.WVR_SetPassthroughImageQuality(WVR_PassthroughImageQuality.PerformanceMode); - د غیر واقعي پراختیا کونکي لپاره، د تنظیم کولو طریقه په شکل 3-2-2 کې د بلو پرنټ نوډ وګورئ.

د VIVE OpenXR ترتیب
اوپن ایکس آر یو خلاص معیار دی چې د XR غوښتنلیکونو پراختیا لپاره د APIs یو عام سیټ چمتو کوي چې د VR وسیلو پراخه لړۍ کې چلیږي، چې د کرونوس ګروپ لخوا رامینځته شوي. VIVE Focus 3 او VIVE XR Elite هم د OpenXR ملاتړ کوي، VIVE OpenXR SDK د HTC VR وسیلو لپاره جامع ملاتړ چمتو کوي، پراختیا کونکو ته اجازه ورکوي چې د HTC VR وسیلو کې د یووالي او غیر ریښتیني انجن سره Allin-One او مینځپانګه جوړه کړي. موږ په دوامداره توګه مختلف بګونه اصلاح کوو او حل کوو، نو سپارښتنه کیږي چې پراختیا کونکي د خپل وسیله FOTA نسخه تازه کړي ترڅو دا تازه وساتي. اوس مهال، VIVE OpenXR SDK د OpenGL ES او Vulkan ملاتړ کوي.
۳.۱ د VR منځپانګه
۴.۱.۱ د تازه کولو کچه ښودل
دلته مفهوم د 3.1.1 ډسپلې ریفریش نرخ سره ورته دی.
- د اصلي پراختیا کونکي لپاره، XrEventDataDisplayRefreshRateChangedFB ته مراجعه وکړئ.
- د یونیټي پراختیا کونکي لپاره، دې لارښود ته مراجعه وکړئ.
- د غیر واقعي پراختیا کونکي لپاره، دې لارښود ته مراجعه وکړئ.
۴.۱.۲ د سترګو بفر ریزولوشن
دلته مفهوم د 3.1.2 د سترګو بفر ریزولوشن سره ورته دی. موږ سپارښتنه کوو چې د پیمانه فکتور د 0.7 څخه کم نه کړئ، ځکه چې دا ممکن د نه منلو وړ لید کیفیت پایله ولري.
- د اصلي پراختیا کونکي لپاره، xrCreateSwapchain ته مراجعه وکړئ. کله چې اندازه تنظیم کړئ، تاسو باید عرض او لوړوالی د تناسب سره ضرب کړئ. ,
- د یونیټي پراختیا کونکي لپاره، لاندې مثال ته مراجعه وکړئampلی // سي #
د XRSettings.eyeTextureResolution پیمانه = 0.7f؛ // وړاندیز شوی 1.0f~0.7f - د غیر واقعي ترتیباتو لپاره، دې لارښود ته مراجعه وکړئ.
4.1.3 څوView رینډینګ
دلته مفهوم د 3.1.3 څو اړخیزو سره ورته دی.View رینډرینګ. دا ځانګړتیا په CPU باندې بار کموي، GPU هم ځینې ګټې لري. موږ د دې ځانګړتیا فعالولو سپارښتنه کوو.
- د اصلي پراختیا کونکي لپاره، کرونوس ګروپ د اوپن ایکس آر ملټي- چمتو کويView example، دې لارښود ته مراجعه وکړئ.
- د یونیټي ډویلپر لپاره، د رینډر حالت ته مراجعه وکړئ، یو واحد پاس څو اړخیز دی.view ځانګړتیا.
- د غیر واقعي پراختیا کونکو لپاره، لکه د VIVE Wave ترتیباتو په څیر، دې لارښود ته مراجعه وکړئ.
۴.۱.۴ وړاندیز [غیر واقعي ملاتړ نه کوي]
دلته مفهوم د 3.1.4 فوویشن سره ورته دی. فوویټډ رینډینګ په اصل کې د GPU بار کمولو لپاره ډیزاین شوی مګر د دې فعالول به د GPU فعالیت ثابت لګښت ولري او که فوویشن ډیر ټیټ تنظیم شي او ځینې توکي یا جوړښتونه وکارول شي، نو دا کولی شي ډیر شي
د کارونکي لپاره د پام وړ. له همدې امله، دا مشوره ورکول کیږي چې ستاسو د ځانګړو اړتیاو او فعالیت ملاحظاتو پراساس دا ځانګړتیا فعال یا غیر فعال کړئ. اوس مهال، د Foveated فعالیت یوازې په VIVE OpenXR SDK کې په OpenGL ES کې ملاتړ کیږي.
- د اصلي پراختیا کونکي لپاره، دا ځانګړتیا شتون لري، مګر اوس مهال، هیڅ پخوانی نشتهamples ورکول کیږي.
- د یونیټي پراختیا کونکي لپاره، دې لارښود ته مراجعه وکړئ.
- د غیر واقعي پراختیا کونکي لپاره، دا مهال د دې ځانګړتیا ملاتړ نه کوي.
۴.۱.۵ د ماسک رینډر [غیر واقعي ملاتړ نه کوي]
دلته مفهوم د 3.1.8 رینډر ماسک سره ورته دی.
- د اصلي پراختیا کونکي لپاره، د میش ترلاسه کولو لپاره XrVisibilityMaskKHR وکاروئ. د صحنې وړاندې کولو دمخه، د صحنې وړاندې کولو دمخه د ژوروالي بفر ارزښتونو ډکولو لپاره دا میش وکاروئ.
- د یونیټي ډویلپر لپاره، د رینډر ماسک ځانګړتیا د OpenGL ES لپاره په ډیفالټ ډول فعاله ده، او د لاندې کوډ سره غیر فعال کیدی شي؛ ولکان اوس مهال د دې ځانګړتیا ملاتړ نه کوي. //C# UnityEngine.XR.XRSettings.occlusionMaskScale = 0.0f;
- د غیر واقعي پراختیا کونکي لپاره، دا مهال د رینډر ماسک ځانګړتیا ملاتړ نه کوي.
۳.۲ د MR منځپانګه
OpenXR اوس مهال د پاسترو کیفیت او چوکاټ نرخ تنظیم کولو ملاتړ نه کوي. موږ به د پاسترو ځانګړتیا اصلاح او اصلاح کولو ته دوام ورکړو، نو سپارښتنه کیږي چې پراختیا کونکي د وسیلې FOTA نسخه تازه کړي ترڅو دا تازه وساتي.
عام اصلاح کول
۵.۱ د لوړ فعالیت حالت بند کړئ
د "لوړ فعالیت حالت" بندول کولی شي د وسیلې د ښودلو اندازه کمه کړي، په دې توګه د GPU کارول کم کړي. نیمګړتیا یې د سکرین ریزولوشن کمول دي. تاسو کولی شئ د کیفیت او فعالیت توازن وساتئ ترڅو پریکړه وکړئ چې ایا دا فعال کړئ.
د VIVE فوکس 3 لپاره د ترتیب ځای په شکل 5-1-1 کې ښودل شوی:

د VIVE XR Elite لپاره د ترتیب ځای په شکل 5-1-2 کې ښودل شوی:

5.2 څوampling Anti-Aliasing
ملټيزampling is an anti-aliasing technique used to smooth out jagged edges, usually is accelerated through hardware, which incurs GPU performance cost. We recommend not setting MSAA higher than 2x because more hight value will consume more gpu usage.
- د اصلي پراختیا کونکي لپاره، MSAA OpenGL ES exsample کولی شي دې ته مراجعه وکړي؛ MSAA Vulkan exampلوستونکی کولی شي دې ته مراجعه وکړي.
د اډرینو GPU یو توسیع چمتو کوي چې MSAA غوره کوي. - د یونیټي ډویلپر لپاره، دې ګیلډ ته مراجعه وکړئ.
- For Unreal developer, refer to this guild. Unreal also has provide post processing anti-aliasing, refer to this guild.
۵.۳ د GMEM بار/ذخیره
د اډرینو GPU په جوړښت کې، یو ځانګړتیا شتون لري چیرې چې، کله چې د رینډر هدف سره وصل کیږي، که چیرې د رینډر هدف پاک یا باطل نشي، هرکله چې رینډرینګ واقع کیږي، د رینډر هدف ارزښتونه په ګرافیک حافظه کې بار کیږي، کوم چې د GMEM Load په نوم یادیږي. که چیرې مخکیني ارزښتونه اړین نه وي، د رینډر هدف پاک یا باطل کړئ، د GPU فعالیت ښه کولو لپاره د دې وضعیت څخه مخنیوی کیدی شي.
تاسو کولی شئ د لاندې میتودونو په کارولو سره د GMEM بار څخه مخنیوی وکړئ. په OpenGL ES کې، د FBO تړلو وروسته، تاسو کولی شئ د رنګ، ژوروالي، او سټینسل بفر پاکولو لپاره glClear او glClearDepth ته زنګ ووهئ، یا د ټاکل شوي رینډر هدف باطلولو لپاره glInvalidateFramebuffer ته زنګ ووهئ. په ولکان کې، اضافي لارښوونې اړین ندي؛ تاسو کولی شئ په واضح ډول وټاکئ چې ایا په VkAttachmentDescription.loadOp کې د کارولو دمخه ضمیمه پاکه کړئ.
په ورته ډول، د ټایل رینډر پایله د ګرافیک میموري څخه اصلي میموري ته بیرته ذخیره کول د GMEM سټور په نوم یادیږي؛ دا عملیات د GPU لپاره هم ګران دي. د دې څخه د مخنیوي لپاره، موږ سپارښتنه کوو چې یوازې اړین رینډر هدفونه وتړئ ترڅو د غیر ضروري سټور عملیاتو مخه ونیسئ.
۵.۴ د جوړښت طبقه (څو طبقه)
هغه جوړښتونه چې د څو طبقو په کارولو سره ښودل کیږي د لید کیفیت یې ښه دی. په هرصورت، دا ځانګړتیا د طبقو شمیر او د جوړښتونو اندازې سره د GPU فعالیت د پام وړ زیاتوي. موږ سپارښتنه کوو چې له دریو طبقو څخه ډیر نه وي.
- د اصلي پراختیا کونکي لپاره،
د 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 ترتیبات، دې لارښود ته مراجعه وکړئ.
۵.۵ د CPU سپیک
کله چې د CPU بار کول دروند وي، ځینې شاليد پروسس شوي تارونه لوړ لومړیتوب لري، دا ممکن د اصلي اجرا مداخله وکړي. موږ تضمین نشو کولی چې د مینځپانګې غوښتنلیک به د نورو تارونو لخوا مداخله ونکړي.
If such issues arise, you can try increasing the thread priority to see if it resolves the problem. But if you change the thread configuration to optimize for devices, you need to check if this has any negative impact.
- د یونیټي ډویلپر لپاره، د انډرایډ تار ترتیب کولو ځانګړتیا ته مراجعه وکړئ. که تاسو د VIVE Wave SDK کاروئ، موږ په WaveXRSettings کې یو ځانګړتیا لرو چې تاسو ته اجازه درکوي لومړیتوب تنظیم کړئ، لکه څنګه چې په شکل 5-5-2 کې ښودل شوي. کوچنی ارزښت لوړ لومړیتوب استازیتوب کوي.

- د لوبې د تار، رینډرینګ تار او RHI تار لومړیتوب د بهرني ترتیباتو له لارې بدلولو لپاره هیڅ ډول غیر واقعي طریقه نشته پرته لدې چې تاسو د انجن کوډ بدل کړئ.
د چاپ حق © ۲۰۲۴ HTC کارپوریشن. ټول حقونه خوندي دي
اسناد / سرچینې
![]() | د VR رینډینګ فعالیت |
حوالې
- dev.epicgames.com/community/learning/courses/eER/unreal-engine-technical-guide-to-linear-content-creation-production/k8pB/unreal-engine-performance-profiling-and-debugging?locale=dev.epicgames.com د
- Anti Aliasing and Upscaling in Unreal Engine | Unreal Engine 5.5 Documentation | Epic Developer Communitydev.epicgames.com د
- dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/HeadMountedDisplay/IHeadMountedDisplay/SetPixelDensity?application_version=4.27dev.epicgames.com د
- په غیر واقعي انجن کې د موبایل وسیلو لپاره د فعالیت لارښوونې | غیر واقعي انجن 5.5 اسناد | د ایپیک پراختیا کونکي ټولنهdev.epicgames.com د
- dev.epicgames.com/documentation/en-us/unreal-engine/unreal-insights-in-unreal-enginedev.epicgames.com د
- د Qualcomm اسنادdeveloper.qualcomm.com
- developer.vive.com/resources/openxr/openxr-mobile/tutorials/unity/composition-layer/developer.vive.com
- developer.vive.com/resources/openxr/unity/tutorials/using-foveation-in-your-app/developer.vive.com
- developer.vive.com/resources/openxr/unity/tutorials/using-foveation-in-your-app/#GoldenSampledeveloper.vive.com
- developer.vive.com/resources/openxr/unity/tutorials/using-refreshrate-in-your-app/#GoldenSampledeveloper.vive.com
- د کارن لارښودmanual.tools
