VIVE lógóVR flutningsárangur
Stillingar og hagræðingar

Inngangur

Að ná sem bestum VR upplifun á vélbúnaði sem takmarkast við tilföng er lykillinn að því að skila sléttri og þægilegri notendaupplifun. Ef rammatíðni efnisflutnings lækkar eða er óstöðug undir endurnýjunarhraða tækisins mun það leiða til rammaskjálfta og stams, ferðaveiki osfrv. að lokum hafa neikvæð áhrif á notendaupplifunina. Þess vegna er fínstilling á frammistöðu efnisins mjög mikilvæg til að tryggja ánægjulega upplifun.
Áður en afkastastilling er hafin er mikilvægt að skilja hvar flöskuhálsarnir eru til að forðast óhagkvæma stillingu. Þetta skjal er hannað til að hjálpa forriturum að bera kennsl á flöskuhálsa í afköstum og bjóða upp á lausnir til að leysa flutningsvandamálin.
Skjalið er skipulagt í eftirfarandi hluta:

  • Kafli 2: Greinið flöskuhálsana – Þessi hluti aðstoðar forritara við að bera kennsl á hvar flöskuhálsarnir eru.
  • Kafli 3 og 4: Stillingar fyrir VIVE Wave og VIVE OpenXR – Í þessum köflum er fjallað um sérstakar stillingar sem geta haft áhrif á afköst örgjörva/skjákorts fyrir VIVE Wave og OpenXR forrit. Forritarar geta gert tilraunir með að virkja eða slökkva á þessum eiginleikum út frá þeim flöskuhálsum sem koma upp í afköstum til að ákvarða hvort einhverjar úrbætur séu til staðar.
  • Kafli 5: Algeng hagræðing – Í þessum hluta eru kynntar algengar aðferðir og reynslu af hagræðingu.

Greinið flöskuhálsinn

Þegar HMD hreyfist, ef VR/MR appið er með rammaójafnvægi eða svarta brún o.s.frv., þá stafar það venjulega af lélegri flutningsgetu. Venjulega er hægt að flokka vandamál með flutningsgetu í tvennt: CPU-bundin eða GPU-bundin. Það er mjög mikilvægt að skilja hvaða gerðir af bindingu forritsins hefur í upphafi til að forðast óhagkvæma stillingu.
Í þessum kafla kynnum við einföld skref sem gera þér kleift að bera fljótt kennsl á hvar vandamálin með afköstin eru.

2.1 Athugaðu efnisflutning FPS
Fyrst byrjum við á því að athuga FPS-gildi efnisins, þ.e. fjölda ramma sem efnið getur birt á sekúndu. Það ætti að vera viðhaldið rammatíðni skjásins og stöðug. Annars gæti það valdið rammatruflunum.
Ef forrita-SDK-ið þitt notar VIVE WAVE SDK 6.0.0 eða nýrri, geturðu notað eftirfarandi adb skipun til að athuga FPS. DK 6.0.0
$adb Logcat -s VRMetric
Þú munt sjá eftirfarandi skráningargögn.
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“ Fyrsta talan táknar FPS efnisins, en sú seinni táknar rammatíðni skjásins.
Ef Wave SDK útgáfan þín er undir 6.0.0, er mælt með því að uppfæra í nýjustu útgáfuna til að auka flutningsgetu og aðra fínstillingu.
Ef SDK forritsins þíns er smíðað með VIVE OpenXR, þá geturðu notað eftirfarandi adb skipun til að athuga FPS.
$adb Logcat -s RENDER_ATW
Þú munt sjá eftirfarandi loggögn
RENDER_ATW: [FPS] ný áferð: 90.00
RENDER_ATW: [FPS] R til staðar: 90.00 sleppt: 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)

