VIVE logoPerfformiad Rendro VR
Tiwnio ac Optimeiddio

Rhagymadrodd

Mae cyflawni profiad VR gorau posibl ar galedwedd sydd ag adnoddau cyfyngedig yn allweddol i ddarparu profiad defnyddiwr llyfn a chyfforddus. Os yw cyfradd ffrâm rendro cynnwys yn gostwng neu'n ansefydlog islaw cyfradd adnewyddu'r ddyfais, bydd yn arwain at gryndod a stwtio'r ffrâm, salwch symud, ac ati, a fydd yn cael effaith negyddol yn y pen draw ar brofiad y defnyddiwr. Felly, mae optimeiddio perfformiad y cynnwys yn bwysig iawn er mwyn sicrhau profiad pleserus.
Cyn dechrau tiwnio perfformiad, mae'n bwysig deall ble mae'r tagfeydd perfformiad er mwyn osgoi tiwnio aneffeithlon. Mae'r ddogfen hon wedi'i chynllunio i helpu datblygwyr i nodi tagfeydd perfformiad a chynnig atebion i ddatrys y problemau perfformiad rendro.
Mae'r ddogfen wedi'i threfnu i'r adrannau canlynol:

  • Pennod 2: Nodi'r Tagfeydd – Mae'r adran hon yn cynorthwyo datblygwyr i nodi ble mae'r tagfeydd.
  • Pennod 3 a 4: Gosodiadau VIVE Wave a VIVE OpenXR – Mae'r adrannau hyn yn amlinellu gosodiadau penodol a all effeithio ar berfformiad CPU/GPU ar gyfer apiau VIVE Wave ac OpenXR. Gall datblygwyr arbrofi gyda galluogi neu analluogi'r nodweddion hyn yn seiliedig ar y tagfeydd perfformiad a wynebir i benderfynu a oes unrhyw welliant.
  • Pennod 5: Optimeiddio Cyffredin – Mae'r adran hon yn rhannu rhai arferion a phrofiadau optimeiddio cyffredin.

Adnabod y Tagfa

Pan fydd HMD yn symud, os oes gan yr ap VR/MR jitter ffrâm neu ymyl ddu, ac ati, mae fel arfer yn cael ei achosi gan broblem perfformiad rendro gwael. Yn nodweddiadol, gellir categoreiddio problemau perfformiad rendro yn 2 fath: wedi'u rhwymo gan y CPU neu wedi'u rhwymo gan y GPU. Mae deall pa fathau o rwymiadau ar gyfer eich ap yn bwysig iawn ar y dechrau er mwyn osgoi tiwnio aneffeithlon.
Yn y bennod hon, rydym yn darparu camau syml sy'n eich galluogi i nodi'n gyflym ble mae'r problemau perfformiad.

2.1 Gwirio FPS Rendro Cynnwys
Yn gyntaf, rydym yn dechrau trwy wirio'r FPS cynnwys, sef nifer y fframiau y mae'r cynnwys yn eu rendro yr eiliad. Dylid ei gynnal ar gyfradd fframiau'r arddangosfa a'i chadw'n sefydlog. Fel arall, gallai achosi cryndod ffrâm.
Os yw SDK eich cymhwysiad yn defnyddio VIVE WAVE SDK 6.0.0 neu'n ddiweddarach, gallwch ddefnyddio'r gorchymyn adb canlynol i wirio'r FPS. DK 6.0.0
$adb Logcat -s VRMetric
Fe welwch y data log canlynol.
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” Mae'r rhif cyntaf yn cynrychioli FPS y cynnwys, tra bod yr ail rif yn cynrychioli cyfradd fframiau'r arddangosfa.
Os yw fersiwn eich Wave SDK yn is na 6.0.0, argymhellir uwchraddio i'r fersiwn ddiweddaraf i wella perfformiad rendro ac optimeiddio eraill.
Os yw SDK eich cymhwysiad wedi'i adeiladu gyda VIVE OpenXR. Gallwch ddefnyddio'r gorchymyn adb canlynol i wirio'r FPS.
$adb Logcat -s RENDER_ATW
Fe welwch y data log canlynol
RENDER_ATW: [FPS] gwead newydd: 90.00
RENDER_ATW: [FPS] R presennol:90.00 hepgor:0 317, -0.0155 0.805527, 0.006788)
RENDER_ATW: [FPS] L yn bresennol: 90.00 sgip: 0 (0.592301, -0.015502, 0.805539, 0.006773)

