VIVE logoVR Kupa Kuita
Tunning uye Optimizations

Nhanganyaya

Kuwana yakakwana yeVR chiitiko pane zviwanikwa-zvishoma Hardware kiyi yekuunza yakatsetseka uye yakagadzika mushandisi ruzivo. Kana iyo furemu yehuwandu inopa inodonha kana isina kugadzikana pazasi peyero yekumutsiridza mudziyo, zvinotungamira kune furemu mutongi uye stutting, zvirwere zvinofamba, nezvimwe,. pakupedzisira kukanganisa mushandisi ruzivo. Naizvozvo, kukwenenzvera kuita kwemukati kwakakosha kwazvo pakuona chiitiko chinonakidza.
Usati watanga kuita tuning, zvakakosha kuti unzwisise kuti mabhodhoro ekuita ndeapi kudzivirira kusaita tunning. Gwaro iri rakagadzirirwa kubatsira vanogadzira kuona mabhodhoro ekuita uye kupa mhinduro dzekugadzirisa nyaya dzekuita.
Gwaro rakarongwa muzvikamu zvinotevera:

  • Chitsauko 2: Ziva Bottleneck - Ichi chikamu chinobatsira vanogadzira pakuona panowanikwa mabhodhoro.
  • Chitsauko 3 ne4: VIVE Wave uye VIVE OpenXR Settings - Izvi zvikamu zvinotsanangura marongero chaiwo anogona kukanganisa CPU/GPU kuita kweVIVE Wave uye OpenXR maapplication. Vagadziri vanogona kuyedza kugonesa kana kudzima maficha aya zvichienderana nemabhodhoro ekuita anosanganikwa nawo kuti vaone kana paine gadziriso.
  • Chitsauko 5: Common Optimization - Ichi chikamu chinogovera mamwe maitiro akajairwa ekugadzirisa uye zviitiko.

Ziva The Bottleneck

Kana HMD ichifamba, kana iyo VR/MR app ine furemu jitter kana dema mupendero, nezvimwewo, kazhinji inokonzereswa nekuipa kwekupa kuita basa. Kazhinji, kupa matambudziko ekuita kunogona kuiswa mumhando mbiri: CPU-yakasungwa kana GPU-yakasungwa. Nzwisisa kuti ndedzipi mhando dzekusungirwa kuapp yako dzakanyanya kukosha pakutanga kudzivirira kusaita tunning.
Muchitsauko chino, tinopa nhanho dziri nyore dzinoita kuti iwe uone nekukurumidza kuti nyaya dzekuita dziripi.

2.1 Tarisa Zvemukati Kupa FPS
Chekutanga, isu tinotanga nekutarisa zvirimo FPS iyo nhamba yemafuremu anopihwa nesekondi. Inofanirwa kuchengetedzwa kune yekuratidzira framerate uye kuchengetwa yakatsiga. Zvikasadaro, zvinogona kukonzera furemu jitters.
Kana yako application SDK iri kushandisa VIVE WAVE SDK 6.0.0 kana gare gare, unogona kushandisa inotevera adb kuraira kutarisa FPS. DK 6.0.0
$adb Logcat -s VRMetric
Iwe uchaona inotevera log data.
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" Nhamba yekutanga inomiririra zvirimo muFPS, nepo yechipiri ichimiririra ratidziro.
Kana yako Wave SDK vhezheni iri pazasi 6.0.0, zvinokurudzirwa kukwidziridza kune yazvino vhezheni kuti uwedzere kuita kwekupa uye kumwe optimization.
Kana yako application SDK yakavakwa neVIVE OpenXR. Iwe unogona kushandisa inotevera adb kuraira kutarisa FPS.
$adb Logcat -s RENDER_ATW
Iwe uchaona inotevera log data
RENDER_ATW: [FPS] chimiro chitsva:90.00
RENDER_ATW: [FPS] R present:90.00 skip:0 317, -0.0155 0.805527, 0.006788)
RENDER_ATW: [FPS] L present:90.00 skip:0 (0.592301, -0.015502, 0.805539, 0.006773)