Talan á eftir „ný áferð“ táknar núverandi FPS. Talan á eftir „R til staðar“ og „L til staðar“ táknar rammatíðni skjásins.
Stundum getur verið lítilsháttar misræmi á milli FPS efnisins og rammatíðni skjásins.
Til dæmisampÍ tilvikinu hér að ofan má líta á 89.8 FPS sem 90 FPS.
Ef FPS-hraði efnis í forritinu er stöðugt lægri en rammatíðni skjásins eða helst óstöðugur, þá bendir það til vandamála með flutningsframmistöðu. Þess vegna er næsta skref að greina hvort flöskuhálsinn stafi frá örgjörvanum eða skjákortinu.
2.2 Athugaðu CPU og GPU notkun
Ef SDK forritsins þíns notar VIVE WAVE SDK 6.0.0 eða nýrri geturðu notað eftirfarandi adb skipun til að athuga FPS.
$adb logcat -s VRMetric
Þú munt sjá eftirfarandi skráningargögn.
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
Eins og þú sérð í ofangreindri skráningu er örgjörvanotkunin 27% og skjákortanotkunin 72%. Ef Wave SDK útgáfan þín er eldri en 6.0.0 er mælt með því að uppfæra í nýjustu útgáfuna til að bæta afköst flutnings og aðra hagræðingu.
Fyrir VIVE OpenXR appið geturðu notað eftirfarandi skipun til að athuga CPU og GPU notkun.
# á linux/ubuntu
$ adb logcat | grep CPU_USAGE
# á PowerShell
$ adb logcat | Veldu-Strengur -Mynstur CPU_USAGE
Þú munt sjá eftirfarandi log
CPU meðaltal. CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7 GPU CPU_NOK [LOAD] 25.67% 32.22% 25.29% 30.77% 29.35% 21.35% 22.09% 18.39% 24.14% 73 %
Ef þú sérð að FPS getur ekki haldið rammahraða skjásins og GPU-notkunin er líka mjög mikil, venjulega yfir 85%, geturðu prófað að stilla Eyebuffer-upplausnina (kafli 3.1.2, hluti 4.1.2) til að sjá hvort það bætir FPS. Ef þessi aðlögun leiðir til betri
frammistöðu, getum við ályktað að málið sé GPU bundið og einbeitt hagræðingarviðleitni okkar í samræmi við það.
Á hinn bóginn, ef aðlögun Eyebuffer upplausnarinnar hefur ekki í för með sér áberandi frammistöðubót, er flöskuhálsinn líklega bundinn við örgjörva og við ættum að einbeita okkur að því að hámarka frammistöðu örgjörva.
Það er líka mögulegt að forritið sé bæði CPU-bundið og GPU-bundið samtímis. Í slíkum tilfellum ætti að beita hagræðingarviðleitni bæði á örgjörva og GPU til að ná fram jöfnum framförum.
2.3 GPU bundið
Þegar sýndarveruleikaforrit er bundið af skjákorti þýðir það að skjákortið er aðal flöskuhálsinn og það getur ekki fylgt kröfum forritsins um birtingu. Til að draga úr vandamálum tengdum skjákorti skaltu íhuga eftirfarandi ráðleggingar:
Notaðu fyrst prófílverkfæri eins og RenderDoc eða Game Engine profiler (Unity Profiler, Unreal Insights) til að greina hvar GPU eyðir mestum tíma sínum. Finndu kostnaðarsamasta reksturinn og einbeittu þér að hagræðingu þeirra.
Fyrir Native Developer er hægt að nota RenderDoc til að bera kennsl á hvaða teiknikaall veldur of miklu álagi á GPU.
Fyrir Unity forritara er hægt að fylgja þessu skjali um Unity eða nota RenderDoc til að greina vandamál með flutningsafköst og fylgja skjölunum um grafíkbestun Unity til að fá leiðbeiningar um hvernig á að fínstilla forritið þitt.
Fyrir Unreal Developer geturðu notað GPU Visualizer eða RenderDoc til að greina vandamál með flutningsafköst og fylgt Unreal Performance Guidelines til að fá leiðbeiningar um hvernig á að hámarka forritið þitt.
Í öðru lagi geturðu líka prófað að stilla ákveðna Wave eiginleika eða stillingar til að draga úr hleðslu á GPU.

  1. Stilla hægari endurnýjunartíðni skjásins (kafli 3.1.1, kafli 4.1.1)
  2.  Stilla upplausn augnbiðminnis (kafli 3.1.2, kafli 4.1.2), 14.1.1)
  3.  Reyndu að virkja Foveation (kafli 3.1.4, kafli 4.1.4).

Ef appið þitt er líka MR app geturðu líka stillt Passthrough stillingarnar.

  1. Lækkaðu gæði myndgæðis (Passthrough Image Quality). (kafli 3.2.1)
  2. Stilla hægari rammatíðni í gegnumgang (kafli 3.2.2).