Mae'r rhif sy'n dilyn "gwead newydd" yn cynrychioli FPS y cynnwys presennol. Mae'r rhif sy'n dilyn "R yn bresennol" ac "L yn bresennol" yn cynrychioli cyfradd fframiau'r arddangosfa.
Weithiau, efallai y bydd gwahaniaeth bach rhwng FPS y cynnwys a chyfradd fframiau'r arddangosfa.
Am gynample, yn yr achos uchod, gellir ystyried 89.8 FPS fel 90 FPS.
Os yw FPS cynnwys yr ap yn gyson is na chyfradd ffrâm yr arddangosfa neu'n parhau i fod yn ansefydlog, mae'n dynodi problem perfformiad rendro. Felly, y cam nesaf yw nodi a yw'r tagfa yn dod o'r CPU neu'r GPU.
2.2 Gwirio defnydd y CPU a'r GPU
Os yw SDK eich cymhwysiad yn defnyddio VIVE WAVE SDK 6.0.0 neu'n ddiweddarach, gallwch ddefnyddio'r gorchymyn adb canlynol i wirio'r FPS.
$adb logcat -s VRMetric
Fe welwch y data log canlynol.
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
Fel y gallwch weld yn y canlyniad log uchod, mae'r defnydd CPU yn 27% a'r defnydd GPU yn 72%. Os yw fersiwn eich Wave SDK islaw 6.0.0, argymhellir uwchraddio i'r fersiwn ddiweddaraf i wella perfformiad rendro ac optimeiddio eraill.
Ar gyfer yr ap VIVE OpenXR, gallwch ddefnyddio'r gorchymyn canlynol i wirio'r defnydd o'r CPU a'r GPU.
# ar linux/ubuntu
$ adb logcat | grep CPU_USAGE
# ar powershell
$ adb logcat | Dewis-Llinyn -Patrwm CPU_USAGE
Fe welwch y log canlynol
Cyfartaledd CPU CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7 GPU DEFNYDD_CPU [LLWYTHO] 25.67% 32.22% 25.29% 30.77% 29.35% 21.35% 22.09% 18.39% 24.14% 73%
Os byddwch chi'n sylwi nad yw'r FPS yn gallu cynnal cyfradd ffrâm yr arddangosfa a bod y defnydd o'r GPU hefyd yn uchel iawn, fel arfer yn fwy na 85%, gallwch chi geisio addasu Datrysiad y Clustog Llygaid (adran 3.1.2, adran 4.1.2) i weld a yw'n gwella FPS. Os yw'r addasiad hwn yn arwain at well
perfformiad, gallwn ddod i'r casgliad bod y broblem yn gysylltiedig â'r GPU a chanolbwyntio ein hymdrechion optimeiddio yn unol â hynny.
Ar y llaw arall, os nad yw addasu Datrysiad y Clustog Llygaid yn arwain at welliant perfformiad amlwg, mae'n debyg bod y tagfa'n gysylltiedig â'r CPU, a dylem ganolbwyntio ar optimeiddio perfformiad y CPU.
Mae hefyd yn bosibl bod y rhaglen wedi'i rhwymo i'r CPU a'r GPU ar yr un pryd. Mewn achosion o'r fath, dylid gwneud ymdrechion optimeiddio i'r CPU a'r GPU i gyflawni gwelliannau perfformiad cytbwys.
2.3 Wedi'i rwymo i'r GPU
Pan fydd ap VR wedi'i rwymo gan y GPU, mae'n golygu mai'r GPU yw'r prif dagfa, ac nid yw'n gallu cadw i fyny â gofynion rendro'r rhaglen. I liniaru problemau sy'n gysylltiedig â'r GPU, ystyriwch yr argymhellion canlynol:
Yn gyntaf, defnyddiwch offer proffilio fel RenderDoc neu Game Engine profiler (Unity Profiler, Unreal Insights) i ddadansoddi ble mae'r GPU yn treulio'r rhan fwyaf o'i amser. Nodwch y gweithrediadau mwyaf costus a chanolbwyntiwch ar eu optimeiddio.
Ar gyfer Datblygwr Brodorol, gallwch ddefnyddio RenderDoc i nodi pa alwad tynnu sy'n achosi llwyth GPU gormodol.
Ar gyfer Datblygwr Unity, gallwch ddilyn y ddogfen hon gan Unity neu ddefnyddio RenderDoc i ddadansoddi problem perfformiad rendro, a dilyn y ddogfennaeth optimeiddio graffeg Unity i gael canllawiau i optimeiddio'ch cymhwysiad.
Ar gyfer Unreal Developer, gallwch ddefnyddio GPU Visualizer neu ddefnyddio RenderDoc i ddadansoddi problem perfformiad rendro, a dilyn y Canllawiau Perfformiad Unreal i gael arweiniad i optimeiddio'ch cymhwysiad.
Yn ail, gallwch hefyd geisio addasu rhai nodweddion neu osodiadau Wave i leihau llwytho GPU.

  1. Gosod Cyfradd Adnewyddu'r Arddangosfa yn arafach (adran 3.1.1, adran 4.1.1)
  2.  Addasu Datrysiad y Clustog Llygaid (adran 3.1.2, adran 4.1.2), 14.1.1)
  3.  Ceisiwch alluogi Foveation (adran 3.1.4, adran 4.1.4).

Os yw eich ap hefyd yn ap MR, gallwch addasu'r gosodiadau Passthrough hefyd.

  1. Addaswch Ansawdd Delwedd Trwyddedu yn is. (adran 3.2.1)
  2. Addasu Cyfradd Ffrâm Passthrough yn arafach. (adran 3.2.2).

Am fwy o osodiadau eraill am berfformiad GPU, gallwch gyfeirio at Bennod 2.6.