Nhamba inotevera "manyorerwo matsva" inomiririra parizvino zvirimo FPS. Nhamba inotevera "R iripo" uye "L iripo" inomiririra kuratidza framerate.
Dzimwe nguva, iyo yemukati FPS uye yekuratidzira framerate inogona kunge iine mutsauko mudiki.
For example, munyaya iri pamusoro, 89.8 FPS inogona kuonekwa se90 FPS.
Kana zvirimo zvemuapp FPS zvichiramba zvakadzikira pane yekuratidzira framerate kana kuramba isina kugadzikana, inoratidza basa rekupa basa. Naizvozvo, danho rinotevera nderekuona kuti bhodhoro riri kuuya kubva kuCPU kana GPU.
2.2 Tarisa mashandisirwo eCPU uye GPU
Kana yako application SDK iri kushandisa VIVE WAVE SDK 6.0.0 kana gare gare, unogona kushandisa inotevera adb kuraira kutarisa FPS.
$adb logcat -s VRMetric
Iwe uchaona inotevera log data.
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
Sezvauri kuona mumhedzisiro yelog iri pamusoro, kushandiswa kweCPU i27% uye kushandiswa kweGPU kuri 72% Kana yako Wave SDK vhezheni iri pazasi 6.0.0, zvinokurudzirwa kukwidziridza kune yazvino vhezheni kuti uwedzere kuita kwekupa uye kumwe optimization.
Kune VIVE OpenXR app, unogona kushandisa unotevera kuraira kutarisa CPU uye GPU kushandiswa.
# pane linux/ubuntu
$ adb logcat | grep CPU_USAGE
# pane powershell
$ adb logcat | Sarudza-Tring -Pattern CPU_USAGE
Iwe uchaona chinyorwa chinotevera
CPU Avg. CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7 GPU CPU_USAGE [LOAD] 25.67% 32.22% 25.29% 30.77% 29.35% 21.35% 22.09% 18.39% 24.14% 73 %
Kana iwe ukaona kuti FPS haigoni kuchengetedza chiyero chekuratidzira uye kushandiswa kweGPU zvakare kwakanyanya, kazhinji kunodarika 85%, unogona kuedza kugadzirisa Eyebuffer Resolution (chikamu 3.1.2, chikamu 4.1.2) kuti uone kana ichivandudza FPS. Kana kugadzirisa uku kunotungamirira kune nani
kuita, tinogona kugumisa kuti nyaya iri GPU-yakasungwa uye totarisa kuedza kwedu kwekugadzirisa zvinoenderana.
Kune rimwe divi, kana kugadzirisa iyo Eyebuffer Resolution isingaite inocherekedza mashandiro ekuvandudza, iyo bhodhoro ingangove CPU-yakasungwa, uye isu tinofanirwa kutarisa pakugadzirisa CPU kuita.
Izvo zvakare zvinogoneka kuti iyo application ndeye CPU-yakasungwa uye GPU-yakasungwa panguva imwe chete. Mumamiriro ezvinhu akadai, kuedza kwekugadzirisa kunofanirwa kuiswa kune ese CPU neGPU kuti iwane yakaenzana mashandiro ekuvandudza.
2.3 GPU-yakasungwa
Kana VR app iri GPU-yakasungwa, zvinoreva kuti GPU ndiyo yekutanga bhodhoro, uye haikwanise kuenderana nekupa zvinodikanwa zvechikumbiro. Kuti uderedze nyaya dzakasungwa neGPU, funga zvinotevera kurudziro:
Kutanga, shandisa maturusi ekunyora seRenderDoc kana Game Engine profiler (Unity Profiler, Unreal Insights) kuongorora uko iyo GPU iri kushandisa yakawanda yenguva yayo. Ziva mashandiro anodhura zvakanyanya uye tarisa pakuagonesa.
Kune Native Developer, unogona kushandisa RenderDoc kuona kuti ndeipi dhiraivha iri kukonzera yakawandisa GPU mutoro.
Kune Unity Developer, unogona kutevera Unity gwaro iri kana kushandisa RenderDoc kuongorora kupa basa rekuita, uye kutevedzera Unity graphics optimization zvinyorwa zvekutungamira kukwirisa application yako.
Kune Unreal Developer, unogona kushandisa GPU Visualizer kana kushandisa RenderDoc kuongorora kupa mashandiro ekuita, uye kutevedzera Unreal Performance Guidelines yekutungamira kukwirisa application yako.
Chechipiri, iwe unogona zvakare kuedza kugadzirisa mamwe maWave maficha kana marongero kudzikisa kurodha kweGPU.

  1. Seta Ratidzo Yekuzorodza inononoka (chikamu 3.1.1, chikamu 4.1.1)
  2.  Rongedza Eyebuffer Resolution (chikamu 3.1.2, chikamu 4.1.2), 14.1.1)
  3.  Edza kugonesa Foveation (chikamu 3.1.4, chikamu 4.1.4).