Fyrir fleiri aðrar stillingar um GPU frammistöðu geturðu vísað til kafla 2.6.

2.4 CPU bundið
Þegar VR-forrit er örgjörvabundið þýðir það að örgjörvinn er aðal flöskuhálsinn, íhugaðu eftirfarandi ráðleggingar:
Fyrst skaltu nota prófílunartól eins og Systrace eða Game Engine profiler (Unity Profiler, Unreal Insights) til að greina og bera kennsl á hvaða hlutar kóðans þíns nota mest af örgjörvaauðlindunum. Einbeittu þér að því að hámarka þessi svæði og endurskipuleggja reiknirit sem krefjast mikillar reiknirit til að draga úr álaginu á örgjörvann.

  • Fyrir innfædda forritara er hægt að nota Systrace til að vinna meðfileverkefnið þitt.
  • Fyrir Unity Developer geturðu notað CPU Usage Profiler eining til að finna vandamál með afköst örgjörvans.
  • Fyrir Unreal Developer geturðu notað Unreal's Insights til að finna vandamál með afköst örgjörvans.

Í öðru lagi geturðu líka prófað að stilla ákveðna Wave eiginleika eða stillingar til að draga úr hleðslu á GPU.

  1. Stilla hægari endurnýjunartíðni skjásins (kafli 3.1.1, kafli 4.1.1)
  2.  Nota fjöl-View Myndvinnsla (kafli 3.1.4, kafli 4.1.4)

Ef appið þitt er líka MR app geturðu líka stillt Passthrough stillingarnar.

  1. Stilla hægari rammatíðni í gegnumbrot (kafli 3.2.2).

Fyrir fleiri stillingar varðandi afköst örgjörvans, vísað er til kafla 2.6.

2.5 Samantekt
Að lokum höfum við skipulagt ofangreinda frammistöðuathugunarverkflæði í mynd 2-5-1. Byrjaðu á því að athuga FPS efnisins. Ef það er lægra en rammahraði skjásins eða helst óstöðugt skaltu greina GPU/CPU notkunina til að ákvarða hvort hún er GPU-bundin eða CPU-bundin. Notaðu að lokum atvinnumannfiler til að bera kennsl á hugsanleg afköst vandamál eða aðlaga Wave eiginleika eða stillingar til að hámarka afköst CPU.

VIVE VR flutningsgeta - Mynd 1

2.6 Fljótleg tilvísun Hvaða stillingar geta bætt álag á örgjörva/skjákort

Listaðu stillingar SDK sem tengdust CPU/GPU hleðslu eins og hér að neðan. Þú getur byggt á flöskuhálsi appsins til að athuga viðeigandi hagræðingarstillingar.

Tengt CPU:

  • Stillingar fyrir VIVE Wave SDK
    o VR efni
    ▪ 3.1.1 Endurnýjunartíðni skjás
    ▪ 3.1.4 Fjöl-View Rending
    ▪ 3.1.6 Aðlögunarhæf gæði
    ▪ 3.1.7 Aðlögunarhæfur hreyfimyndari
    o MR Efni
    ▪ 3.2.2 Stilla rammatíðni í gegnumgang
  • Stillingar fyrir VIVE OpenXR SDK
    o VR efni
    ▪ 4.1.1 Endurnýjunartíðni skjás
    ▪ 4.1.4 Fjöl-View Rending
  • Algeng hagræðing
    o 5.5 örgjörva toppur

Tengt GPU:

  • Stillingar fyrir VIVE Wave SDK
    o VR efni
    ▪ 3.1.1 Endurnýjunartíðni skjás
    ▪ 3.1.2 Upplausn augnbiðminnis
    ▪ 3.1.3 Fjöl-View Rending
    ▪ 3.1.4 Foveation
    ▪ 3.1.5 Rammaskerpuaukning (FSE)
    ▪ 3.1.6 Aðlögunarhæf gæði
    ▪ 3.1.7 Aðlögunarhæfur hreyfimyndari
    ▪ 3.1.8 Myndunarmaski [Styður ekki Unreal] o MR-efni
    ▪ 3.2.1 Stilla gæði gegnumgangs
    ▪ 3.2.2 Stilla rammatíðni í gegnumgang
  • Stillingar fyrir VIVE OpenXR SDK
    o VR efni
    ▪ 4.1.1 Endurnýjunartíðni skjás
    ▪ 4.1.2 Upplausn augnbiðminnis
    ▪ 4.1.3 Fjöl-View Rending
    ▪ 4.1.4 Foveation [Styður ekki Unreal] ▪ 4.1.5 Render Mask [Styður ekki Unreal]
  • Algeng hagræðing
    o 5.1 Slökkva á háafkastastillingu
    o 5.2 fjölnotaamplanga
    o 5.3 GMEM hleðsla/geymsla
    o 5.4 Samsetningarlag (marglaga)

