Логотипи VIVEИҷрои намоиши VR
Танзим ва оптимизатсия

Муқаддима

Ба даст овардани таҷрибаи оптималии VR дар сахтафзори маҳдуди захираҳо калиди расонидани таҷрибаи ҳамвор ва бароҳати корбар аст. Агар суръати чаҳорчӯбаи намоиши мундариҷа аз суръати навсозии дастгоҳ паст ё ноустувор бошад, он боиси ларзиши кадрҳо ва қафо мондан, бемориҳои ҳаракат ва ғайра мегардад. дар ниҳоят ба таҷрибаи корбар таъсири манфӣ мерасонад. Аз ин рӯ, оптимизатсияи иҷрои мундариҷа барои таъмини таҷрибаи лаззатбахш хеле муҳим аст.
Пеш аз оғози танзими иҷроиш, фаҳмидани он ки монеаҳои иҷроиш дар куҷост, барои пешгирӣ кардани танзими бесамар муҳим аст. Ин ҳуҷҷат барои кӯмак расонидан ба таҳиягарон дар муайян кардани монеаҳои иҷроиш ва пешниҳоди роҳҳои ҳалли масъалаҳои иҷроиш тарҳрезӣ шудааст.
Ҳуҷҷат ба бахшҳои зерин тақсим шудааст:

  • Боби 2: Муайян кардани монеаҳо - Ин бахш ба таҳиягарон дар муайян кардани он, ки монеаҳо ҷой доранд, кӯмак мекунад.
  • Боби 3 ва 4: Танзимоти VIVE Wave ва VIVE OpenXR - Ин бахшҳо танзимоти мушаххасеро нишон медиҳанд, ки метавонанд ба иҷрои CPU/GPU барои барномаҳои VIVE Wave ва OpenXR таъсир расонанд. Таҳиягарон метавонанд бо фаъол ё ғайрифаъол кардани ин хусусиятҳо дар асоси монеаҳои иҷроиш, ки дучор мешаванд, озмоиш кунанд, то муайян кунанд, ки оё ягон беҳбудӣ вуҷуд дорад.
  • Боби 5: Оптимизатсияи умумӣ - Ин бахш баъзе таҷрибаҳо ва таҷрибаи умумии оптимизатсияро мубодила мекунад.

Муайян кардани мушкилот

Вақте ки HMD ҳаракат мекунад, агар барномаи VR/MR дорои ҷиттери чаҳорчӯба ё канори сиёҳ ва ғайра бошад, он одатан аз сабаби иҷрои бади визуалӣ ба вуҷуд омадааст. Одатан, мушкилоти иҷроишро ба 2 намуд тақсим кардан мумкин аст: CPU-пайванд ё GPU-пайванд. Фаҳмидани он, ки кадом навъҳои вобаста ба барномаи шумо барои пешгирӣ кардани танзими бесамар хеле муҳиманд.
Дар ин боб мо қадамҳои оддиеро пешниҳод мекунем, ки ба шумо имкон медиҳанд, ки дар куҷо мушкилоти иҷроишро зуд муайян кунед.

2.1 Мундариҷаи FPS-ро санҷед
Аввалан, мо аз тафтиши мундариҷаи FPS оғоз мекунем, ки шумораи чаҳорчӯбаҳои мундариҷа дар як сония аст. Он бояд ба кадри экран нигоҳ дошта шавад ва устувор нигоҳ дошта шавад. Дар акси ҳол, он метавонад боиси ҷаҳиши чаҳорчӯба гардад.
Агар SDK замимаи шумо VIVE WAVE SDK 6.0.0 ё навтарро истифода барад, шумо метавонед фармони зерини adb-ро барои тафтиши FPS истифода баред. 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 сохта шуда бошад. Шумо метавонед фармони зерини adb-ро барои тафтиши FPS истифода баред.
$adb Logcat -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 гузаред: 0 (0.592301, -0.015502, 0.805539, 0.006773)