Kana app yako iri zvakare MR app, unogona kugadzirisa Passthrough marongero zvakare.

  1. Gadzirisa Passthrough Image Quality yakaderera. (chikamu 3.2.1)
  2. Gadzirisa Passthrough Framerate zvishoma nezvishoma. (chikamu 3.2.2).

Kuti uwane mamwe marongero nezvekuita kweGPU, unogona kureva Chitsauko 2.6.

2.4 CPU-yakasungwa
Kana VR app iri CPU-yakasungwa, zvinoreva kuti CPU ndiyo yekutanga bhodhoro, funga zvinotevera kurudziro:
Kutanga, shandisa maturusi ekunyora seSystrace kana Game Injini profiler (Unity Profiler, Unreal Insights) kuongorora uye kuona kuti ndezvipi zvikamu zvekodhi yako zviri kushandisa zvakanyanya CPU zviwanikwa. Tarisa pakugadzirisa nzvimbo idzi uye refactor computationally yakadzika algorithms kuderedza CPU mutoro.

  • YeNative Developer, unogona kushandisa Systrace kuita profiler chirongwa chako.
  • Kune Unity Developer, unogona kushandisa CPU Usage Profiler module yekutsvaga CPU performance issue.
  • Kune Unreal Developer, unogona kushandisa Unreal's Insights kuwana CPU performance issue.

Chechipiri, iwe unogona zvakare kuedza kugadzirisa mamwe maWave maficha kana marongero kudzikisa kurodha kweGPU.

  1. Seta Ratidzo Yekuzorodza inononoka (chikamu 3.1.1, chikamu 4.1.1)
  2.  Shandisa Multi-View Kupa (chikamu 3.1.4, chikamu 4.1.4)

Kana app yako iri zvakare MR app, unogona kugadzirisa Passthrough marongero zvakare.

  1. Gadzirisa Passthrough Framerate zvishoma nezvishoma (chikamu 3.2.2).

Kuti uwane mamwe marongero nezve CPU mashandiro, unogona kureva Chitsauko 2.6.

2.5 Pfupiso
Chekupedzisira, isu takaronga iri pamusoro pekuita kutarisa mafambiro muFigure 2-5-1. Tanga nekutarisa zviri mukati FPS. Kana yakadzikira pane yekuratidzira framerate kana kuramba isina kugadzikana, wobva waongorora mashandisirwo eGPU/CPU kuti uone kana iri GPU-yakasungwa kana CPUbound. Pakupedzisira, shandisa profiler kuona zvingangoitika nyaya dzekuita kana kugadzirisa maWave maficha kana marongero kuti ukwidze mashandiro eCPU.

VIVE VR Kupa Kuita - Fig 1

2.6 Kurumidza Reference Ndeapi Maseting Anogona Kuvandudza CPU/GPU kurodha

Nyora marongero eSDK ane hukama neCPU/GPU kurodha sepazasi. Iwe unogona kuve wakavakirwa pabhodhoro reapp kuti utarise akakodzera optimization marongero.

Zvinoenderana neCPU:

  • VIVE Wave SDK Setting
    o VR Zvemukati
    ▪ 3.1.1 Ratidza Refresh Rate
    ▪ 3.1.4 Multi-View Rendering
    ▪ 3.1.6 Adaptive Quality
    ▪ 3.1.7 Adaptive Motion Compositor
    o MR Zvemukati
    ▪ 3.2.2 Gadzirisa Passthrough Frame Rate
  • VIVE OpenXR SDK Setting
    o VR Zvemukati
    ▪ 4.1.1 Ratidza Refresh Rate
    ▪ 4.1.4 Multi-View Rendering
  • Common Optimization
    o 5.5 CPU Spike