VIVE Wave stilling

VIVE Wave er opinn vettvangur og verkfærasett sem gerir þér kleift að þróa VR efni á auðveldan hátt og býður upp á afkastamikil hagræðingu tækja fyrir þriðja aðila. VIVE Wave styður Unity og Unreal leikjavélar.
Við fínstillum og leysum stöðugt ýmsar villur, svo við mælum með að halda SDK uppfærðum.
Eins og er styður VIVE Wave aðeins OpenGL ES. Hér er listi yfir eiginleikana raðað eftir áhrifum á GPU frammistöðu. Við munum skipta þessu í tvo hluta: VR efni og MR efni.
3.1 VR efni
3.1.1 Uppfærsluhraði birtingar

Hærri endurnýjunartíðni býður upp á sléttari myndefni, en kemur á kostnað aukins kerfisálags. Aftur á móti dregur lægri endurnýjunartíðni úr kerfisálagi, en leiðir til minna sléttrar myndefnis. Ef forritið er með CPU/GPU bundið vandamál geturðu reynt að minnka endurnýjunarhraða skjásins til að draga úr vandamálinu.

  • Fyrir innfædda forritara, vísað er til WVR_SetFrameRate.
  • Fyrir Unity forritara, vísið til þessarar handbókar.
  • Fyrir Unreal forritara, vísið til þessarar handbókar.

3.1.2 Augnbuffarupplausn
Eyebuffer upplausn er áferðarstærðin sem innihaldsappið sem á að skila, renderað áferð verður sent til keyrslutíma til að gera birtingarferli og birt á HMD skjánum.
Þó að stærra augnbjóðastærð geti leitt til skýrari og ítarlegri myndefnis, en það leggur einnig verulegt álag á GPU. Þess vegna er mikilvægt að finna rétta jafnvægið milli sjónrænna gæða og frammistöðu.
Ef forritið er með GPU bundið vandamál geturðu prófað að minnka augnstærðina með því að margfalda mælikvarða. Hins vegar mælum við með að minnka mælikvarðastuðulinn ekki niður fyrir 0.7, þar sem það getur leitt til óviðunandi myndgæða.

  • Fyrir innfædda forritara, vísið til WVR_ObtainTextureQueue. Þegar stærðin er stillt ættir þú að margfalda breidd og hæð með hlutfalli.
  • Fyrir Unity forritara, vísið til WaveXRSettings.
    Einnig er hægt að gera breytingar með kóða eins og sýnt er hér að neðan.
    XRSettings.eyeTextureResolutionScale = ResolutionScaleValue; // C#
  • Fyrir Unreal forritara, vísið til SetPixelDensity.

3.1.3 Marg-View Rending
Í hefðbundinni teikningu teiknum við vinstri og hægri augu sérstaklega, sem krefst tveggja teiknakalla fyrir sömu senuna.View Rendering leysir þetta vandamál með því að framkvæma aðeins eitt teiknakall.
Þessi aðgerð dregur úr álagi á örgjörvann með því að fækka teiknaköllum. Skjákortið hefur einnig nokkra kosti, vinnuálag hnútpunktsskyggjarans minnkar einnig þar sem hann þarf ekki að keyra aukaskyggjara fyrir hitt augað, en vinnuálag brotskyggjarans helst óbreytt þar sem hann þarf samt að meta hverja pixlu fyrir bæði augun. Við mælum með að virkja þennan eiginleika.

  • Fyrir innfædda forritara er hægt að vísa til wvr_native_hellovr.ample.
  • Fyrir Unity forritara, vísið til Render Mode, ein umferð er margfeldi-view eiginleiki.
  • Fyrir Unreal forritara, vísið til þessarar handbókar.

3.1.4 Foveation
Foveated rendering er fyrst og fremst hönnuð til að draga úr álagi á skjákortið. Það dregur úr smáatriðum í rammanum í jaðri skjásins og viðheldur háskerpu í miðju skjásins. view. Ef forritið er með GPU bundið vandamál geturðu reynt að virkja Foveation flutning.