Рақаме, ки пас аз "текстураи нав" меояд, дар айни замон мундариҷаи FPS-ро ифода мекунад. Рақаме, ки пас аз "R ҳозир" ва "L ҳозир аст" суръати чаҳорчӯбаи намоишро ифода мекунад.
Баъзан, мундариҷаи FPS ва суръати чаҳорчӯбаи намоиш метавонанд каме ихтилоф дошта бошанд.
Барои мисолample, дар ҳолати боло, 89.8 FPS-ро метавон ҳамчун 90 FPS баррасӣ кард.
Агар мундариҷаи FPS-и барнома аз суръати чаҳорчӯбаи намоиш мунтазам пасттар бошад ё ноустувор боқӣ монад, ин мушкилии иҷрои намоишро нишон медиҳад. Аз ин рӯ, қадами навбатӣ муайян кардани он аст, ки монеа аз CPU ё GPU меояд.
2.2 Истифодаи CPU ва GPU-ро санҷед
Агар SDK замимаи шумо VIVE WAVE SDK 6.0.0 ё навтарро истифода барад, шумо метавонед фармони зерини adb-ро барои тафтиши FPS истифода баред.
$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
# дар powershell
$ 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% зиёд аст, шумо метавонед кӯшиш кунед, ки ҳалли Eyebuffer-ро танзим кунед (қисми 3.1.2, фасли 4.1.2) то бубинед, ки оё он FPS-ро беҳтар мекунад. Агар ин танзим боиси беҳтар
иҷрои кор, мо метавонем ба хулосае ояд, ки масъала ба GPU вобаста аст ва кӯшишҳои оптимизатсияи моро мувофиқи он равона мекунанд.
Аз тарафи дигар, агар танзими ҳалли Eyebuffer ба беҳбудии назарраси кор оварда нарасонад, монеа эҳтимолан ба CPU вобаста аст ва мо бояд ба оптимизатсияи кори CPU тамаркуз кунем.
Инчунин имконпазир аст, ки барнома ҳамзамон ҳам ба CPU ва ҳам ба GPU пайваст бошад. Дар чунин ҳолатҳо, кӯшишҳои оптимизатсия бояд ҳам ба CPU ва ҳам GPU барои ноил шудан ба беҳбудиҳои мутавозин истифода шаванд.
2.3 Ба GPU пайваст
Вақте ки як барномаи VR ба GPU пайваст аст, ин маънои онро дорад, ки GPU монеаи асосӣ аст ва он наметавонад ба талаботҳои визуалии барнома мувофиқат кунад. Барои кам кардани мушкилоти марбут ба GPU, тавсияҳои зеринро баррасӣ кунед:
Аввалан, аз абзорҳои профилсозӣ ба монанди RenderDoc ё Game Engine pro истифода баредfiler (Unity Profiler, Insights Unreal) барои таҳлил кардани GPU вақти бештари худро дар куҷо сарф мекунад. Амалиёти гаронарзишро муайян кунед ва ба оптимизатсияи онҳо диққат диҳед.
Барои Native Developer, шумо метавонед RenderDoc-ро истифода баред, то муайян кунед, ки кадом занги ҷалб боиси сарбории аз ҳад зиёди GPU мегардад.
Барои Unity Developer, шумо метавонед ин ҳуҷҷатро пайравӣ кунед Unity ё RenderDoc-ро барои таҳлили мушкилии иҷроиш истифода баред ва ҳуҷҷатҳои оптимизатсияи графикии Unity барои роҳнамоӣ барои оптимизатсияи замимаатонро риоя кунед.
Барои Unreal Developer, шумо метавонед GPU Visualizer-ро истифода баред ё RenderDoc-ро барои таҳлили мушкилии иҷрои кор истифода баред ва дастурҳои Unreal Performance-ро барои роҳнамо барои оптимизатсияи барномаи шумо риоя кунед.
Дуюм, шумо инчунин метавонед кӯшиш кунед, ки баъзе хусусиятҳо ё танзимоти Wave-ро барои кам кардани боркунии GPU ислоҳ кунед.

  1. Суръати навсозии намоишро сусттар танзим кунед (қисми 3.1.1, фасли 4.1.1)
  2.  Резолюцияи Eyebuffer-ро танзим кунед (қисми 3.1.2, фасли 4.1.2), 14.1.1)
  3.  Кӯшиш кунед, ки Foveation-ро фаъол созед (қисми 3.1.4, фасли 4.1.4).

Агар барномаи шумо низ як барномаи MR бошад, шумо метавонед танзимоти Passthrough-ро низ танзим кунед.

  1. Сифати тасвири гузаришро пасттар танзим кунед. (қисми 3.2.1)
  2. Рақами гузаришро сусттар танзим кунед. (қисми 3.2.2).

Барои танзимоти бештар дар бораи иҷрои GPU, шумо метавонед ба боби 2.6 муроҷиат кунед.