Zvinoenderana neGPU:

  • VIVE Wave SDK Setting
    o VR Zvemukati
    ▪ 3.1.1 Ratidza Refresh Rate
    ▪ 3.1.2 Eyebuffer Resolution
    ▪ 3.1.3 Multi-View Rendering
    ▪ 3.1.4 Foveation
    ▪ 3.1.5 Frame Sharpness Enhancement (FSE)
    ▪ 3.1.6 Adaptive Quality
    ▪ 3.1.7 Adaptive Motion Compositor
    ▪ 3.1.8 Render Mask [Not Support Unreal] o MR Zvirimo
    ▪ 3.2.1 Gadzirisa Kupfuura Hunhu
    ▪ 3.2.2 Gadzirisa Passthrough Frame Rate
  • VIVE OpenXR SDK Setting
    o VR Zvemukati
    ▪ 4.1.1 Ratidza Refresh Rate
    ▪ 4.1.2 Eyebuffer Resolution
    ▪ 4.1.3 Multi-View Rendering
    ▪ 4.1.4 Foveation [Not Support Unreal] ▪ 4.1.5 Render Mask [Not Support Unreal]
  • Common Optimization
    o 5.1 Dzima Yepamusoro Performance Modhi
    o 5.2 Multisampling
    o 5.3 GMEM Mutoro/Chitoro
    o 5.4 Maumbirwo Layer (Multi Layer)

VIVE Wave Setting

VIVE Wave ipuratifomu yakavhurika uye chishandiso chinokutendera iwe kuvandudza zviri nyore VR zvemukati uye inopa yakakwirira-inoshanda mudziyo optimization kune wechitatu-bato vanobatika. VIVE Wave inotsigira Kubatana uye Unreal mutambo injini.
Isu tinoramba tichikwidziridza nekugadzirisa tsikidzi dzakasiyana, saka isu takakurudzira kuti SDK igare iine nguva.
Parizvino, VIVE Wave inotsigira OpenGL ES chete. Heano anonyora maficha akarairwa nekurudziro kune GPU kuita. Tichakamura izvi kuita zvikamu zviviri: VR zvemukati uye MR zvemukati.
3.1 VR Zvemukati
3.1.1 Ratidza Refresh Rate

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.

  • Kumugadziri weNative, tarisa WVR_SetFrameRate.
  • Kune Unity developer, tarisa kune iri gwara.
  • Kune Unreal mugadziri, tarisa kune iyi gwara.

3.1.2 Eyebuffer Resolution
Eyebuffer resoul ndiyo saizi yemanyorerwo ayo zvirimo muApp zvichapihwa, zvinopihwa mameseji zvichaendeswa kune iyo nguva yekumhanya kuita kutumira maitiro uye kuvepo pane HMD kuratidzwa.
Nepo saizi yakakura yebuffer inogona kukonzera kujeka uye kujekeswa zviono, asi zvakare inoisa mutoro wakakosha paGPU. Naizvozvo, kuwana chiyero chakakodzera pakati pemhando yekuona uye kuita kwakakosha.
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.

  • Kumugadziri weNative, tarisa WVR_ObtainTextureQueue. Paunenge uchigadzirisa saizi, unofanirwa kuwedzera hupamhi uye urefu nereshiyo.
  • Kune Unity kuvandudza, tarisa kune WaveXRSSettings.
    Neimwe nzira, unogona kuita shanduko kuburikidza nekodhi sebelwoe.
    XRSettings.eyeTextureResolutionScale = ResolutionScaleValue; // C#
  • Kune Unreal mugadziri, tarisa SetPixelDensity.

3.1.3 Multi-View Rendering
Mukushandura kwechinyakare, tinodhirowa ziso rekuruboshwe nerekurudyi zvakasiyana, izvo zvinoda maviri ekudhirowa mafoni echiitiko chimwe chete. Zvakawanda-View Kupa kunogadzirisa nyaya iyi nekuita kamwe chete kufona.
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.

  • Kune Native developer, unogona kureva wvr_native_hellovar sample.
  • Kune Unity kuvandudza, tarisa iyo Render Mode, single pass yakawanda-view feature.
  • Kune Unreal mugadziri, tarisa kune iyi gwara.

3.1.4 Foveation
Foveated rendering inonyanya kugadzirwa kudzikisa mutoro weGPU. Iyo inoderedza iyo furemu ruzivo mune peripheral yekuratidzira uye kuchengetedza yakakwirira resolution yepakati pakati pemunda we view. Kana App ine GPU yakasungwa nyaya, unogona kuedza kugonesa Foveation kupa.

VIVE VR Kupa Kuita - Fig 2