2.4 Wedi'i rwymo gan y CPU
Pan fydd ap VR wedi'i rwymo gan y CPU, mae'n golygu mai'r CPU yw'r prif dagfa, ystyriwch yr argymhellion canlynol:
Yn gyntaf, defnyddiwch offer proffilio fel Systrace neu Game Engine profiler (Unity Profiler, Unreal Insights) i ddadansoddi a nodi pa rannau o'ch cod sy'n defnyddio'r mwyaf o adnoddau CPU. Canolbwyntiwch ar optimeiddio'r meysydd hyn ac ailffactorio algorithmau sy'n ddwys o ran cyfrifiadura i leihau llwyth y CPU.

  • Ar gyfer Datblygwr Brodorol, gallwch ddefnyddio Systrace i broffidiolifilear gyfer eich prosiect.
  • Ar gyfer Unity Developer, gallwch ddefnyddio CPU Usage Profilemodiwl r i ddod o hyd i broblem perfformiad CPU.
  • Ar gyfer Unreal Developer, gallwch ddefnyddio Unreal's Insights i ddod o hyd i broblem perfformiad CPU.

Yn ail, gallwch hefyd geisio addasu rhai nodweddion neu osodiadau Wave i leihau llwytho GPU.

  1. Gosod Cyfradd Adnewyddu'r Arddangosfa yn arafach (adran 3.1.1, adran 4.1.1)
  2.  Defnyddiwch Aml-View Rendro (adran 3.1.4, adran 4.1.4)

Os yw eich ap hefyd yn ap MR, gallwch addasu'r gosodiadau Passthrough hefyd.

  1. Addasu Cyfradd Ffrâm Passthrough yn arafach (adran 3.2.2).

Am fwy o osodiadau eraill am berfformiad CPU, gallwch gyfeirio at Bennod 2.6.

2.5 Crynodeb
Yn olaf, rydym wedi trefnu'r llif gwaith gwirio perfformiad uchod yn Ffigur 2-5-1. Dechreuwch trwy wirio FPS y cynnwys. Os yw'n is na chyfradd ffrâm yr arddangosfa neu'n parhau i fod yn ansefydlog, yna dadansoddwch y defnydd GPU/CPU i benderfynu a yw'n rhwym i GPU neu CPU. Yn olaf, defnyddiwch weithiwr proffesiynolfiler i nodi problemau perfformiad posibl neu addasu nodweddion neu osodiadau Wave i optimeiddio perfformiad CPU.

Perfformiad Rendro VIVE VR - Ffig 1

2.6 Cyfeirnod Cyflym Pa Gosodiadau All Wella Llwytho CPU/GPU

Rhestrwch osodiadau'r SDK sy'n gysylltiedig â llwytho'r CPU/GPU fel isod. Gallwch wirio'r gosodiadau optimeiddio perthnasol ar sail tagfeydd yr ap.

Yn gysylltiedig â CPU:

  • Gosodiad SDK VIVE Wave
    o Gynnwys VR
    ▪ 3.1.1 Cyfradd Adnewyddu'r Arddangosfa
    ▪ 3.1.4 Aml-View Rendro
    ▪ 3.1.6 Ansawdd Addasol
    ▪ 3.1.7 Cyfansoddwr Symudiad Addasol
    o Gynnwys MR
    ▪ 3.2.2 Addasu Cyfradd Ffrâm Trwyddedu
  • Gosodiad SDK OpenXR VIVE
    o Gynnwys VR
    ▪ 4.1.1 Cyfradd Adnewyddu'r Arddangosfa
    ▪ 4.1.4 Aml-View Rendro
  • Optimeiddio Cyffredin
    o 5.5 Pigyn CPU