2.4 ба CPU пайваст
Вақте ки барномаи VR ба CPU пайваст аст, ин маънои онро дорад, ки CPU монеаи асосӣ аст, тавсияҳои зеринро баррасӣ кунед:
Аввалан, аз абзорҳои профилсозӣ ба монанди Systrace ё Game Engine pro истифода баредfiler (Unity Profiler, Insights Unreal) барои таҳлил ва муайян кардани кадом қисмҳои рамзи шумо захираҳои CPU бештар истеъмол мекунанд. Таваҷҷӯҳ ба оптимизатсияи ин минтақаҳо ва алгоритмҳои пуршиддати ҳисоббарорӣ барои кам кардани сарбории CPU.

  • Барои Native Developer, шумо метавонед Systrace -ро ба pro истифода баредfiler лоиҳаи шумо.
  • Барои Unity Developer, шумо метавонед CPU Usage Pro-ро истифода баредfileмодули р барои ёфтани масъалаи иҷрои CPU.
  • Барои Unreal Developer, шумо метавонед Insights Unreal-ро барои дарёфти мушкилоти иҷрои CPU истифода баред.

Дуюм, шумо инчунин метавонед кӯшиш кунед, ки баъзе хусусиятҳо ё танзимоти Wave-ро барои кам кардани боркунии GPU ислоҳ кунед.

  1. Суръати навсозии намоишро сусттар танзим кунед (қисми 3.1.1, фасли 4.1.1)
  2.  Истифодаи Мулти-View Намоиш (фасли 3.1.4, фасли 4.1.4)

Агар барномаи шумо низ як барномаи MR бошад, шумо метавонед танзимоти Passthrough-ро низ танзим кунед.

  1. Рақами Passthrough-ро сусттар танзим кунед (қисмати 3.2.2).

Барои танзимоти бештар дар бораи иҷрои CPU, шумо метавонед ба боби 2.6 муроҷиат кунед.

2.5 Хулоса
Ниҳоят, мо ҷараёни кори тафтиши иҷроишро дар расми 2-5-1 ташкил кардем. Бо тафтиши FPS-и мундариҷа оғоз кунед. Агар он аз чаҳорчӯбаи намоиш пасттар бошад ё ноустувор боқӣ монад, пас истифодаи GPU/CPU-ро таҳлил кунед, то муайян кунед, ки он ба GPU пайваст аст ё ба CPU вобаста аст. Ниҳоят, профессионалро истифода баредfiler барои муайян кардани мушкилоти эҳтимолии иҷроиш ё танзим кардани хусусиятҳои мавҷ ё танзимот барои беҳсозии иҷрои CPU.

Намоиши VIVE VR - Расми 1

2.6 Маълумоти фаврӣ, ки танзимот метавонад боркунии CPU/GPU-ро беҳтар кунад

Танзимоти SDK-ро, ки бо боркунии CPU/GPU алоқаманданд, ба таври зер номбар кунед. Шумо метавонед ба мушкилии барнома асос ёфта, танзимоти мувофиқи мувофиқро тафтиш кунед.

Вобаста ба CPU:

  • Танзимоти VIVE Wave SDK
    o Мундариҷаи VR
    ▪ 3.1.1 Намоиши суръати навсозӣ
    ▪ 3.1.4 МултиView Намоиш
    ▪ 3.1.6 Сифати мутобиқшавӣ
    ▪ 3.1.7 Композитори ҳаракати мутобиқшавӣ
    o Мундариҷаи MR
    ▪ 3.2.2 Танзими суръати чаҳорчӯбаи гузариш
  • Танзимоти VIVE OpenXR SDK
    o Мундариҷаи VR
    ▪ 4.1.1 Намоиши суръати навсозӣ
    ▪ 4.1.4 МултиView Намоиш
  • Оптимизатсияи умумӣ
    o 5.5 CPU Spike

Вобаста ба GPU:

  • Танзимоти VIVE Wave SDK
    o Мундариҷаи VR
    ▪ 3.1.1 Намоиши суръати навсозӣ
    ▪ 3.1.2 Резолюсияи Eyebuffer
    ▪ 3.1.3 МултиView Намоиш
    ▪ 3.1.4 Фовеатсия
    ▪ 3.1.5 Такмили равшании чаҳорчӯба (FSE)
    ▪ 3.1.6 Сифати мутобиқшавӣ
    ▪ 3.1.7 Композитори ҳаракати мутобиқшавӣ
    ▪ 3.1.8 Рендер кардани ниқоб [Не дастгирии Unreal] o Content MR
    ▪ 3.2.1 Танзими сифати гузариш
    ▪ 3.2.2 Танзими суръати чаҳорчӯбаи гузариш
  • Танзимоти VIVE OpenXR SDK
    o Мундариҷаи VR
    ▪ 4.1.1 Намоиши суръати навсозӣ
    ▪ 4.1.2 Резолюсияи Eyebuffer
    ▪ 4.1.3 МултиView Намоиш
    ▪ 4.1.4 Foveation [Не дастгири Unreal] ▪ 4.1.5 Render Mask [Дастгирии Unreal нест]
  • Оптимизатсияи умумӣ
    o 5.1 Хомӯш кардани Ҳолати иҷрои баланд
    o 5.2 Мултиampлинг
    ои 5.3 GMEM Боркунӣ / Store
    o 5.4 Қабати таркиб (бисёрқабат)