Pane chimwe chinhu chinoda kucherechedzwa paunenge uchishandisa foveation:

➢ Vashandisi havawanzo kucherechedza zvakadzikiswa munzvimbo dziri pedyo vachishandisa default foveation mode. Asi kana peripheral quality yefoveation yakadzikira zvakanyanya, inogona kuoneka kumushandisi.
➢ Mhedzisiro yefoveation inogona kuoneka zvakanyanya nezvimwe zvinhu zvemaumbirwo, izvo zvinogona kubata pfungwa yemushandisi. Vagadziri vanofanirwa kuziva izvi uye vozviongorora zvinoenderana.
➢ Kugonesa foveated rendering feature kunounza mutengo wakatarwa weGPU, unogona kusiyana pakati pe1% kusvika 6% zvichienderana nehukuru hweziso. Paunenge uchishandisa shader yakapfava muchiitiko, kuwana kwekuita kubva mukuchengetedza zviwanikwa kunogona kuve kwakaderera pane yakatarwa GPU kuita mutengo, zvichikonzera kudonha kwekuita.

  • Kune Native developer, tarisa kune ino gwaro.
  • Kune Unity developer, tarisa kune iri gwara. Zvikuru, kana iwe uchigonesa post-processing kana HDR, foveation haigone kushandiswa zvizere. Nekuti Kubatana ichapa zvinhu kune yayo yakagadzirwa inopa mameseji, pane iyo yekumhanya-yakagadzirwa iripo inopa mameseji anotsigira foveation.
  • Kune Unreal mugadziri, tarisa kune iyi gwara. Sezvineiwo, foveation haigone kushandiswa zvizere paMulti-View Kupa, nekuti Unreal haigone kupa zvinhu zvakanangana neiyo runtime-yakagadzirwa inopa mameseji anotsigira foveation.

3.1.5 Frame Sharpness Enhancement (FSE)
Iyo FSE ichipa mhedzisiro yekurodza kuburikidza nekuunza inopinza sefa, inogona kujekesa zvirimo uye kubatsira zvakanyanya mukuvandudza kujeka kwemavara muchiitiko. Kana App ine GPU yakasungwa nyaya, unogona kufunga kudzima FSE kana zvisina kukosha.

VIVE VR Kupa Kuita - Fig 3

  • Kune Native developer, tarisa kune ino gwaro.
  • Kune Unity developer, tarisa kune iri gwara.
  • Kune Unreal mugadziri, tarisa kune iyi gwara.

3.1.6 Adaptive Quality
Kuchengetedza bhatiri uye kuchengetedza kushanda kwechishandiso, ichi chinogadzirisa otomatiki mazinga eCPU/GPU wachi zvichienderana nekushandiswa kwavo. Pamusoro pezvo, mamwe marongero anogona kuitwa kuwedzera mashandiro, sekugonesa otomatiki / kudzima Foveation kana zvirimo zvinogona kuzvigadzirisa kana zvichigamuchira yakakwirira / yakaderera mitoro zviitiko.

  • Kune Native developer, tarisa kune ino gwaro.
  • Kune Unity developer, tarisa kune iri gwara. Mune yedu Unity plugin, saizi yeziso buffer inogona kugadziridzwa otomatiki zvichienderana nekuita kwazvino; Saizi yemavara inosefa zviyero zvidiki zvakanyanya muResolution list. Isu tinokurudzira mavara ehukuru angangoita 20 dmm kana kupfuura.
  • Kune Unreal mugadziri, tarisa kune iyi gwara.

3.1.7 Adaptive Motion Compositor
Ichi chiitiko chekuyedza chinosanganisira UMC uye PMC. UMC inoderedza iyo Frame Rate nehafu uye yakawedzera furemu nyowani munguva chaiyo kuchengetedza kutsvedza kwekuona. Nekudaro, inouya neimwe latency, zvigadzirwa uye GPU kurodha.
PMC inonyanya kushandisa Depth Buffer kubvumira ATW kuzvidavirira pashanduro yeHMD, kusvika kumuripo we6-dof. Iyi ficha inogona kuderedza kunonoka kweshanduro ne1 ~ 2 mafuremu, asi kuwedzera GPU kurodha.

  • Kune Native developer, tarisa kune ino gwaro.
  • Kune Unity developer, tarisa kune iri gwara.
  • Kune Unreal mugadziri, tarisa kune iyi gwara.