Yn gysylltiedig â GPU:

  • Gosodiad SDK VIVE Wave
    o Gynnwys VR
    ▪ 3.1.1 Cyfradd Adnewyddu'r Arddangosfa
    ▪ 3.1.2 Datrysiad Clustogi Llygaid
    ▪ 3.1.3 Aml-View Rendro
    ▪ 3.1.4 Ffowiad
    ▪ 3.1.5 Gwella Miniogrwydd Ffrâm (FSE)
    ▪ 3.1.6 Ansawdd Addasol
    ▪ 3.1.7 Cyfansoddwr Symudiad Addasol
    ▪ 3.1.8 Mwgwd Rendro [Nid yw'n Cefnogi Unreal] o Gynnwys MR
    ▪ 3.2.1 Addasu Ansawdd Trwyddedu
    ▪ 3.2.2 Addasu Cyfradd Ffrâm Trwyddedu
  • Gosodiad SDK OpenXR VIVE
    o Gynnwys VR
    ▪ 4.1.1 Cyfradd Adnewyddu'r Arddangosfa
    ▪ 4.1.2 Datrysiad Clustogi Llygaid
    ▪ 4.1.3 Aml-View Rendro
    ▪ 4.1.4 Ffowiad [Nid yw'n Cefnogi Unreal] ▪ 4.1.5 Mwgwd Rendro [Nid yw'n Cefnogi Unreal]
  • Optimeiddio Cyffredin
    o 5.1 Diffoddwch y Modd Perfformiad Uchel
    o 5.2 Aml-symudiadauampling
    o 5.3 Llwytho/Storio GMEM
    o 5.4 Haen Cyfansoddi (Aml-Haen)

Gosodiad Ton VIVE

Mae VIVE Wave yn blatfform ac yn set offer agored sy'n eich galluogi i ddatblygu cynnwys VR yn hawdd ac yn darparu optimeiddio dyfeisiau perfformiad uchel ar gyfer partneriaid trydydd parti. Mae VIVE Wave yn cefnogi peiriannau gemau Unity ac Unreal.
Rydym yn optimeiddio ac yn datrys amryw o fygiau yn barhaus, felly rydym yn argymell cadw'r SDK yn gyfredol.
Ar hyn o bryd, dim ond OpenGL ES y mae VIVE Wave yn ei gefnogi. Dyma restr o'r nodweddion wedi'u trefnu yn ôl y dylanwad ar berfformiad GPU. Byddwn yn rhannu hyn yn ddwy ran: cynnwys VR a chynnwys MR.
3.1 Cynnwys VR
3.1.1 Cyfradd Adnewyddu'r Arddangosfa

Mae cyfraddau adnewyddu uwch yn cynnig delweddau llyfnach, ond maen nhw'n dod ar draul llwyth system cynyddol. I'r gwrthwyneb, mae cyfraddau adnewyddu is yn lleihau llwyth system, ond yn arwain at ddelweddau llai llyfn. Os oes gan yr Ap broblem sy'n gysylltiedig â'r CPU/GPU, gallwch geisio lleihau cyfradd adnewyddu'r arddangosfa i liniaru'r broblem.

  • Ar gyfer datblygwr Brodorol, cyfeiriwch at WVR_SetFrameRate.
  • Ar gyfer datblygwyr Unity, cyfeiriwch at y canllaw hwn.
  • Ar gyfer datblygwr Unreal, cyfeiriwch at y canllaw hwn.

3.1.2 Datrysiad Clustogi Llygaid
Datrysiad byffer llygaid yw maint y gwead y mae'r Ap cynnwys i'w rendro, bydd y gwead wedi'i rendro yn cael ei gyflwyno i'r amser rhedeg i wneud y broses bostio a'i gyflwyno ar arddangosfa HMD.
Er y gall maint byffer llygaid mwy arwain at ddelweddau cliriach a mwy manwl, mae hefyd yn rhoi baich sylweddol ar y GPU. Felly, mae dod o hyd i'r cydbwysedd cywir rhwng ansawdd gweledol a pherfformiad yn hanfodol.
Os oes gan yr Ap broblem rhwymo GPU, gallwch geisio lleihau maint y byffer llygaid trwy luosi ffactor graddfa. Fodd bynnag, rydym yn argymell peidio â lleihau'r ffactor graddfa islaw 0.7, gan y gallai hyn arwain at ansawdd gweledol annerbyniol.

  • Ar gyfer datblygwr Brodorol, cyfeiriwch at WVR_ObtainTextureQueue. Wrth addasu'r maint, dylech luosi'r lled a'r uchder â chymhareb.
  • Ar gyfer datblygwyr Unity, cyfeiriwch at Gosodiadau WaveXRS.
    Fel arall, gallwch wneud newidiadau trwy'r cod fel isod.
    XRSettings.eyeTextureResolutionScale = GwerthSgafnResolutionScale; // C#
  • Ar gyfer datblygwr Unreal, cyfeiriwch at SetPixelDensity.

3.1.3 Aml-View Rendro
Mewn rendro traddodiadol, rydym yn tynnu llun o'r llygaid chwith a dde ar wahân, sy'n gofyn am ddau alwad tynnu llun ar gyfer yr un olygfa.View Mae rendro yn mynd i'r afael â'r broblem hon trwy berfformio un alwad tynnu yn unig.
Mae'r nodwedd hon yn lleihau llwyth y CPU drwy leihau nifer y galwadau tynnu. Mae gan y GPU rai manteision hefyd, mae llwyth gwaith y cysgodwr fertig hefyd yn cael ei leihau gan nad oes angen iddo redeg cysgodwr ychwanegol ar gyfer y llygad arall, ond mae llwyth gwaith y cysgodwr darn yn aros yr un fath gan fod angen iddo werthuso pob picsel ar gyfer y ddau lygad o hyd. Rydym yn argymell galluogi'r nodwedd hon.

  • Ar gyfer datblygwr Brodorol, gallwch gyfeirio at wvr_native_hellovr sample.
  • Ar gyfer datblygwyr Unity, cyfeiriwch at y Modd Rendro, mae pas sengl yn aml-view nodwedd.
  • Ar gyfer datblygwr Unreal, cyfeiriwch at y canllaw hwn.

3.1.4 Ffowiad
Mae rendro wedi'i ffosio wedi'i gynllunio'n bennaf i leihau llwyth y GPU. Mae'n lleihau manylion y ffrâm ym mherfedd yr arddangosfa ac yn cynnal manylion cydraniad uchel yng nghanol y maes. viewOs oes gan yr Ap broblem gyda'r GPU, gallwch geisio galluogi rendro Foveation.

Perfformiad Rendro VIVE VR - Ffig 2

Mae yna bethau y mae angen eu sylwi wrth ddefnyddio foveation:

➢ Fel arfer, nid yw defnyddwyr yn sylwi ar y manylion llai mewn rhanbarthau ymylol wrth gymhwyso'r modd foveation diofyn. Ond os yw ansawdd ymylol y foveation wedi'i osod yn rhy isel, gallai ddod yn amlwg i'r defnyddiwr.
➢ Gall effeithiau ffoveation fod yn fwy amlwg gyda rhai deunyddiau neu weadau, a allai ddenu sylw'r defnyddiwr. Dylai datblygwyr fod yn ymwybodol o hyn a'i werthuso yn unol â hynny.
➢ Mae galluogi nodwedd rendro wedi'i ffocio yn golygu cost perfformiad GPU sefydlog, a all amrywio rhwng 1% a 6% yn dibynnu ar faint y byffer llygad. Wrth ddefnyddio cysgodwr syml yn yr olygfa, gallai'r enillion perfformiad o arbed adnoddau fod yn is na chost perfformiad GPU sefydlog, gan arwain at ostyngiad mewn perfformiad.

  • Ar gyfer datblygwyr Brodorol, cyfeiriwch at y canllaw hwn.
  • Ar gyfer datblygwyr Unity, cyfeiriwch at y canllaw hwn. Yn arbennig, pan fyddwch chi'n galluogi ôl-brosesu neu HDR, ni ellir defnyddio foveation yn llawn. Oherwydd bydd Unity yn rendro gwrthrychau ar ei wead rendro a gynhyrchwyd ei hun, yn hytrach na gwead rendro'r presennol a gynhyrchwyd yn ystod amser rhedeg sy'n cefnogi foveation.
  • Ar gyfer datblygwyr Unreal, cyfeiriwch at y canllaw hwn. Yn arbennig, ni ellir defnyddio foveation yn llawn ar Multi-View Rendro, oherwydd na all Unreal rendro gwrthrychau'n uniongyrchol ar y gwead rendro a gynhyrchir yn ystod amser rhedeg sy'n cefnogi foveation.

3.1.5 Gwella Mynegiant Ffrâm (FSE)
Mae'r FSE yn darparu canlyniad rendro miniog trwy gyflwyno hidlydd miniog, gall wneud cynnwys yn gliriach a bod yn eithaf defnyddiol ar gyfer gwella eglurder y testun yn yr olygfa. Os oes gan yr ap broblem rhwymo GPU, gallwch ystyried analluogi FSE os nad yw'n hanfodol.

Perfformiad Rendro VIVE VR - Ffig 3

  • Ar gyfer datblygwyr Brodorol, cyfeiriwch at y canllaw hwn.
  • Ar gyfer datblygwyr Unity, cyfeiriwch at y canllaw hwn.
  • Ar gyfer datblygwr Unreal, cyfeiriwch at y canllaw hwn.

3.1.6 Ansawdd Addasol
Er mwyn arbed batri a chynnal perfformiad rendro'r ddyfais, mae'r nodwedd hon yn addasu lefelau perfformiad cloc y CPU/GPU yn awtomatig yn seiliedig ar eu defnydd. Yn ogystal, gellir gweithredu strategaethau eraill i wella perfformiad, megis galluogi/analluogi Foveation yn awtomatig neu gall cynnwys addasu ei hun os yw'n derbyn digwyddiadau llwyth uchel/isel.

  • Ar gyfer datblygwyr Brodorol, cyfeiriwch at y canllaw hwn.
  • Ar gyfer datblygwyr Unity, cyfeiriwch at y canllaw hwn. Yn ein ategyn Unity, gellir addasu maint y byffer llygad yn awtomatig yn seiliedig ar berfformiad cyfredol; Bydd maint y testun yn hidlo gwerthoedd graddfa sy'n rhy fach yn y rhestr Datrysiad. Rydym yn argymell testun o leiaf 20 dmm neu fwy o ran maint.
  • Ar gyfer datblygwr Unreal, cyfeiriwch at y canllaw hwn.

3.1.7 Cyfansoddwr Symudiad Addasol
Mae'r nodwedd hon yn nodwedd arbrofol sy'n cynnwys UMC a PMC. Bydd UMC yn lleihau'r Gyfradd Ffrâm o hanner ac yn allosod ffrâm newydd mewn amser real i gadw llyfnder gweledol. Fodd bynnag, mae'n dod gyda rhywfaint o oedi, arteffactau a llwytho GPU.
Mae PMC yn bennaf yn defnyddio'r Byffer Dyfnder i ganiatáu i ATW ystyried cyfieithu HMD, gan ymestyn i iawndal 6-dof. Gall y nodwedd hon leihau'r hwyrni cyfieithu 1~2 ffrâm, ond cynyddu llwytho GPU.

  • Ar gyfer datblygwyr Brodorol, cyfeiriwch at y canllaw hwn.
  • Ar gyfer datblygwyr Unity, cyfeiriwch at y canllaw hwn.
  • Ar gyfer datblygwr Unreal, cyfeiriwch at y canllaw hwn.

3.1.8 Mwgwd Rendro [Nid yw'n Cefnogi Unreal]
Mae picseli ar yr ymylon bron yn anweledig ar ôl ystumio, mae'r mwgwd rendro yn addasu gwerthoedd byffer dyfnder y picseli anweledig hyn. Os ydych chi'n galluogi profi dyfnder, oherwydd early-z, ni fydd y picseli anweledig hyn yn cael eu rendro, a thrwy hynny'n lleihau llwyth y GPU. Mae'r nodwedd hon yn ddefnyddiol os oes gwrthrychau rendro sy'n llwytho'n drwm yn yr ardaloedd anweledig hyn; fel arall, os nad oes gwrthrychau rendro yn yr ardaloedd hyn, argymhellir ei analluogi oherwydd bydd yn defnyddio defnydd GPU bach.

  • Ar gyfer datblygwyr Brodorol, cyfeiriwch at y canllaw hwn. Rhaid i chi rwymo'r byffer dyfnder cyn galw RenderMask; fel arall, bydd yn aneffeithiol.
  • Ar gyfer datblygwyr Unity, cyfeiriwch at y canllaw hwn.
  • Ar gyfer datblygwr Unreal, nid yw'n cefnogi'r nodwedd Mwgwd Rendro ar hyn o bryd.

3.2 Cynnwys MR
3.2.1 Addasu Ansawdd Trwyddedu
Mae 3 lefel ar gyfer ansawdd delwedd pasio drwodd:
➢ WVR_PassthroughImageQuality_DefaultMode – addas ar gyfer y cynnwys MR heb y galw penodol.
➢ WVR_PassthroughImageQuality_PerformanceMode – addas ar gyfer y cynnwys MR sydd angen mwy o adnoddau GPU ar gyfer rendro golygfeydd rhithwir.
➢ WVR_PassthroughImageQuality_QualityMode – addas ar gyfer cynnwys MR sy'n caniatáu i'r defnyddwyr weld yr amgylchedd cyfagos yn glir, ond rhaid i olygfa rithwir y cynnwys gael ei mireinio'n fwy manwl ar gyfer perfformiad.
Gallwch addasu ansawdd Passthrough i PerformanceMode i leihau'r defnydd o GPU.

  • Ar gyfer datblygwyr Native, Uunity neu Unreal, cyfeiriwch at y canllaw hwn.

3.2.2 Addasu Cyfradd Ffrâm Trwyddedu
Fel cyfradd adnewyddu'r Arddangosfa, mae cyfradd ffrâm Passthrough uwch yn cynnig delweddau llyfnach, ond mae'n dod ar draul llwyth system cynyddol. I'r gwrthwyneb, mae cyfraddau adnewyddu is yn lleihau llwyth system, ond yn arwain at ddelweddau llai llyfn. Mae 2 ddull o gyfradd ffrâm passthrough: Boost a Normal.

  • Ar gyfer datblygwyr Brodorol, gall addasu ansawdd y pasio drwodd gan ddefnyddio'r WVR_SetPassthroughImageRate.
  • Ar gyfer datblygwr Unity, gall newid trwy god, e.e.ampmae'r gosodiadau fel a ganlyn // C#
    Interop.WVR_SetPassthroughImageQuality(WVR_PassthroughImageQuality.PerformanceMode);
  • Ar gyfer y datblygwr Unreal, gweler y nod glasbrint yn Ffigur 3-2-2 ar gyfer y dull gosod.

Perfformiad Rendro VIVE VR - Ffig 4

Gosodiad VIVE OpenXR

Safon agored yw OpenXR sy'n darparu set gyffredin o APIs ar gyfer datblygu cymwysiadau XR sy'n rhedeg ar draws ystod eang o ddyfeisiau VR, a ddatblygwyd gan y Khronos Group. Mae'r VIVE Focus 3 a'r VIVE XR Elite hefyd yn cefnogi OpenXR, mae SDK VIVE OpenXR yn darparu cefnogaeth gynhwysfawr ar gyfer dyfeisiau VR HTC, gan ganiatáu i ddatblygwyr adeiladu All-in-One a chynnwys gydag injan Unity ac Unreal ar ddyfeisiau VR HTC. Rydym yn optimeiddio ac yn datrys amryw o fygiau yn barhaus, felly argymhellir bod datblygwyr yn diweddaru fersiwn FOTA eu dyfais i'w chadw'n gyfredol. Ar hyn o bryd, mae SDK VIVE OpenXR yn cefnogi OpenGL ES a Vulkan.

4.1 Cynnwys VR
4.1.1 Cyfradd Adnewyddu'r Arddangosfa
Mae'r cysyniad yma'n debyg i Gyfradd Adnewyddu Arddangosfa 3.1.1.

  • Ar gyfer datblygwr Brodorol, cyfeiriwch at XrEventDataDisplayRefreshRateChangedFB.
  • Ar gyfer datblygwyr Unity, cyfeiriwch at y canllaw hwn.
  • Ar gyfer datblygwr Unreal, cyfeiriwch at y canllaw hwn.

4.1.2 Datrysiad Clustogi Llygaid
Mae'r cysyniad yma'n debyg i Resolution Eyebuffer 3.1.2. Rydym yn argymell peidio â lleihau'r ffactor graddfa islaw 0.7, gan y gallai hyn arwain at ansawdd gweledol annerbyniol.

  • Ar gyfer datblygwyr Brodorol, cyfeiriwch at xrCreateSwapchain. Wrth addasu'r maint, dylech luosi'r lled a'r uchder â chymhareb.
  • Ar gyfer datblygwr Unity, cyfeiriwch at yr enghraifft ganlynolample // C#
    XRSettings.eyeTextureResolutionScale = 0.7f; //argymhellir 1.0f~0.7f
  • Am osodiadau Anreal, cyfeiriwch at y canllaw hwn.

4.1.3 Aml-View Rendro
Mae'r cysyniad yma'n debyg i 3.1.3 Multi-View Rendro. Mae'r nodwedd hon yn lleihau'r llwyth ar y CPU, mae gan y GPU rai manteision hefyd. Rydym yn argymell galluogi'r nodwedd hon.

  • Ar gyfer datblygwyr Brodorol, mae KhronosGroup yn darparu OpenXR Multi-View example, cyfeiriwch at y canllaw hwn.
  • Ar gyfer datblygwyr Unity, cyfeiriwch at y Modd Rendro, mae pas sengl yn aml-view nodwedd.
  • Ar gyfer datblygwr Unreal, fel gyda gosodiadau VIVE Wave, cyfeiriwch at y canllaw hwn.

4.1.4 Foveation [Heb ei gefnogi'n afreal]
Mae'r cysyniad yma'n debyg i 3.1.4 Foveation. Mae rendro Foveated wedi'i gynllunio'n bennaf i leihau llwyth y GPU ond bydd ei alluogi yn arwain at gost perfformiad GPU sefydlog ac os yw foveation wedi'i osod yn rhy isel a bod rhai deunyddiau neu weadau'n cael eu defnyddio, gall ddod yn beth hynod ...
yn amlwg i'r defnyddiwr. Felly, mae'n ddoeth galluogi neu analluogi'r nodwedd yn seiliedig ar eich gofynion penodol a'ch ystyriaethau perfformiad. Ar hyn o bryd, dim ond yn OpenGL ES ar VIVE OpenXR SDK y cefnogir swyddogaeth Foveated.

  • Ar gyfer datblygwyr Brodorol, mae'r nodwedd hon ar gael, ond ar hyn o bryd, dim exampdarperir les.
  • Ar gyfer datblygwyr Unity, cyfeiriwch at y canllaw hwn.
  • Ar gyfer datblygwr Unreal, nid yw'n cefnogi'r nodwedd hon ar hyn o bryd.

4.1.5 Mwgwd Rendro [Nid yw'n Cefnogi Unreal]
Mae'r cysyniad yma'n debyg i 3.1.8 Render Mask.

  • Ar gyfer datblygwr Brodorol, defnyddiwch XrVisibilityMaskKHR i gael y Rhwyll. Cyn rendro'r olygfa, defnyddiwch y Rhwyll hon i boblogi'r gwerthoedd byffer dyfnder cyn rendro'r olygfa.
  • I ddatblygwyr Unity, mae'r nodwedd Mwgwd Rendro wedi'i galluogi yn ddiofyn ar gyfer OpenGL ES, a gellir ei hanalluogi gyda'r cod canlynol; Ar hyn o bryd nid yw Vulkan yn cefnogi'r nodwedd hon. //C# UnityEngine.XR.XRSettings.occlusionMaskScale = 0.0f;
  • Ar gyfer datblygwr Unreal, nid yw'n cefnogi'r nodwedd Mwgwd Rendro ar hyn o bryd.

4.2 Cynnwys MR
Ar hyn o bryd nid yw OpenXR yn cefnogi gosod Ansawdd Trwydded a Chyfradd Ffrâm. Byddwn yn parhau i optimeiddio a thrwsio'r nodwedd Trwydded, felly argymhellir bod datblygwyr yn diweddaru fersiwn FOTA'r ddyfais i'w chadw'n gyfredol.

Optimeiddio Cyffredin

5.1 Diffoddwch y Modd Perfformiad Uchel
Gall diffodd “Modd perfformiad uchel” leihau maint arddangos y ddyfais, a thrwy hynny leihau'r defnydd o'r GPU. Yr anfantais yw gostyngiad yn y datrysiad sgrin. Gallwch chi gydbwyso ansawdd a pherfformiad i benderfynu a ddylid ei alluogi.
Dangosir lleoliad gosod VIVE Focus 3 yn Ffigur 5-1-1:

Perfformiad Rendro VIVE VR - Ffig 5

Dangosir lleoliad gosod VIVE XR Elite yn Ffigur 5-1-2:

Perfformiad Rendro VIVE VR - Ffig 6

5.2 AmlampGwrth-Aliasio
AmlampMae ling yn dechneg gwrth-aliasio a ddefnyddir i lyfnhau ymylon danheddog, fel arfer caiff ei chyflymu trwy galedwedd, sy'n achosi cost perfformiad GPU. Rydym yn argymell peidio â gosod MSAA yn uwch na 2x oherwydd bydd gwerth uwch yn defnyddio mwy o GPU.

  • Ar gyfer datblygwr Brodorol, MSAA OpenGL ES exsampGall gyfeirio at hyn; MSAA Vulkan exampGall ler gyfeirio at hyn.
    Mae'r GPU Adreno yn darparu estyniad sy'n optimeiddio MSAA.
  • Ar gyfer datblygwr Unity, cyfeiriwch at yr urdd hon.
  • Am ddatblygwyr Unreal, cyfeiriwch at yr urdd hon. Mae Unreal hefyd yn darparu gwrth-aliasio ôl-brosesu, cyfeiriwch at yr urdd hon.

5.3 Llwytho/Storio GMEM
Yn y bensaernïaeth GPU Adreno, mae nodwedd lle, wrth rwymo Targed Rendro, os nad yw'r Targed Rendro yn clirio neu'n annilysu, bob tro y bydd rendro yn digwydd, mae'r gwerthoedd yn y Targed Rendro yn cael eu llwytho i'r Cof Graffeg, a elwir yn Llwytho GMEM. Os nad oes angen y gwerthoedd blaenorol, gall clirio neu annilysu'r Targed Rendro cyn rendro osgoi'r sefyllfa hon i wella perfformiad GPU.
Gallwch osgoi Llwyth GMEM gan ddefnyddio'r dulliau canlynol. Yn OpenGL ES, ar ôl rhwymo'r FBO, gallwch alw glClear a glClearDepth i glirio byffer Lliw, Dyfnder, a Stensil, neu alw glInvalidateFramebuffer i annilysu'r Targed Rendro penodedig. Yn Vulkan, nid oes angen cyfarwyddiadau ychwanegol; gallwch osod yn benodol a ddylid clirio'r atodiad cyn ei ddefnyddio yn VkAttachmentDescription.loadOp.
Yn yr un modd, gelwir storio canlyniad Rendro Teils yn ôl i'r Prif Gof o'r Cof Graffeg yn Storfa GMEM; mae'r llawdriniaeth hon hefyd yn ddrud i'r GPU. Er mwyn osgoi hyn, rydym yn argymell rhwymo'r Targedau Rendro gofynnol yn unig i atal gweithrediadau Storfa diangen.

5.4 Haen Cyfansoddi (Aml-Haen)
Mae gan weadau a ddangosir gan ddefnyddio Aml-Haen ansawdd gweledol gwell. Fodd bynnag, mae'r nodwedd hon yn cynyddu perfformiad GPU yn sylweddol gyda nifer yr haenau a maint y gweadau. Rydym yn argymell peidio â defnyddio mwy na thair haen.

  • Ar gyfer datblygwr Brodorol,
    Mae SDK VIVE Wave yn defnyddio WVR_SubmitFrameLayers i basio data i mewn ar gyfer pob haen.
    Mae SDK OpenXR VIVE yn gosod data haen yn XrFrameEndInfo ac yn ei gyflwyno drwy xrEndFrame.
  • Ar gyfer datblygwr Unity,
    o osodiadau VIVE Wave SDK, cyfeiriwch at y canllaw hwn,
    o osodiadau VIVE OpenXR, cyfeiriwch at y canllaw hwn.
  • Ar gyfer datblygwr Unreal,
    o osodiadau VIVE Wave SDK, cyfeiriwch at y canllaw hwn.
    o osodiadau VIVE OpenXR, cyfeiriwch at y canllaw hwn.

Pigau CPU 5.5
Pan fydd llwyth y CPU yn drymach, a bod gan rai edafedd prosesu cefndir flaenoriaeth uchel, gallai hynny amharu ar y gweithrediad brodorol. Ni allwn warantu na fydd edafedd eraill yn amharu ar y Rhaglen Cynnwys.
Os bydd problemau o'r fath yn codi, gallwch geisio cynyddu blaenoriaeth yr edau i weld a yw'n datrys y broblem. Ond os byddwch chi'n newid ffurfweddiad yr edau i optimeiddio ar gyfer dyfeisiau, mae angen i chi wirio a oes gan hyn unrhyw effaith negyddol.

  • Ar gyfer Datblygwr Unity, cyfeiriwch at nodwedd ffurfweddu edau Android. Os ydych chi'n defnyddio'r VIVE Wave SDK, mae gennym nodwedd yn WaveXRSettings sy'n eich galluogi i addasu'r flaenoriaeth, fel y dangosir yn Ffigur 5-5-2. Mae'r gwerth llai yn cynrychioli blaenoriaeth uwch.

Perfformiad Rendro VIVE VR - Ffig 7

  • Anreal dim dull i newid blaenoriaeth edau'r gêm, yr edau rendro a'r edau RHI trwy osodiadau allanol oni bai eich bod yn addasu cod yr injan.

Hawlfraint © 2024 HTC Corporation. Cedwir pob hawl.VIVE logo

Dogfennau / Adnoddau

Perfformiad Rendro VIVE VR [pdfCanllaw Defnyddiwr
Perfformiad Rendro VR, Perfformiad Rendro, Perfformiad

Cyfeiriadau

Gadael sylw

Ni fydd eich cyfeiriad e-bost yn cael ei gyhoeddi. Mae meysydd gofynnol wedi'u marcio *