Танзими мавҷи VIVE

VIVE Wave як платформаи кушода ва асбобест, ки ба шумо имкон медиҳад мундариҷаи VR-ро ба осонӣ таҳия кунед ва оптимизатсияи дастгоҳи баландсифатро барои шарикони сеюм таъмин мекунад. VIVE Wave муҳаррикҳои Unity ва Unreal-ро дастгирӣ мекунад.
Мо пайваста хатогиҳои гуногунро оптимизатсия ва ҳал мекунем, аз ин рӯ тавсия додем, ки SDK-ро навсозӣ кунем.
Дар айни замон, VIVE Wave танҳо OpenGL ES-ро дастгирӣ мекунад. Дар ин ҷо хусусиятҳое оварда шудаанд, ки аз рӯи таъсир ба иҷрои GPU фармоиш дода шудаанд. Мо инро ба ду қисм тақсим мекунем: мундариҷаи VR ва мундариҷаи MR.
3.1 Мундариҷаи VR
3.1.1 Намоиши суръати навсозӣ

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.

  • Барои таҳиягари Native, ба WVR_SetFrameRate муроҷиат кунед.
  • Барои таҳиягари Unity, ба ин дастур муроҷиат кунед.
  • Барои таҳиягари Unreal, ба ин дастур муроҷиат кунед.

3.1.2 Ҳалномаи Eyebuffer
Резолюцияи Eyebuffer ин андозаи матнест, ки мундариҷаи Барномаи пешниҳодшуда ва матни додашуда ба вақти иҷро барои анҷом додани раванди интишор ва дар дисплейи 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 муроҷиат кунед. Ҳангоми танзими андоза, шумо бояд паҳнӣ ва баландиро бо таносуб зарб кунед.
  • Барои таҳиягари Unity, ба WaveXRSettings муроҷиат кунед.
    Интихобан, шумо метавонед тавассути код ҳамчун belwoe тағирот ворид кунед.
    XRSettings.eyeTextureResolutionScale = ResolutionScaleValue; // C#
  • Барои таҳиягари Unreal, ба 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.

  • Барои таҳиягари Native, шумо метавонед ба wvr_native_hellovr s муроҷиат кунедampле.
  • Барои таҳиягари Unity, ба режими Render муроҷиат кунед, як гузариш бисёрҷониба аст.view хусусият.
  • Барои таҳиягари Unreal, ба ин дастур муроҷиат кунед.

3.1.4 Фовеатсия
Намоиши фоҷиавӣ пеш аз ҳама барои кам кардани сарбории GPU тарҳрезӣ шудааст. Он тафсилоти чаҳорчӯбаро дар периферии намоиш коҳиш медиҳад ва тафсилоти ҳалли баландро дар маркази майдон нигоҳ медорад. view. Агар барнома мушкилоти марбут ба GPU дошта бошад, шумо метавонед визуалии Foveation-ро фаъол созед.

Намоиши VIVE VR - Расми 2

Ҳангоми истифодаи фовеатсия ба чизе диққат додан лозим аст:

➢ Истифодабарандагон одатан тафсилоти камшударо дар минтақаҳои периферӣ, ки реҷаи пешфарзро истифода мебаранд, пай намебаранд. Аммо агар сифати периферии фовеатсия хеле паст муқаррар карда шавад, он метавонад барои корбар намоён гардад.
➢ Таъсири фишурда метавонад бо маводҳои муайяни матоъҳо, ки диққати корбарро ҷалб мекунад, бештар намоён бошад. Таҳиягарон бояд аз ин огоҳ бошанд ва мувофиқи он баҳогузорӣ кунанд.
➢ Ба кор андохтани хусусияти визуалии фишурда арзиши собит иҷрои GPU-ро ба бор меорад, ки вобаста ба андозаи буфери чашм метавонад аз 1% то 6% фарқ кунад. Ҳангоми истифодаи шейдери оддӣ дар саҳна, фоидаи кор аз сарфаи захираҳо метавонад аз арзиши собит иҷрои GPU камтар бошад, ки боиси коҳиши кор мешавад.

  • Барои таҳиягари Native, ба ин дастур муроҷиат кунед.
  • Барои таҳиягари Unity, ба ин дастур муроҷиат кунед. Қобили зикр аст, ки вақте ки шумо коркарди пасошӯравӣ ё HDR-ро фаъол мекунед, фишурда пурра истифода намешавад. Зеро Unity объектҳоро ба матни рендерии худ тавлид мекунад, на ин ки матни редерҳои ҳозираи дар вақти корӣ тавлидшуда, ки фовеацияро дастгирӣ мекунад.
  • Барои таҳиягари Unreal, ба ин дастур муроҷиат кунед. Қобили зикр аст, ки фовеатсияро дар бисёрсоҳавӣ пурра истифода бурдан мумкин нест.View Рендеринг, зеро Unreal наметавонад объектҳоро мустақиман ба матни редерҳои дар вақти корӣ тавлидшуда, ки фовеатсияро дастгирӣ мекунад, пешкаш кунад.