VIVE VR flutningsgeta - Mynd 2

Það eru nokkur atriði sem þarf að hafa í huga þegar foveation er notað:

➢ Notendur taka yfirleitt ekki eftir minnkuðum smáatriðum á jaðarsvæðum þegar sjálfgefin sjónsviðsstilling er notuð. En ef gæði sjónsviðsstillingarinnar eru of lágt stillt gæti það orðið áberandi fyrir notandann.
➢ Áhrif foveation geta verið meira áberandi með ákveðnum efnum eða áferð, sem gæti vakið athygli notandans. Forritarar ættu að vera meðvitaðir um þetta og meta það í samræmi við það.
➢ Virkjun á „foveated“ birtingareiginleika hefur í för með sér fastan kostnað vegna afkasta GPU, sem getur verið á bilinu 1% til 6% eftir stærð augnbiðminnis. Þegar einfaldur skuggari er notaður í senunni gæti afkastaaukningin af því að spara auðlindir verið lægri en fasti kostnaðurinn vegna afkasta GPU, sem leiðir til afkastalækkunar.

  • Fyrir innfædda forritara, vísið til þessarar handbókar.
  • Fyrir Unity forritara, vísið til þessarar handbókar. Athyglisvert er að þegar þú virkjar eftirvinnslu eða HDR er ekki hægt að nýta foveation til fulls. Vegna þess að Unity mun birta hluti á eigin myndaða birtingaráferð, frekar en birtingaráferð keyrslutímamyndaðrar útgáfu sem styður foveation.
  • Fyrir Unreal forritara, vísið til þessarar handbókar. Athyglisvert er að ekki er hægt að nýta foveation að fullu á Multi-View Rending, vegna þess að Unreal getur ekki birt hluti beint á runtime-myndaða rendering áferð sem styður foveation.

3.1.5 Frame Sharpness Enhancement (FSE)
FSE veitir skerpa flutningsniðurstöðu með því að kynna skerpingarsíu, það getur gert innihald skýrara og verið mjög gagnlegt til að bæta skýrleika textans í atriðinu. Ef forritið er með GPU bundið vandamál geturðu íhugað að slökkva á FSE ef það er ekki nauðsynlegt.

VIVE VR flutningsgeta - Mynd 3

  • Fyrir innfædda forritara, vísið til þessarar handbókar.
  • Fyrir Unity forritara, vísið til þessarar handbókar.
  • Fyrir Unreal forritara, vísið til þessarar handbókar.

3.1.6 Aðlögunargæði
Til að spara rafhlöðu og viðhalda flutningsgetu tækisins, stillir þessi eiginleiki sjálfkrafa afköst CPU/GPU klukkunnar út frá notkun þeirra. Að auki er hægt að útfæra aðrar aðferðir til að auka frammistöðu, svo sem að virkja/slökkva sjálfkrafa á Foveation eða efni getur stillt sig ef það tekur við atburðum með hátt/lítið álag.

  • Fyrir innfædda forritara, vísið til þessarar handbókar.
  • Fyrir Unity forritara, skoðið þessa handbók. Í Unity viðbótinni okkar er hægt að aðlaga stærð augnbiðminnis sjálfkrafa út frá núverandi afköstum; Textastærð mun sía út kvarðagildi sem eru of lítil í upplausnarlistanum. Við mælum með texta sem er að minnsta kosti 20 dmm eða stærri.
  • Fyrir Unreal forritara, vísið til þessarar handbókar.

3.1.7 Adaptive Motion Compositor
Þessi eiginleiki er tilraunaeiginleiki sem inniheldur UMC og PMC. UMC mun minnka rammahraðann um helming og framreikna nýjan ramma í rauntíma til að halda sjónrænni sléttleika. Hins vegar kemur það með smá leynd, gripi og GPU hleðslu.
PMC notar fyrst og fremst dýptarbuffinn til að leyfa ATW að gera grein fyrir HMD þýðingu, sem nær til 6-dof bóta. Þessi eiginleiki getur dregið úr þýðingaleynd um 1~2 ramma, en aukið hleðslu á GPU.

  • Fyrir innfædda forritara, vísið til þessarar handbókar.
  • Fyrir Unity forritara, vísið til þessarar handbókar.
  • Fyrir Unreal forritara, vísið til þessarar handbókar.