3.1.8 Render Mask [Haitsigire Unreal]
MaPixels ari kumapendero anoita kunge asingaonekwe mushure mekukanganiswa, iyo mask inoshandura inogadzirisa kudzika kwebuffer kukosha kweaya asingaonekwe pixels. Kana iwe ukagonesa kudzika kuyedzwa, nekuda kwekutanga-z, aya asingaonekwe mapixels haazopihwa, nekudaro achidzikisa mutoro weGPU. Iyi ficha inobatsira kana paine zvinorema-kuremedza kupa zvinhu munzvimbo idzi dzisingaonekwe; kana zvisina kudaro, kana pasina kupa zvinhu munzvimbo idzi, zvinokurudzirwa kuidzima nekuti inopedza diki GPU kushandiswa.

  • Kune Native developer, tarisa kune ino gwaro. Iwe unofanirwa kusunga iyo yakadzika buffer usati wafona RenderMask; zvikasadaro, zvichange zvisingabatsiri.
  • Kune Unity developer, tarisa kune iri gwara.
  • Kune Unreal mugadziri, parizvino haitsigire iyo Render Mask chimiro.

3.2 MR Zvemukati
3.2.1 Gadzirisa Kupfuura Hunhu
Kune 3 mazinga ekupasa kwemufananidzo kunaka:
➢ WVR_PassthroughImageQuality_DefaultMode - inokodzera zvirimo zveMR pasina chinodiwa.
➢ WVR_PassthroughImageQuality_PerformanceMode - yakakodzera iyo MR yemukati inoda mamwe maGPU sosi yekupa chaiyo chiitiko.
➢ WVR_PassthroughImageQuality_QualityMode - yakanakira iyo MR yemukati inobvumira vashandisi kuona nharaunda yakapoteredza zvakajeka, asi chaiyo chiitiko chemukati chinofanirwa kuve nekunyanya kurongeka kwekuita.
Unogona kugadzirisa Passthrough mhando kuPerformanceMode kuderedza kushandiswa kweGPU.

  • Kune Native, Kubatana kana Unreal kuvandudza, tarisa kune iri gwara.

3.2.2 Gadzirisa Passthrough Frame Rate
Kufanana neDisplay refresh rate, yepamusoro Passthrough framerate inopa zviono zvakapfava, asi huya nemutengo wekuwedzera sisitimu mutoro. Sezvineiwo, mareti ekuzorodza akaderera anoderedza sisitimu mutoro, asi zvinokonzeresa zviratidziro zvishoma. Kune maviri modhi yekupfuura framerate: Boost uye Zvakajairwa.

  • Kune Native developer, inogona kugadzirisa passthrough quality uchishandisa iyo WVR_SetPassthroughImageRate.
  • Kune Unity developer, inogona kuchinja kuburikidza nekodhi, exampmarongero akaita seanotevera // C#
    Interop.WVR_SetPassthroughImageQuality(WVR_PassthroughImageQuality.PerformanceMode);
  • Kune Unreal mugadziri, kuseta nzira ona iyo blueprint node muFigure 3-2-2.

VIVE VR Kupa Kuita - Fig 4

VIVE OpenXR Setting

OpenXR chiyero chakavhurika chinopa yakajairwa seti yeAPIs yekugadzira XR maapplication ayo anomhanya kune akasiyana siyana emidziyo yeVR, yakagadziridzwa neKhronos Group. Iyo VIVE Focus 3 uye VIVE XR Elite inotsigirawo OpenXR, VIVE OpenXR SDK inopa rutsigiro rwakakwana kumidziyo yeHTC VR, ichibvumira vanogadzira kuvaka Allin-One uye zvirimo neUnity uye Unreal injini paHTC VR zvishandiso. Isu tinoramba tichikwenenzvera uye kugadzirisa tsikidzi dzakasiyana, saka zvinokurudzirwa kuti vanogadzira vagadzirise FOTA vhezheni yemudziyo wavo kuti irambe ichienderana. Parizvino, VIVE OpenXR SDK inotsigira OpenGL ES uye Vulkan.

4.1 VR Zvemukati
4.1.1 Ratidza Refresh Rate
Pfungwa iri pano yakafanana ne3.1.1 Ratidza Refresh Rate.

  • Kumugadziri weNative, tarisa kuXrEventDataDisplayRefreshRateChangedFB.
  • Kune Unity developer, tarisa kune iri gwara.
  • Kune Unreal mugadziri, tarisa kune iyi gwara.