3.1.5 Такмили равшании чаҳорчӯба (FSE)
FSE тавассути ҷорӣ кардани филтри тезтар натиҷаи визуалии тезро таъмин мекунад, он метавонад мундариҷаро равшантар кунад ва барои беҳтар кардани возеҳи матн дар саҳна муфид бошад. Агар барнома мушкилоти марбут ба GPU дошта бошад, шумо метавонед FSE-ро хомӯш кунед, агар он муҳим набошад.

Намоиши VIVE VR - Расми 3

  • Барои таҳиягари Native, ба ин дастур муроҷиат кунед.
  • Барои таҳиягари Unity, ба ин дастур муроҷиат кунед.
  • Барои таҳиягари Unreal, ба ин дастур муроҷиат кунед.

3.1.6 Сифати мутобиқшавӣ
Барои сарфаи батарея ва нигоҳ доштани иҷрои намоиши дастгоҳ, ин хусусият сатҳи кори соати CPU/GPU-ро дар асоси истифодаи онҳо ба таври худкор танзим мекунад. Илова бар ин, стратегияҳои дигарро барои баланд бардоштани самаранокӣ амалӣ кардан мумкин аст, ба монанди ба таври худкор фаъол/хомӯш кардани Foveation ё мундариҷа метавонад дар сурати гирифтани рӯйдодҳои сарбории баланд/паст худашро танзим кунад.

  • Барои таҳиягари Native, ба ин дастур муроҷиат кунед.
  • Барои таҳиягари Unity, ба ин дастур муроҷиат кунед. Дар плагини Unity мо андозаи буфери чашмро ба таври худкор дар асоси иҷрои ҷорӣ танзим кардан мумкин аст; Андозаи матн арзишҳои миқёсро, ки дар рӯйхати Қарорҳо хеле хурданд, филтр мекунад. Мо тавсия медиҳем, ки матни андозаи на камтар аз 20 дмм ё калонтар бошад.
  • Барои таҳиягари Unreal, ба ин дастур муроҷиат кунед.

3.1.7 Композитори Motion Adaptive
Ин хусусият хусусияти таҷрибавӣ мебошад, ки UMC ва PMC-ро дар бар мегирад. UMC Меъёри кадрҳоро ду баробар кам мекунад ва чаҳорчӯбаи навро дар вақти воқеӣ экстраполятсия мекунад, то ҳамвории визуалӣ нигоҳ дошта шавад. Аммо, он бо баъзе таъхирҳо, артефактҳо ва боркунии GPU меояд.
PMC пеш аз ҳама буфери амиқро истифода мебарад, то ба ATW имкон диҳад, ки тарҷумаи HMD-ро ҳисоб кунад, то ҷуброни 6-доф дароз карда шавад. Ин хусусият метавонад таъхири тарҷумаро то 1~2 фоторамка кам кунад, аммо боркунии GPU-ро зиёд кунад.

  • Барои таҳиягари Native, ба ин дастур муроҷиат кунед.
  • Барои таҳиягари Unity, ба ин дастур муроҷиат кунед.
  • Барои таҳиягари Unreal, ба ин дастур муроҷиат кунед.

3.1.8 Маска кардани ниқоб [Дастгирии Unreal нест]
Пикселҳо дар кунҷҳо пас аз таҳриф қариб ноаён мешаванд, ниқоби рендер арзишҳои буферии умқи ин пикселҳои ноаёнро тағир медиҳад. Агар шумо санҷиши амиқро фаъол созед, аз сабаби барвақт-z, ин пикселҳои ноаён намоиш дода намешаванд ва ба ин васила сарбории GPU-ро кам мекунанд. Ин хусусият муфид аст, агар дар ин минтақаҳои ноаён объектҳои боркунии вазнин вуҷуд дошта бошанд; дар акси ҳол, агар дар ин минтақаҳо ягон объекти визуалӣ мавҷуд набошад, тавсия дода мешавад, ки онро хомӯш кунед, зеро он истифодаи GPU-и хурдро истеъмол мекунад.

  • Барои таҳиягари Native, ба ин дастур муроҷиат кунед. Шумо бояд пеш аз занги RenderMask буфери амиқро пайваст кунед; дар акси хол бетаъсир мемонад.
  • Барои таҳиягари Unity, ба ин дастур муроҷиат кунед.
  • Барои таҳиягари Unreal, айни замон хусусияти Render Maskро дастгирӣ намекунад.