3.1.8 Render Mask [Styður ekki óraunverulegt]
Pixlar á brúnunum verða næstum ósýnilegir eftir röskun, og birtingarmaskinn breytir dýptarbiðminnisgildum þessara ósýnilegu pixla. Ef þú virkjar dýptarprófanir, vegna early-z, verða þessir ósýnilegu pixlar ekki birtir, sem dregur úr álaginu á skjákortið. Þessi eiginleiki er gagnlegur ef mikið er um birtingarhluti á þessum ósýnilegu svæðum; annars, ef engir birtingarhlutir eru á þessum svæðum, er mælt með því að slökkva á honum þar sem það mun nota lítið af skjákortinu.

  • Fyrir innfædda forritara, vísið til þessarar handbókar. Þið verðið að binda dýptarbiðminnið áður en þið kallið á RenderMask; annars verður það árangurslaust.
  • Fyrir Unity forritara, vísið til þessarar handbókar.
  • Fyrir Unreal forritara styður Render Mask eiginleikann ekki eins og er.

3.2 MR Innihald
3.2.1 Stilla gæði gegnumgangs
Það eru þrjú stig fyrir gæði myndgæða í gegnumgang:
➢ WVR_PassthroughImageQuality_DefaultMode – hentar fyrir MR-efni án sérstakrar kröfu.
➢ WVR_PassthroughImageQuality_PerformanceMode – hentar fyrir MR-efni sem þarfnast meiri GPU-auðlinda fyrir sýndarsenuflutning.
➢ WVR_PassthroughImageQuality_QualityMode – hentar fyrir MR-efni sem gerir notendum kleift að sjá umhverfið greinilega, en sýndarvettvangur efnisins verður að fínstilla betur til að ná frammistöðu.
Þú getur stillt gæði Passthrough í PerformanceMode til að draga úr notkun GPU.

  • Fyrir Native, Uunity eða Unreal forritara, vísið til þessarar handbókar.

3.2.2 Stilla rammatíðni í gegnumgang
Líkt og endurnýjunartíðni skjásins, þá býður hærri rammatíðni í gegnum kerfið upp á mýkri myndgæði, en kostar aukið álag á kerfið. Aftur á móti minnka lægri endurnýjunartíðni á kerfið en leiðir til ójöfnari myndgæðis. Það eru tvær stillingar fyrir rammatíðni í gegnum kerfið: Boost og Normal.

  • Fyrir innfædda forritara er hægt að stilla gæði gegnumgangs með því að nota WVR_SetPassthroughImageRate.
  • Fyrir Unity forritara, getur breytt með kóða, t.d.ampStillingarnar eru eftirfarandi // C#
    Interop.WVR_SetPassthroughImageQuality(WVR_PassthroughImageQuality.PerformanceMode);
  • Fyrir Unreal forritara, sjá stillingaraðferðina á teikningahnútnum á mynd 3-2-2.

VIVE VR flutningsgeta - Mynd 4

VIVE OpenXR stilling

OpenXR er opinn staðall sem veitir sameiginlegt sett af API til að þróa XR forrit sem keyra yfir fjölbreytt úrval VR tækja, þróað af Khronos Group. VIVE Focus 3 og VIVE XR Elite styðja einnig OpenXR, VIVE OpenXR SDK veitir alhliða stuðning fyrir HTC VR tæki, sem gerir forriturum kleift að smíða Allin-One og innihald með Unity og Unreal vél á HTC VR tækjum. Við fínstillum og leysum stöðugt ýmsar villur, svo það er mælt með því að forritarar uppfæri FOTA útgáfu tækisins til að halda því uppfærð. Eins og er styður VIVE OpenXR SDK OpenGL ES og Vulkan.

4.1 VR efni
4.1.1 Uppfærsluhraði birtingar
Hugmyndin hér er svipuð og 3.1.1 Display Refresh Rate.

  • Fyrir innfædda forritara, vísað er til XrEventDataDisplayRefreshRateChangedFB.
  • Fyrir Unity forritara, vísið til þessarar handbókar.
  • Fyrir Unreal forritara, vísið til þessarar handbókar.