4.1.2 Eyebuffer Resolution
Pfungwa iri pano yakafanana ne3.1.2 Eyebuffer Resolution. isu tinokurudzira kuti tisaderedza chiyero chiri pasi pe 0.7, sezvo izvi zvingaguma nemhando isingagamuchirwi yekuona.

  • Kune Native kuvandudza, tarisa kune xrCreateSwapchain. Paunenge uchigadzirisa saizi, unofanirwa kuwedzera hupamhi uye urefu nereshiyo. ,
  • Kune Unity developer, tarisa kune inotevera example // C#
    XRSSettings.eyeTextureResolutionScale = 0.7f; // yakakurudzirwa 1.0f~0.7f
  • Kuti uwane zvigadziriso zvisiri izvo, tarisa kune iri gwara.

4.1.3 Multi-View Rendering
Pfungwa iri pano yakafanana ne3.1.3 Multi-View Rendering. Ichi chimiro chinoderedza mutoro paCPU, GPU inewo mamwe mabhenefiti. Isu tinokurudzira kugonesa chimiro ichi.

  • Kune Native kuvandudza, KhronosGroup inopa OpenXR Multi-View example, tarisa kugwaro iri.
  • Kune Unity kuvandudza, tarisa iyo Render Mode, single pass yakawanda-view feature.
  • Kune Unreal mugadziri, sekunge VIVE Wave marongero, tarisa kune iyi gwara.

4.1.4 Foveation [Kwete Kutsigira Unreal]
Pfungwa iri pano yakafanana ne 3.1.4 Foveation. Foveated rendering inonyanya kugadzirirwa kudzikisa mutoro weGPU asi kuigonesa ichaunza yakagadziriswa GPU mutengo wekuita uye kana foveation yakadzikira uye zvimwe zvinhu kana maumbirwo akashandiswa, anogona kuve akanyanya.
zvinoonekwa kumushandisi. Naizvozvo, zvinokurudzirwa kugonesa kana kudzima chimiro zvichienderana nezvako chaizvo zvaunoda uye maitiro ekuita Parizvino, Foveated mashandiro anongotsigirwa muOpenGL ES paVIVE OpenXR SDK.

  • Kune Native developer, iyi ficha iripo, asi parizvino, hapana exampzvinopihwa.
  • Kune Unity developer, tarisa kune iri gwara.
  • Kune Unreal developer, haitsigire ichi chimiro panguva ino.

4.1.5 Render Mask [Haitsigire Unreal]
Pfungwa iri pano yakafanana ne3.1.8 Render Mask.

  • Kune veNative developer, shandisa XrVisibilityMaskKHR kuti uwane Mesh. Usati wapa chiitiko, shandisa Mesh iyi kuti iburitse zvakadzika buffer kukosha usati wapa chiitiko.
  • Kune Unity kuvandudza, iyo Render Mask chimiro chinogoneswa nekusarudzika yeOpenGL ES, uye inogona kuvharwa neinotevera kodhi; Vulkan parizvino haitsigire chimiro ichi. //C# UnityEngine.XR.XRSsettings.occlusionMaskScale = 0.0f;
  • Kune Unreal mugadziri, parizvino haitsigire iyo Render Mask chimiro.

4.2 MR Zvemukati
OpenXR parizvino haitsigire kuseta Passthrough Quality uye Frame Rate. Isu tichaenderera mberi nekukwirisa nekugadzirisa iyo Passthrough ficha, saka zvakakurudzirwa kuti vanogadzira vagadzirise FOTA vhezheni yemudziyo kuti irambe ichienderana.

Common Optimization

5.1 Dzima Yepamusoro Performance Modhi
Kudzima "High performance mode" kunogona kuderedza saizi yekuratidzira yemudziyo, nekudaro kuderedza kushandiswa kweGPU. Iyo drawback kuderera kwekugadzirisa skrini. Iwe unogona kuenzanisa kunaka uye kuita kuti usarudze kana uchigonesa.
Nzvimbo yekumisikidza yeVIVE Focus 3 inoratidzwa Mufananidzo 5-1-1:

VIVE VR Kupa Kuita - Fig 5

Nzvimbo yekumisikidza yeVIVE XR Elite inoratidzwa Mufananidzo 5-1-2:

VIVE VR Kupa Kuita - Fig 6

5.2 Multisampling Anti-Aliasing
Multisampling 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.

  • YeNative developer, MSAA OpenGL ES exsample anogona kureva izvi; MSAA Vulkan exampler anogona kureva izvi.
    Iyo Adreno GPU inopa yekuwedzera iyo inogonesa MSAA.
  • Kune Unity developer, tarisa kusangano iri.
  • For Unreal developer, refer to this guild. Unreal also has provide post processing anti-aliasing, refer to this guild.

5.3 GMEM Mutoro/Chitoro
MuAdreno GPU architecture, pane chinhu apo, kana uchisunga Render Target, kana Render Target ikasajeka kana kusashanda, nguva yega yega kupa kunoitika, hunhu huri muRender Target hunoiswa muGraphics Memory, inonzi GMEM Load. Kana hunhu hwapfuura husingade, kujeka kana kusashanda Render Target befaure kupa, inogona kudzivirira mamiriro aya kuvandudza mashandiro eGPU.
Unogona kudzivirira GMEM Mutoro uchishandisa nzira dzinotevera. MuOpenGL ES, mushure mekusunga FBO, unogona kufonera glClear uye glClearDepth kuti ubvise Ruvara, Hudzamu, uye Stencil buffer, kana kufonera glInvalidateFramebuffer kuti itadze iyo yakatarwa Render Target. MuVulkan, mimwe mirairo haidiwi; unogona kunyatso gadzirisa kana kubvisa zvakabatanidzwa usati washandisa muVkAttachmentDescription.loadOp.
Saizvozvo, kuchengetedza mhedzisiro yeTile Render kudzoka kuMain Memory kubva kuGraphics Memory inonzi GMEM Store; kushanda uku kunodhurawo kuGPU. Kuti udzivise izvi, isu tinokurudzira kusunga chete inodiwa Render Targets kudzivirira zvisina basa Chitoro mashandiro.

5.4 Kuumbwa Layer (Multi Layer)
Mavara anoratidzwa uchishandisa Multi-Layer ane ari nani ekuona mhando. Nekudaro, chimiro ichi chinowedzera mashandiro eGPU nehuwandu hwematanho uye saizi yezvimiro. Isu tinokurudzira kwete kupfuura matatu akaturikidzana.

  • Kune Native developer,
    o VIVE Wave SDK inoshandisa WVR_SubmitFrameLayers kupfuudza mune data kune yega yega.
    o VIVE OpenXR SDK inoisa dhata data muXrFrameEndInfo uye inoiendesa kuburikidza nexrEndFrame.
  • Kune Unity developer,
    o VIVE Wave SDK marongero, tarisa kune iri gwara,
    o VIVE OpenXR marongero, tarisa kune iri gwara.
  • Kune Unreal developer,
    o VIVE Wave SDK marongero, tarisa kune iri gwara.
    o VIVE OpenXR marongero, tarisa kune iri gwara.

5.5 CPU Spike
Kana iyo CPU kurodha ichirema, mamwe emashure anoita matambo ane yepamusoro pekutanga, anogona kukanganisa kuuraya kwekuzvarwa. Hatigone kuvimbisa kuti Yemukati Yekushandisa haizovhiringwa neimwe tambo.
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.

  • Kune Unity Developer, tarisa ku Android tambo yekumisikidza chimiro. Kana iwe uri kushandisa iyo VIVE Wave SDK, isu tine chimiro muWaveXRSSettings iyo inokutendera kuti ugadzirise zvakakosha, sezvakaratidzwa muFigure 5-5-2. Ukoshi hudiki hunomiririra kukosha kwepamusoro.

VIVE VR Kupa Kuita - Fig 7

  • Unreal hapana nzira yekushandura tambo yemutambo, kupa tambo uye RHI tambo pamberi kuburikidza nekunze marongero kunze kwekunge wagadzirisa kodhi injini.

Copyright © 2024 HTC Corporation. Kodzero dzese dzakachengetwaVIVE logo

Zvinyorwa / Zvishandiso

VIVE VR Kupa Kuita [pdf] Bhuku reMushandisi
VR Kupa Kuita, Kupa Kuita, Kuita

References

Siya mhinduro

Yako email kero haizoburitswa. Nzvimbo dzinodiwa dzakamakwa *