3.2 Мундариҷаи MR
3.2.1 Танзими сифати гузариш
Барои сифати тасвир 3 сатҳ вуҷуд дорад:
➢ WVR_PassthroughImageQuality_DefaultMode - барои мундариҷаи MR бе талаботи мушаххас мувофиқ аст.
➢ WVR_PassthroughImageQuality_PerformanceMode - барои мундариҷаи MR мувофиқ аст, ки барои намоиши саҳнаи виртуалӣ ба манбаи бештари GPU ниёз дорад.
➢ WVR_PassthroughImageQuality_QualityMode - барои мундариҷаи MR мувофиқ аст, ки ба корбарон имкон медиҳад, ки муҳити атрофро равшан бубинанд, аммо саҳнаи виртуалии мундариҷа бояд барои иҷроиш танзими бештаре дошта бошад.
Шумо метавонед сифати Passthrough-ро ба PerformanceMode танзим кунед, то истифодаи GPU-ро кам кунед.

  • Барои таҳиягари Native, Uunity ё Unreal, ба ин дастур муроҷиат кунед.

3.2.2 Меъёри чаҳорчӯбаи гузаришро танзим кунед
Мисли суръати навсозии Намоиш, кадри баландтари Passthrough визуалии ҳамвортарро пешниҳод мекунад, аммо аз ҳисоби афзоиши сарбории система меояд. Баръакс, суръати пасттари навсозӣ сарбории системаро коҳиш медиҳад, аммо ба визуалӣ камтар ҳамвор оварда мерасонад. 2 намуди кадрҳои гузариш вуҷуд дорад: Баланд бардоштани ва муқаррарӣ.

  • Барои таҳиягари Native, метавонад бо истифода аз WVR_SetPassthroughImageRate сифати гузаришро танзим кунад.
  • Барои таҳиягари Unity метавонад тавассути код тағир ёбад, масаланampтанзимот чунинанд // C#
    Interop.WVR_SetPassthroughImageQuality(WVR_PasshroughImageQuality.PerformanceMode);
  • Барои таҳиягари Unreal, усули танзим ба гиреҳи нақша дар расми 3-2-2 нигаред.

Намоиши VIVE VR - Расми 4

Танзимоти VIVE OpenXR

OpenXR стандарти кушода аст, ки маҷмӯи умумии API-ҳоро барои таҳияи замимаҳои XR, ки дар доираи васеи дастгоҳҳои VR кор мекунанд, ки аз ҷониби Khronos Group таҳия шудаанд, таъмин мекунад. VIVE Focus 3 ва VIVE XR Elite инчунин OpenXR-ро дастгирӣ мекунанд, VIVE OpenXR SDK дастгирии ҳамаҷонибаи дастгоҳҳои HTC VR-ро таъмин мекунад ва ба таҳиягарон имкон медиҳад Allin-One ва мундариҷаро бо муҳаррики Unity ва Unreal дар дастгоҳҳои HTC VR созанд. Мо пайваста хатогиҳои гуногунро оптимизатсия ва ҳал мекунем, аз ин рӯ ба таҳиягарон тавсия дода мешавад, ки версияи FOTA-и дастгоҳи худро навсозӣ кунанд, то онро навсозӣ кунанд. Дар айни замон, VIVE OpenXR SDK OpenGL ES ва Vulkan -ро дастгирӣ мекунад.

4.1 Мундариҷаи VR
4.1.1 Намоиши суръати навсозӣ
Консепсияи ин ҷо ба 3.1.1 Меъёри навсозии намоиш монанд аст.

  • Барои таҳиягари Native, ба XrEventDataDisplayRefreshRateChangedFB муроҷиат кунед.
  • Барои таҳиягари Unity, ба ин дастур муроҷиат кунед.
  • Барои таҳиягари Unreal, ба ин дастур муроҷиат кунед.

4.1.2 Ҳалномаи Eyebuffer
Консепсияи ин ҷо ба 3.1.2 Resolution Eyebuffer монанд аст. мо тавсия медиҳем, ки омили миқёсро аз 0.7 кам накунем, зеро ин метавонад боиси сифати визуалии ғайри қобили қабул гардад.

  • Барои таҳиягари Native, ба xrCreateSwapchain муроҷиат кунед. Ҳангоми танзими андоза, шумо бояд паҳнӣ ва баландиро бо таносуб зарб кунед. ,
  • Барои таҳиягари Unity, ба мисоли зерин муроҷиат кунедample // C#
    XRSettings.eyeTextureResolutionScale = 0.7f; // 1.0f ~ 0.7f тавсия дода мешавад
  • Барои танзимоти ғайрирасмӣ, ба ин дастур муроҷиат кунед.