4.1.2 Augnbuffarupplausn
Hugmyndin hér er svipuð og í 3.1.2 Eyebuffer Resolution. Við mælum með að minnka ekki kvarðastuðulinn undir 0.7, þar sem það getur leitt til óásættanlegs sjóngæða.

  • Fyrir innfædda forritara, vísið til xrCreateSwapchain. Þegar stærðin er stillt ættir þú að margfalda breidd og hæð með hlutfalli.
  • Fyrir Unity forritara, vísið til eftirfarandi dæmisample // C#
    XRSettings.eyeTextureResolutionScale = 0.7f; //ráðlagt er 1.0f~0.7f
  • Fyrir Unreal stillingar, vísið til þessarar handbókar.

4.1.3 Marg-View Rending
Hugmyndin hér er svipuð og 3.1.3 Multi-View Rending. Þessi eiginleiki dregur úr álagi á CPU, GPU hefur einnig nokkra kosti. Við mælum með að virkja þennan eiginleika.

  • Fyrir innfædda forritara býður KhronosGroup upp á OpenXR fjölnota-View example, vísa til þessa handbók.
  • Fyrir Unity forritara, vísið til Render Mode, ein umferð er margfeldi-view eiginleiki.
  • Fyrir Unreal forritara, eins og með VIVE Wave stillingar, vísið til þessarar handbókar.

4.1.4 Foveation [styður ekki óraunverulegt]
Hugmyndin hér er svipuð og í 3.1.4 Foveation. Foveated rendering er fyrst og fremst hönnuð til að draga úr álagi á skjákortið en virkjun hennar mun hafa í för með sér fastan kostnað vegna afkasta skjákortsins og ef foveation er stillt of lágt og ákveðin efni eða áferðir eru notuð getur það orðið mjög...
áberandi fyrir notandann. Þess vegna er ráðlegt að virkja eða slökkva á eiginleikanum út frá þínum sérstökum kröfum og afköstum. Eins og er er Foveated-virkni aðeins studd í OpenGL ES á VIVE OpenXR SDK.

  • Fyrir innfædda forritara er þessi aðgerð í boði, en eins og er, engin týpa.amples eru veitt.
  • Fyrir Unity forritara, vísið til þessarar handbókar.
  • Fyrir Unreal forritara styður þessi aðgerð ekki eins og er.

4.1.5 Render Mask [Styður ekki óraunverulegt]
Hugmyndin hér er svipuð og í 3.1.8 Render Mask.

  • Fyrir innfædda forritara, notið XrVisibilityMaskKHR til að fá möskvann. Áður en senan er birt skal nota þennan möskva til að fylla út dýptarbiðminnisgildin áður en senan er birt.
  • Fyrir Unity forritara er Render Mask aðgerðin sjálfgefin virk fyrir OpenGL ES og hægt er að slökkva á henni með eftirfarandi kóða; Vulkan styður ekki þennan eiginleika eins og er. //C# UnityEngine.XR.XRSettings.occlusionMaskScale = 0.0f;
  • Fyrir Unreal forritara styður Render Mask eiginleikann ekki eins og er.

4.2 MR Innihald
OpenXR styður sem stendur ekki stillingar á passthrough Quality og Frame Rate. Við munum halda áfram að fínstilla og laga Passthrough eiginleikann, svo mælum með því að þróunaraðilar uppfærir FOTA útgáfu tækisins til að halda henni uppfærðum.

Algeng hagræðing

5.1 Slökkva á afkastamiklum ham
Að slökkva á „Háafkastastillingu“ getur minnkað skjástærð tækisins og þar með dregið úr notkun GPU. Ókosturinn er minnkuð skjáupplausn. Þú getur vegið gæði og afköst til að ákveða hvort þú viljir virkja þetta.
Uppsetningarstaðsetning VIVE Focus 3 er sýnd á mynd 5-1-1:

VIVE VR flutningsgeta - Mynd 5

Uppsetningarstaðsetning VIVE XR Elite er sýnd á mynd 5-1-2:

VIVE VR flutningsgeta - Mynd 6

5.2 Multisampling Anti-Aliasing
Multisampling er anti-aliasing tækni sem notuð er til að slétta út oddhvassar brúnir, venjulega er hraðað í gegnum vélbúnað, sem hefur afköst GPU. Við mælum með að stilla MSAA ekki hærra en 2x því meira hæðargildi mun eyða meiri gpu notkun.

  • Fyrir innfædda forritara, MSAA OpenGL ES exsample getur vísað til þessa; MSAA Vulkan fyrrvampler getur vísað til þessa.
    Adreno GPU veitir framlengingu sem hámarkar MSAA.
  • Fyrir Unity forritara, vísið til þessa klæða.
  • Fyrir forritara í Unreal, vinsamlegast skoðið þetta klán. Unreal býður einnig upp á eftirvinnslu með því að nota anti-aliasing, vinsamlegast skoðið þetta klán.