4.1.3 МултираView Намоиш
Консепсияи ин ҷо ба 3.1.3 Мулти-View Намоиш. Ин хусусият сарбории CPU-ро коҳиш медиҳад, GPU низ баъзе бартариҳо дорад. Мо тавсия медиҳем, ки ин хусусиятро фаъол созем.

  • Барои таҳиягари Native, KhronosGroup OpenXR Multi-ро пешниҳод мекунад.View example, ба ин дастур муроҷиат кунед.
  • Барои таҳиягари Unity, ба режими Render муроҷиат кунед, як гузариш бисёрҷониба аст.view хусусият.
  • Барои таҳиягари Unreal, ба монанди танзимоти VIVE Wave, ба ин дастур муроҷиат кунед.

4.1.4 Фовеация [Дастгирии Unreal нест]
Консепсияи ин ҷо ба 3.1.4 Фовеатсия монанд аст. Намоиши фуҷур пеш аз ҳама барои кам кардани сарбории GPU тарҳрезӣ шудааст, аммо имкон медиҳад, ки он хароҷоти собит иҷрои GPU-ро ба бор меорад ва агар фишурда хеле паст гузошта шавад ва мавод ё матнҳои муайян истифода шаванд, он метавонад хеле зиёд шавад.
ба истифодабаранда намоён аст. Аз ин рӯ, тавсия дода мешавад, ки хусусиятро дар асоси талабот ва мулоҳизаҳои мушаххаси шумо фаъол ё ғайрифаъол кунед, дар айни замон, функсияи Foveated танҳо дар OpenGL ES дар VIVE OpenXR SDK дастгирӣ мешавад.

  • Барои таҳиягари Native, ин хусусият дастрас аст, аммо дар айни замон, собиқ нестampле таъмин карда мешаванд.
  • Барои таҳиягари Unity, ба ин дастур муроҷиат кунед.
  • Барои таҳиягари Unreal, дар айни замон ин хусусиятро дастгирӣ намекунад.

4.1.5 Маска кардани ниқоб [Дастгирии Unreal нест]
Консепсияи ин ҷо ба 3.1.8 Render Mask монанд аст.

  • Барои таҳиягари Native, барои гирифтани Mesh XrVisibilityMaskKHR-ро истифода баред. Пеш аз намоиш додани саҳна, ин Mesh-ро барои пур кардани арзишҳои буфери амиқ пеш аз намоиш додани саҳна истифода баред.
  • Барои таҳиягари Unity, хусусияти Render Mask ба таври нобаёнӣ барои OpenGL ES фаъол аст ва онро бо рамзи зерин ғайрифаъол кардан мумкин аст; Вулкан дар айни замон ин хусусиятро дастгирӣ намекунад. //C# UnityEngine.XR.XRSettings.occlusionMaskScale = 0.0f;
  • Барои таҳиягари Unreal, айни замон хусусияти Render Maskро дастгирӣ намекунад.

4.2 Мундариҷаи MR
OpenXR дар айни замон танзими Сифати гузариш ва Меъёри кадрҳоро дастгирӣ намекунад. Мо оптимизатсия ва ислоҳи хусусияти Passthrough -ро идома медиҳем, аз ин рӯ ба таҳиягарон тавсия дода мешавад, ки версияи FOTA-и дастгоҳро навсозӣ кунанд, то он навсозӣ шавад.

Оптимизатсияи умумӣ

5.1 Ҳолати иҷрои баландро хомӯш кунед
Хомӯш кардани "Ҳолати иҷрои баланд" метавонад андозаи намоиши дастгоҳро кам кунад ва ба ин васила истифодаи GPU-ро кам кунад. Камбудии он коҳиши ҳалли экран мебошад. Шумо метавонед сифат ва иҷроишро мувозинат кунед, то тасмим гиред, ки онро фаъол созед.
Ҷойгиркунии VIVE Focus 3 дар расми 5-1-1 нишон дода шудааст:

Намоиши VIVE VR - Расми 5

Ҷойгиркунии VIVE XR Elite дар расми 5-1-2 нишон дода шудааст:

Намоиши VIVE VR - Расми 6

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.

  • Барои таҳиягари Native, MSAA OpenGL ES exsampле метавонам ба ин ишора кард; MSAA Vulkan собиқampлер ба ин ишора карда метавонад.
    Adreno GPU тамдидеро пешкаш мекунад, ки MSAA-ро оптимизатсия мекунад.
  • Барои таҳиягари Unity, ба ин гильдия муроҷиат кунед.
  • For Unreal developer, refer to this guild. Unreal also has provide post processing anti-aliasing, refer to this guild.

5.3 GMEM Боркунӣ / Мағоза
Дар меъмории Adreno GPU, хусусияте мавҷуд аст, ки ҳангоми ҳатмии Ҳадафи Render, агар Ҳадафи Render тоза накунад ё беэътибор накунад, ҳар дафъае, ки нишон медиҳад, арзишҳо дар Ҳадафи Render ба хотираи графикӣ бор карда мешаванд, ки онро GMEM Load меноманд. Агар арзишҳои қаблӣ лозим набошанд, барои намоиш додани Render Target -ро равшан ё беэътибор созед, метавонад барои беҳтар кардани кори GPU аз ин вазъият канорагирӣ кунед.
Шумо метавонед бо истифода аз усулҳои зерин аз GMEM Load канорагирӣ кунед. Дар OpenGL ES, пас аз бастани FBO, шумо метавонед барои тоза кардани буфери Color, Depth ва Stencil ба glClear ва glClearDepth занг занед ё glInvalidateFramebuffer-ро барои беэътибор донистани Ҳадафи Render муайяншуда занг занед. Дар Вулкан, дастурҳои иловагӣ лозим нест; шумо метавонед ба таври возеҳ муқаррар кунед, ки оё замима пеш аз истифода дар VkAttachmentDescription.loadOp тоза карда шавад.
Ба ҳамин монанд, нигоҳ доштани натиҷаи коркарди Tile Render ба хотираи асосӣ аз хотираи графикӣ Store GMEM номида мешавад; ин амалиёт барои GPU низ гарон аст. Барои роҳ надодан ба ин, мо тавсия медиҳем, ки танҳо Ҳадафҳои зарурии Render-ро барои пешгирӣ кардани амалиёти нолозими Store ҳатмӣ кунем.

5.4 Қабати таркиб (бисёрқабат)
Матнҳое, ки бо истифода аз Multi-Layer намоиш дода мешаванд, сифати беҳтари визуалӣ доранд. Аммо, ин хусусият иҷрои GPU-ро бо шумораи қабатҳо ва андозаи матнҳо ба таври назаррас афзоиш медиҳад. Мо тавсия медиҳем, ки на бештар аз се қабат.

  • Барои таҳиягари Native,
    o VIVE Wave SDK WVR_SubmitFrameLayers-ро барои интиқоли маълумот барои ҳар як қабат истифода мебарад.
    o VIVE OpenXR SDK маълумоти қабатро дар XrFrameEndInfo ҷойгир мекунад ва онро тавассути xrEndFrame пешниҳод мекунад.
  • Барои таҳиягари Unity,
    o Танзимоти VIVE Wave SDK, ба ин дастур муроҷиат кунед,
    o Танзимоти VIVE OpenXR, ба ин дастур муроҷиат кунед.
  • Барои таҳиягари Unreal,
    o Танзимоти VIVE Wave SDK, ба ин дастур муроҷиат кунед.
    o Танзимоти VIVE OpenXR, ба ин дастур муроҷиат кунед.

5.5 CPU Spike
Вақте ки боркунии CPU вазнинтар аст, баъзе равандҳои пасзамина риштаҳои афзалиятноки баланд доранд, он метавонад иҷрои маҳаллиро қатъ кунад. Мо кафолат дода наметавонем, ки Замимаи Content бо риштаи дигар халалдор нахоҳад шуд.
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.

  • Барои Unity Developer, ба хусусияти конфигуратсияи риштаи Android муроҷиат кунед. Агар шумо VIVE Wave SDK-ро истифода баред, мо дар WaveXRSettings хусусият дорем, ки ба шумо имкон медиҳад афзалиятро танзим кунед, тавре ки дар расми 5-5-2 нишон дода шудааст. Арзиши хурдтар афзалияти баландтарро нишон медиҳад.

Намоиши VIVE VR - Расми 7

  • Ҳеҷ гуна усули тағир додани риштаи бозӣ, додани ришта ва афзалияти риштаи RHI тавассути танзимоти беруна, агар шумо рамзи муҳаррикро тағир надиҳед.

Copyright © 2024 HTC Corporation. Ҳамаи ҳуқуқ маҳфуз астЛоготипи VIVE

Ҳуҷҷатҳо / Сарчашмаҳо

Намоиши VIVE VR [pdf] Дастури корбар
VR Намоиши иҷрои, Намоиши иҷрои, Иҷрои

Иқтибосҳо

Назари худро гузоред

Суроғаи почтаи электронии шумо нашр намешавад. Майдонҳои зарурӣ қайд карда шудаанд *