5.3 GMEM hleðsla/verslun
Í Adreno GPU arkitektúrnum er eiginleiki þar sem, þegar renderingarmarkmið er bundið, ef renderingarmarkmiðið hreinsast ekki eða ógilt, í hvert skipti sem flutningur á sér stað, eru gildin í Render Target hlaðin inn í grafíkminni, sem kallast GMEM Load. Ef fyrri gildi er ekki þörf, hreinsaðu eða ógiltu Render Target befaure flutningur, getur forðast þetta ástand til að bæta GPU árangur.
Þú getur forðast GMEM álag með því að nota eftirfarandi aðferðir. Í OpenGL ES, eftir að FBO hefur verið bundið, geturðu hringt í glClear og glClearDepth til að hreinsa Color, Depth og Stencil buffer, eða hringt í glInvalidateFramebuffer til að ógilda tilgreint Render Target. Í Vulkan eru viðbótarleiðbeiningar ekki nauðsynlegar; þú getur sérstaklega stillt hvort hreinsa eigi viðhengið fyrir notkun í VkAttachmentDescription.loadOp.
Að sama skapi er það að geyma útkomu flísar til baka í aðalminni úr grafíkminni kallað GMEM Store; þessi aðgerð er líka dýr fyrir GPU. Til að koma í veg fyrir þetta mælum við með því að binda aðeins nauðsynleg renderingarmarkmið til að koma í veg fyrir óþarfa verslunarrekstur.

5.4 Samsetningslag (Multi Layer)
Áferð sem sýnd er með Multi-Layer hefur betri sjónræn gæði. Hins vegar eykur þessi eiginleiki verulega afköst GPU með fjölda laga og stærð áferðanna. Við mælum með ekki yfir þremur lögum.

  • Fyrir innfæddan forritara,
    o VIVE Wave SDK notar WVR_SubmitFrameLayers til að senda inn gögn fyrir hvert lag.
    o VIVE OpenXR SDK setur laggögn í XrFrameEndInfo og sendir þau í gegnum xrEndFrame.
  • Fyrir Unity forritara,
    o Stillingar fyrir VIVE Wave SDK, sjá þessa handbók.
    o VIVE OpenXR stillingar, sjá þessa handbók.
  • Fyrir Unreal forritara,
    o Stillingar fyrir VIVE Wave SDK, sjá þessa handbók.
    o VIVE OpenXR stillingar, sjá þessa handbók.

5.5 örgjörva toppur
Þegar álag á örgjörvann er mikið, og sumir bakgrunnsvinnsluþræðir hafa háan forgang, gæti það truflað innfædda keyrslu. Við getum ekki ábyrgst að efnisforritið verði ekki truflað af öðrum þráðum.
Ef slík vandamál koma upp geturðu reynt að auka forgang þráðanna til að sjá hvort það leysi vandamálið. En ef þú breytir stillingum þráðanna til að fínstilla fyrir tæki þarftu að athuga hvort það hafi einhver neikvæð áhrif.

  • Fyrir Unity forritara, vísið til stillingaraðgerðar fyrir Android þráð. Ef þið notið VIVE Wave SDK, þá er til aðgerð í WaveXRSettings sem gerir ykkur kleift að stilla forganginn, eins og sýnt er á mynd 5-5-2. Lægra gildið táknar hærri forgang.

VIVE VR flutningsgeta - Mynd 7

  • Það er engin aðferð til að breyta forgangi leikþráðs, renderingþráðs og RHI þráðs í gegnum ytri stillingar nema þú breytir kóðanum í leiknum.

Höfundarréttur © 2024 HTC Corporation. Allur réttur áskilinnVIVE lógó

Skjöl / auðlindir

VIVE VR flutningur [pdfNotendahandbók
VR Rending Performance, Rendering Performance, Performance

Heimildir

Skildu eftir athugasemd

Netfangið þitt verður ekki birt. Nauðsynlegir reitir eru merktir *