
VR રેન્ડરિંગ પ્રદર્શન
ટ્યુનિંગ અને ઑપ્ટિમાઇઝેશન
પરિચય
સંસાધન-મર્યાદિત હાર્ડવેર પર શ્રેષ્ઠ VR અનુભવ પ્રાપ્ત કરવો એ સરળ અને આરામદાયક વપરાશકર્તા અનુભવ પ્રદાન કરવાની ચાવી છે. જો સામગ્રી રેન્ડરિંગનો ફ્રેમ રેટ ઉપકરણના રિફ્રેશ રેટથી નીચે જાય અથવા અસ્થિર થાય, તો તે ફ્રેમ જડર અને સ્ટટિંગ, મોશન સિકેન્સ વગેરે તરફ દોરી જશે. આખરે વપરાશકર્તા અનુભવ પર નકારાત્મક અસર કરશે. તેથી, આનંદપ્રદ અનુભવ સુનિશ્ચિત કરવા માટે સામગ્રી પ્રદર્શનને ઑપ્ટિમાઇઝ કરવું ખૂબ જ મહત્વપૂર્ણ છે.
પર્ફોર્મન્સ ટ્યુનિંગ શરૂ કરતા પહેલા, બિનકાર્યક્ષમ ટ્યુનિંગ ટાળવા માટે પર્ફોર્મન્સ અવરોધો ક્યાં છે તે સમજવું મહત્વપૂર્ણ છે. આ દસ્તાવેજ ડેવલપર્સને પર્ફોર્મન્સ અવરોધો ઓળખવામાં અને રેન્ડરિંગ પર્ફોર્મન્સ સમસ્યાઓને ઉકેલવા માટે ઉકેલો પ્રદાન કરવામાં મદદ કરવા માટે રચાયેલ છે.
આ દસ્તાવેજ નીચેના વિભાગોમાં ગોઠવાયેલ છે:
- પ્રકરણ 2: અવરોધોને ઓળખો - આ વિભાગ વિકાસકર્તાઓને અવરોધો ક્યાં છે તે ઓળખવામાં મદદ કરે છે.
- પ્રકરણ 3 અને 4: VIVE Wave અને VIVE OpenXR સેટિંગ્સ - આ વિભાગો ચોક્કસ સેટિંગ્સની રૂપરેખા આપે છે જે VIVE Wave અને OpenXR એપ્લિકેશનો માટે CPU/GPU પ્રદર્શનને અસર કરી શકે છે. વિકાસકર્તાઓ કોઈ સુધારો છે કે કેમ તે નક્કી કરવા માટે આવી રહેલી કામગીરીની અડચણોના આધારે આ સુવિધાઓને સક્ષમ અથવા અક્ષમ કરવાનો પ્રયોગ કરી શકે છે.
- પ્રકરણ ૫: સામાન્ય ઑપ્ટિમાઇઝેશન - આ વિભાગ કેટલીક સામાન્ય ઑપ્ટિમાઇઝેશન પદ્ધતિઓ અને અનુભવો શેર કરે છે.
અવરોધ ઓળખો
જ્યારે HMD ગતિશીલ હોય છે, જો VR/MR એપ્લિકેશનમાં ફ્રેમ જીટર અથવા કાળી ધાર વગેરે હોય, તો તે સામાન્ય રીતે ખરાબ રેન્ડરિંગ પ્રદર્શન સમસ્યાને કારણે થાય છે. સામાન્ય રીતે, રેન્ડરિંગ પ્રદર્શન સમસ્યાઓને 2 પ્રકારોમાં વર્ગીકૃત કરી શકાય છે: CPU-બાઉન્ડ અથવા GPU-બાઉન્ડ. બિનકાર્યક્ષમ ટ્યુનિંગ ટાળવા માટે શરૂઆતમાં જ સમજો કે તમારી એપ્લિકેશન માટે કયા પ્રકારના બાઉન્ડ ખૂબ જ મહત્વપૂર્ણ છે.
આ પ્રકરણમાં, અમે સરળ પગલાં પ્રદાન કરીએ છીએ જે તમને પ્રદર્શન સમસ્યાઓ ક્યાં છે તે ઝડપથી ઓળખવામાં મદદ કરે છે.
૨.૧ કન્ટેન્ટ રેન્ડરિંગ FPS તપાસો
સૌપ્રથમ, આપણે કન્ટેન્ટ FPS એટલે કે પ્રતિ સેકન્ડમાં કન્ટેન્ટ રેન્ડર કરે છે તે ફ્રેમની સંખ્યા ચકાસીને શરૂઆત કરીએ છીએ. તેને ડિસ્પ્લે ફ્રેમરેટ પર જાળવી રાખવું જોઈએ અને સ્થિર રાખવું જોઈએ. નહિંતર, તે ફ્રેમમાં ખળભળાટ મચાવી શકે છે.
જો તમારી એપ્લિકેશન SDK VIVE WAVE SDK 6.0.0 અથવા પછીના વર્ઝનનો ઉપયોગ કરી રહી હોય, તો તમે FPS તપાસવા માટે નીચેના adb આદેશનો ઉપયોગ કરી શકો છો. DK 6.0.0
$adb લોગકેટ -s VRMetric
તમને નીચેનો લોગ ડેટા દેખાશે.
VRMetric:FPS=89.8/89.8,CPU-27/1,GPU=72/3,GpuBd=0,LrCnt=1,2Stag=1,Pstat=2,AQ=1,FOVED=0/0, FSE=1,TWS-2,PT=0(0), RndrBK=0,GLTA=2D,EB=1720×1720
“FPS=89.8/89.8” પહેલો નંબર કન્ટેન્ટ FPS દર્શાવે છે, જ્યારે બીજો નંબર ડિસ્પ્લે ફ્રેમરેટ દર્શાવે છે.
જો તમારું Wave SDK વર્ઝન 6.0.0 થી નીચે હોય, તો રેન્ડરિંગ પ્રદર્શન અને અન્ય ઑપ્ટિમાઇઝેશનને વધારવા માટે નવીનતમ વર્ઝન પર અપગ્રેડ કરવાની ભલામણ કરવામાં આવે છે.
જો તમારી એપ્લિકેશન SDK VIVE OpenXR સાથે બનેલ છે. તો તમે FPS તપાસવા માટે નીચેના adb આદેશનો ઉપયોગ કરી શકો છો.
$adb લોગકેટ -s RENDER_ATW
તમને નીચેનો લોગ ડેટા દેખાશે
RENDER_ATW: [FPS] નવી રચના: 90.00
RENDER_ATW: [FPS] R હાજર: 90.00 અવગણો: 0 317, -0.0155 0.805527, 0.006788)
RENDER_ATW: [FPS] L હાજર:90.00 છોડો:0 (0.592301, -0.015502, 0.805539, 0.006773)
"નવા ટેક્સચર" પછીનો નંબર વર્તમાન સામગ્રી FPS દર્શાવે છે. "R હાજર" અને "L હાજર" પછીનો નંબર ડિસ્પ્લે ફ્રેમરેટ દર્શાવે છે.
ક્યારેક, કન્ટેન્ટ FPS અને ડિસ્પ્લે ફ્રેમરેટમાં થોડો તફાવત હોઈ શકે છે.
માજી માટેampઅને, ઉપરોક્ત કિસ્સામાં, 89.8 FPS ને 90 FPS ગણી શકાય.
જો એપનો કન્ટેન્ટ FPS ડિસ્પ્લે ફ્રેમરેટ કરતા સતત ઓછો હોય અથવા અસ્થિર રહે, તો તે રેન્ડરિંગ પર્ફોર્મન્સ સમસ્યા સૂચવે છે. તેથી, આગળનું પગલું એ ઓળખવાનું છે કે અવરોધ CPU માંથી આવી રહ્યો છે કે GPU માંથી.
૨.૨ CPU અને GPU વપરાશ તપાસો
જો તમારી એપ્લિકેશન SDK VIVE WAVE SDK 6.0.0 અથવા પછીના સંસ્કરણનો ઉપયોગ કરી રહી હોય, તો તમે FPS તપાસવા માટે નીચેના adb આદેશનો ઉપયોગ કરી શકો છો.
$adb લોગકેટ -s VRMetric
તમને નીચેનો લોગ ડેટા દેખાશે.
VRMetric:FPS=89.8/89.8,CPU=27/1,GPU=72/3,GpuBd=0,LrCnt=1,2Stag=1,Pstat=2,AQ=1,FOVED=0 /0, FSE=1,TWS=2,PT=0(0),RndrBK=0,GLTA=2D,EB=1720×1720
જેમ તમે ઉપરના લોગ પરિણામમાં જોઈ શકો છો, CPU વપરાશ 27% છે અને GPU વપરાશ 72% છે. જો તમારું Wave SDK સંસ્કરણ 6.0.0 થી નીચે છે, તો રેન્ડરિંગ પ્રદર્શન અને અન્ય ઑપ્ટિમાઇઝેશનને વધારવા માટે નવીનતમ સંસ્કરણ પર અપગ્રેડ કરવાની ભલામણ કરવામાં આવે છે.
VIVE OpenXR એપ્લિકેશન માટે, તમે CPU અને GPU વપરાશ તપાસવા માટે નીચેના આદેશનો ઉપયોગ કરી શકો છો.
# લિનક્સ/ઉબુન્ટુ પર
$ એડીબી લોગકેટ | ગ્રેપ સીપીયુ_યુએસએજી
# પાવરશેલ પર
$ adb લોગકેટ | સિલેક્ટ-સ્ટ્રિંગ -પેટર્ન 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 Resolution (વિભાગ 3.1.2, વિભાગ 4.1.2) ને સમાયોજિત કરવાનો પ્રયાસ કરી શકો છો જેથી તે FPS ને સુધારે છે કે નહીં તે જોઈ શકાય. જો આ ગોઠવણ વધુ સારી તરફ દોરી જાય છે
કામગીરી, આપણે નિષ્કર્ષ પર આવી શકીએ છીએ કે સમસ્યા GPU-બાઉન્ડ છે અને તે મુજબ અમારા ઑપ્ટિમાઇઝેશન પ્રયાસો પર ધ્યાન કેન્દ્રિત કરીએ છીએ.
બીજી બાજુ, જો આઇબફર રિઝોલ્યુશનને સમાયોજિત કરવાથી નોંધપાત્ર પ્રદર્શન સુધારો થતો નથી, તો અવરોધ કદાચ CPU-બાઉન્ડ છે, અને આપણે CPU પ્રદર્શનને ઑપ્ટિમાઇઝ કરવા પર ધ્યાન કેન્દ્રિત કરવું જોઈએ.
એ પણ શક્ય છે કે એપ્લિકેશન એકસાથે CPU-બાઉન્ડ અને GPU-બાઉન્ડ બંને હોય. આવા કિસ્સાઓમાં, સંતુલિત પ્રદર્શન સુધારણા પ્રાપ્ત કરવા માટે CPU અને GPU બંને પર ઑપ્ટિમાઇઝેશન પ્રયાસો લાગુ કરવા જોઈએ.
૨.૩ GPU-બાઉન્ડ
જ્યારે VR એપ GPU-બાઉન્ડ હોય છે, ત્યારે તેનો અર્થ એ થાય છે કે GPU એ પ્રાથમિક અવરોધ છે, અને તે એપ્લિકેશનની રેન્ડરિંગ માંગણીઓ સાથે તાલમેલ રાખવામાં અસમર્થ છે. GPU-બાઉન્ડ સમસ્યાઓને ઘટાડવા માટે, નીચેની ભલામણો ધ્યાનમાં લો:
સૌપ્રથમ, રેન્ડરડોક અથવા ગેમ એન્જિન પ્રો જેવા પ્રોફાઇલિંગ ટૂલ્સનો ઉપયોગ કરો.fileઆર (યુનિટી પ્રો)filer, અવાસ્તવિક આંતરદૃષ્ટિ) GPU તેનો મોટાભાગનો સમય ક્યાં વિતાવે છે તેનું વિશ્લેષણ કરવા માટે. સૌથી મોંઘા કામગીરી ઓળખો અને તેમને ઑપ્ટિમાઇઝ કરવા પર ધ્યાન કેન્દ્રિત કરો.
નેટિવ ડેવલપર માટે, તમે કયા ડ્રો કોલને કારણે GPU લોડ વધી રહ્યો છે તે ઓળખવા માટે RenderDoc નો ઉપયોગ કરી શકો છો.
યુનિટી ડેવલપર માટે, તમે યુનિટી આ દસ્તાવેજને અનુસરી શકો છો અથવા રેન્ડરિંગ કામગીરી સમસ્યાનું વિશ્લેષણ કરવા માટે રેન્ડરડોકનો ઉપયોગ કરી શકો છો, અને તમારી એપ્લિકેશનને ઑપ્ટિમાઇઝ કરવા માટે માર્ગદર્શન માટે યુનિટી ગ્રાફિક્સ ઑપ્ટિમાઇઝેશન દસ્તાવેજીકરણને અનુસરી શકો છો.
અનરિયલ ડેવલપર માટે, તમે રેન્ડરિંગ પર્ફોર્મન્સ સમસ્યાનું વિશ્લેષણ કરવા માટે GPU વિઝ્યુલાઇઝરનો ઉપયોગ કરી શકો છો અથવા રેન્ડરડોકનો ઉપયોગ કરી શકો છો, અને તમારી એપ્લિકેશનને ઑપ્ટિમાઇઝ કરવા માટે માર્ગદર્શન માટે અનરિયલ પર્ફોર્મન્સ માર્ગદર્શિકાને અનુસરી શકો છો.
બીજું, તમે GPU લોડિંગ ઘટાડવા માટે ચોક્કસ Wave સુવિધાઓ અથવા સેટિંગ્સને સમાયોજિત કરવાનો પણ પ્રયાસ કરી શકો છો.
- ડિસ્પ્લે રિફ્રેશ રેટ ધીમો સેટ કરો (વિભાગ 3.1.1, વિભાગ 4.1.1)
- આઈબફર રિઝોલ્યુશન એડજસ્ટ કરો (વિભાગ 3.1.2, વિભાગ 4.1.2), 14.1.1)
- ફોવેશન સક્ષમ કરવાનો પ્રયાસ કરો (વિભાગ 3.1.4, વિભાગ 4.1.4).
જો તમારી એપ પણ MR એપ છે, તો તમે પાસથ્રુ સેટિંગ્સને પણ સમાયોજિત કરી શકો છો.
- પાસથ્રુ ઇમેજ ગુણવત્તા ઓછી ગોઠવો. (વિભાગ 3.2.1)
- પાસથ્રુ ફ્રેમરેટને ધીમો કરો. (વિભાગ 3.2.2).
GPU કામગીરી વિશે વધુ અન્ય સેટિંગ્સ માટે, તમે પ્રકરણ 2.6 નો સંદર્ભ લઈ શકો છો.
૨.૪ સીપીયુ-બાઉન્ડ
જ્યારે VR એપ CPU-બાઉન્ડ હોય છે, ત્યારે તેનો અર્થ એ થાય છે કે CPU એ પ્રાથમિક અવરોધ છે, નીચેની ભલામણો ધ્યાનમાં લો:
સૌપ્રથમ, સિસ્ટ્રેસ અથવા ગેમ એન્જિન પ્રો જેવા પ્રોફાઇલિંગ ટૂલ્સનો ઉપયોગ કરો.fileઆર (યુનિટી પ્રો)filer, Unreal Insights) તમારા કોડના કયા ભાગો સૌથી વધુ CPU સંસાધનોનો ઉપયોગ કરી રહ્યા છે તેનું વિશ્લેષણ અને ઓળખ કરવા માટે. આ ક્ષેત્રોને ઑપ્ટિમાઇઝ કરવા પર ધ્યાન કેન્દ્રિત કરો અને CPU લોડ ઘટાડવા માટે કોમ્પ્યુટેશનલી સઘન અલ્ગોરિધમ્સને રિફેક્ટર કરો.
- નેટિવ ડેવલપર માટે, તમે સિસ્ટ્રેસનો ઉપયોગ પ્રો માટે કરી શકો છોfileતમારો પ્રોજેક્ટ.
- યુનિટી ડેવલપર માટે, તમે CPU Usage Pro નો ઉપયોગ કરી શકો છોfileCPU કામગીરી સમસ્યા શોધવા માટે r મોડ્યુલ.
- અનરીઅલ ડેવલપર માટે, તમે સીપીયુ કામગીરીની સમસ્યા શોધવા માટે અનરીઅલની આંતરદૃષ્ટિનો ઉપયોગ કરી શકો છો.
બીજું, તમે GPU લોડિંગ ઘટાડવા માટે ચોક્કસ Wave સુવિધાઓ અથવા સેટિંગ્સને સમાયોજિત કરવાનો પણ પ્રયાસ કરી શકો છો.
- ડિસ્પ્લે રિફ્રેશ રેટ ધીમો સેટ કરો (વિભાગ 3.1.1, વિભાગ 4.1.1)
- મલ્ટી-નો ઉપયોગ કરોView રેન્ડરિંગ (વિભાગ 3.1.4, વિભાગ 4.1.4)
જો તમારી એપ પણ MR એપ છે, તો તમે પાસથ્રુ સેટિંગ્સને પણ સમાયોજિત કરી શકો છો.
- પાસથ્રુ ફ્રેમરેટ ધીમો કરો (વિભાગ 3.2.2).
CPU કામગીરી વિશે વધુ અન્ય સેટિંગ્સ માટે, તમે પ્રકરણ 2.6 નો સંદર્ભ લઈ શકો છો.
2.5 સારાંશ
છેલ્લે, અમે ઉપરોક્ત કામગીરી ચકાસણી કાર્યપ્રવાહને આકૃતિ 2-5-1 માં ગોઠવ્યો છે. સામગ્રીના FPS ને તપાસીને શરૂઆત કરો. જો તે ડિસ્પ્લે ફ્રેમરેટ કરતા ઓછો હોય અથવા અસ્થિર રહે, તો GPU/CPU વપરાશનું વિશ્લેષણ કરીને નક્કી કરો કે તે GPU-બાઉન્ડ છે કે CPU-બાઉન્ડ છે. છેલ્લે, એક વ્યાવસાયિકનો ઉપયોગ કરો.filer સંભવિત પ્રદર્શન સમસ્યાઓ ઓળખવા અથવા CPU પ્રદર્શનને ઑપ્ટિમાઇઝ કરવા માટે વેવ સુવિધાઓ અથવા સેટિંગ્સને સમાયોજિત કરવા માટે.

૨.૬ ઝડપી સંદર્ભ કઈ સેટિંગ્સ CPU/GPU લોડિંગને સુધારી શકે છે
નીચે મુજબ CPU/GPU લોડિંગ સાથે સંબંધિત SDK સેટિંગ્સની યાદી આપો. સંબંધિત ઑપ્ટિમાઇઝેશન સેટિંગ્સ તપાસવા માટે તમે એપ્લિકેશનની અવરોધ પર આધારિત હોઈ શકો છો.
CPU સંબંધિત:
- VIVE વેવ SDK સેટિંગ
o VR સામગ્રી
▪ ૩.૧.૧ ડિસ્પ્લે રિફ્રેશ રેટ
▪ ૩.૧.૪ બહુવિધView રેન્ડરીંગ
▪ ૩.૧.૬ અનુકૂલનશીલ ગુણવત્તા
▪ ૩.૧.૭ એડેપ્ટિવ મોશન કમ્પોઝિટર
o MR સામગ્રી
▪ ૩.૨.૨ પાસથ્રુ ફ્રેમ રેટ એડજસ્ટ કરો - VIVE OpenXR SDK સેટિંગ
o VR સામગ્રી
▪ ૩.૧.૧ ડિસ્પ્લે રિફ્રેશ રેટ
▪ ૩.૧.૪ બહુવિધView રેન્ડરીંગ - સામાન્ય ઑપ્ટિમાઇઝેશન
o 5.5 CPU સ્પાઇક
GPU થી સંબંધિત:
- VIVE વેવ SDK સેટિંગ
o VR સામગ્રી
▪ ૩.૧.૧ ડિસ્પ્લે રિફ્રેશ રેટ
▪ ૩.૧.૨ આઈબફર રિઝોલ્યુશન
▪ ૩.૧.૪ બહુવિધView રેન્ડરીંગ
▪ ૩.૧.૪ પ્રેરણા
▪ ૩.૧.૫ ફ્રેમ શાર્પનેસ એન્હાન્સમેન્ટ (FSE)
▪ ૩.૧.૬ અનુકૂલનશીલ ગુણવત્તા
▪ ૩.૧.૭ એડેપ્ટિવ મોશન કમ્પોઝિટર
▪ 3.1.8 Render Mask [Not Support Unreal]
o MR સામગ્રી
▪ ૩.૨.૧ પાસથ્રુ ગુણવત્તા સમાયોજિત કરો
▪ ૩.૨.૨ પાસથ્રુ ફ્રેમ રેટ એડજસ્ટ કરો - VIVE OpenXR SDK સેટિંગ
o VR સામગ્રી
▪ ૩.૧.૧ ડિસ્પ્લે રિફ્રેશ રેટ
▪ ૩.૧.૨ આઈબફર રિઝોલ્યુશન
▪ ૩.૧.૪ બહુવિધView રેન્ડરીંગ
▪ 4.1.4 Foveation [Not Support Unreal]
▪ 4.1.5 Render Mask [Not Support Unreal] - સામાન્ય ઑપ્ટિમાઇઝેશન
o ૫.૧ હાઇ પર્ફોર્મન્સ મોડ બંધ કરો
o ૫.૨ બહુવિધampલિંગ
o ૫.૩ GMEM લોડ/સ્ટોર
o ૫.૪ કમ્પોઝિશન લેયર (મલ્ટી લેયર)
VIVE વેવ સેટિંગ
VIVE Wave એક ખુલ્લું પ્લેટફોર્મ અને ટૂલસેટ છે જે તમને સરળતાથી VR સામગ્રી વિકસાવવા દે છે અને તૃતીય-પક્ષ ભાગીદારો માટે ઉચ્ચ-પ્રદર્શન ઉપકરણ ઑપ્ટિમાઇઝેશન પ્રદાન કરે છે. VIVE Wave યુનિટી અને અવાસ્તવિક ગેમ એન્જિનને સપોર્ટ કરે છે.
અમે સતત ઑપ્ટિમાઇઝ કરીએ છીએ અને વિવિધ ભૂલોને સુધારીએ છીએ, તેથી અમે SDK ને અપ ટુ ડેટ રાખવાની ભલામણ કરી છે.
હાલમાં, VIVE Wave ફક્ત OpenGL ES ને સપોર્ટ કરે છે. અહીં GPU પ્રદર્શન પર પ્રભાવ દ્વારા ક્રમાંકિત સુવિધાઓની યાદી આપે છે. આપણે આને બે ભાગોમાં વિભાજીત કરીશું: VR સામગ્રી અને MR સામગ્રી.
૩.૧ VR સામગ્રી
૩.૧.૧ ડિસ્પ્લે રિફ્રેશ રેટ
Higher refresh rates offer smoother visuals, but come at the cost of increased system load. Conversely, lower refresh rates reduce system load, but result in less smooth visuals. If App has CPU/GPU bound issue, you can try decreasing the display refresh rate to alleviate the issue.
- મૂળ વિકાસકર્તા માટે, WVR_SetFrameRate નો સંદર્ભ લો.
- યુનિટી ડેવલપર માટે, આ માર્ગદર્શિકાનો સંદર્ભ લો.
- અવાસ્તવિક વિકાસકર્તા માટે, આ માર્ગદર્શિકાનો સંદર્ભ લો.
૩.૧.૨ આઈબફર રિઝોલ્યુશન
આઇબફર રિઝોલ્યુશન એ ટેક્સચરનું કદ છે જે કન્ટેન્ટ એપને રેન્ડર કરવામાં આવશે, રેન્ડર કરાયેલ ટેક્સચરને પોસ્ટિંગ પ્રક્રિયા કરવા માટે રનટાઇમ પર સબમિટ કરવામાં આવશે અને HMD ડિસ્પ્લે પર રજૂ કરવામાં આવશે.
જ્યારે મોટી આંખનું બફર કદ સ્પષ્ટ અને વધુ વિગતવાર દ્રશ્યોમાં પરિણમી શકે છે, પરંતુ તે GPU પર નોંધપાત્ર ભાર પણ લાદે છે. તેથી, દ્રશ્ય ગુણવત્તા અને પ્રદર્શન વચ્ચે યોગ્ય સંતુલન શોધવું જરૂરી છે.
If App has GPU bound issue, you can try decreasing the eyebuffer size by multiply a scale factor. Howerver, we recommend not reducing the scale factor below 0.7, as this may result in unacceptable visual quality.
- મૂળ વિકાસકર્તા માટે, WVR_ObtainTextureQueue નો સંદર્ભ લો. કદને સમાયોજિત કરતી વખતે, તમારે પહોળાઈ અને ઊંચાઈને ગુણોત્તરથી ગુણાકાર કરવો જોઈએ.
- યુનિટી ડેવલપર માટે, WaveXRSettings નો સંદર્ભ લો.
વૈકલ્પિક રીતે, તમે belwoe તરીકે કોડ દ્વારા ફેરફારો કરી શકો છો.
XRSettings.eyeTextureResolutionScale = રિઝોલ્યુશનસ્કેલવેલ્યુ; // C# - અવાસ્તવિક વિકાસકર્તા માટે, સેટપિક્સેલડેન્સિટીનો સંદર્ભ લો.
3.1.3 બહુ-View રેન્ડરીંગ
પરંપરાગત રેન્ડરિંગમાં, આપણે ડાબી અને જમણી આંખો અલગથી દોરીએ છીએ, જેના માટે એક જ દ્રશ્ય માટે બે ડ્રો કોલની જરૂર પડે છે. મલ્ટી-View રેન્ડરિંગ ફક્ત એક જ ડ્રો કોલ કરીને આ સમસ્યાનું નિરાકરણ લાવે છે.
This feature reduces CPU load by decreasing the number of draw calls. The GPU also has some benefits, vertex shader’s workload is also reduced as it doesn’t need to run an additional shader for the other eye, but the fragment shader’s workload remains unchanged since it still needs to evaluate each pixel for both eyes. We recommand enabling this feature.
- મૂળ વિકાસકર્તા માટે, તમે wvr_native_hellovr s નો સંદર્ભ લઈ શકો છોample
- યુનિટી ડેવલપર માટે, રેન્ડર મોડનો સંદર્ભ લો, સિંગલ પાસ બહુવિધ છે-view લક્ષણ
- અવાસ્તવિક વિકાસકર્તા માટે, આ માર્ગદર્શિકાનો સંદર્ભ લો.
૩.૧.૪ પ્રેરણા
ફોવેટેડ રેન્ડરિંગ મુખ્યત્વે GPU લોડ ઘટાડવા માટે રચાયેલ છે. તે ડિસ્પ્લેના પેરિફેરલમાં ફ્રેમ ડિટેલ ઘટાડે છે અને ફીલ્ડના કેન્દ્રમાં ઉચ્ચ રીઝોલ્યુશન ડિટેલ જાળવી રાખે છે. view. જો એપમાં GPU બાઉન્ડ સમસ્યા હોય, તો તમે Foveation રેન્ડરિંગને eanbling કરવાનો પ્રયાસ કરી શકો છો.

ફોવેશનનો ઉપયોગ કરતી વખતે ધ્યાનમાં રાખવા જેવી બાબતો છે:
➢ વપરાશકર્તાઓ સામાન્ય રીતે ડિફોલ્ટ ફોવેશન મોડ લાગુ કરતી વખતે પેરિફેરલ પ્રદેશોમાં ઘટાડેલી વિગતો ધ્યાનમાં લેતા નથી. પરંતુ જો ફોવેશનની પેરિફેરલ ગુણવત્તા ખૂબ ઓછી સેટ કરવામાં આવે, તો તે વપરાશકર્તા માટે ધ્યાનપાત્ર બની શકે છે.
➢ ચોક્કસ ટેક્સચર સામગ્રી સાથે ફોવેશનની અસરો વધુ નોંધપાત્ર હોઈ શકે છે, જે વપરાશકર્તાનું ધ્યાન ખેંચી શકે છે. વિકાસકર્તાઓએ આ વિશે જાગૃત રહેવું જોઈએ અને તે મુજબ તેનું મૂલ્યાંકન કરવું જોઈએ.
➢ ફોવેટેડ રેન્ડરિંગ સુવિધાને સક્ષમ કરવાથી એક નિશ્ચિત GPU પ્રદર્શન ખર્ચ આવે છે, જે આંખના બફરના કદના આધારે 1% થી 6% ની વચ્ચે બદલાઈ શકે છે. દ્રશ્યમાં સરળ શેડરનો ઉપયોગ કરતી વખતે, સંસાધનો બચાવવાથી પ્રદર્શન લાભ નિશ્ચિત GPU પ્રદર્શન ખર્ચ કરતા ઓછો હોઈ શકે છે, પરિણામે પ્રદર્શનમાં ઘટાડો થાય છે.
- મૂળ વિકાસકર્તા માટે, આ માર્ગદર્શિકાનો સંદર્ભ લો.
- યુનિટી ડેવલપર માટે, આ માર્ગદર્શિકાનો સંદર્ભ લો. નોંધનીય છે કે, જ્યારે તમે પોસ્ટ-પ્રોસેસિંગ અથવા HDR સક્ષમ કરો છો, ત્યારે ફોવેશનનો સંપૂર્ણ ઉપયોગ થઈ શકતો નથી. કારણ કે યુનિટી ઑબ્જેક્ટ્સને તેના પોતાના જનરેટ કરેલા રેન્ડર ટેક્સચર પર રેન્ડર કરશે, રનટાઇમ-જનરેટેડ પ્રેઝન્ટના રેન્ડર ટેક્સચર પર નહીં જે ફોવેશનને સપોર્ટ કરે છે.
- અવાસ્તવિક વિકાસકર્તા માટે, આ માર્ગદર્શિકાનો સંદર્ભ લો. નોંધનીય છે કે, મલ્ટિ- પર ફોવેશનનો સંપૂર્ણ ઉપયોગ કરી શકાતો નથી.View રેન્ડરિંગ, કારણ કે અનરિયલ સીધા જ રનટાઇમ-જનરેટેડ રેન્ડર ટેક્સચર પર ઑબ્જેક્ટ્સ રેન્ડર કરી શકતું નથી જે ફોવેશનને સપોર્ટ કરે છે.
૩.૧.૫ ફ્રેમ શાર્પનેસ એન્હાન્સમેન્ટ (FSE)
શાર્પન ફિલ્ટર રજૂ કરીને FSE શાર્પન રેન્ડરિંગ પરિણામ પ્રદાન કરે છે, તે સામગ્રીને વધુ સ્પષ્ટ બનાવી શકે છે અને દ્રશ્યમાં ટેક્સ્ટની સ્પષ્ટતા સુધારવા માટે ખૂબ મદદરૂપ થઈ શકે છે. જો એપ્લિકેશનમાં GPU બાઉન્ડ સમસ્યા હોય, તો જો તે જરૂરી ન હોય તો તમે FSE ને અક્ષમ કરવાનું વિચારી શકો છો.

- મૂળ વિકાસકર્તા માટે, આ માર્ગદર્શિકાનો સંદર્ભ લો.
- યુનિટી ડેવલપર માટે, આ માર્ગદર્શિકાનો સંદર્ભ લો.
- અવાસ્તવિક વિકાસકર્તા માટે, આ માર્ગદર્શિકાનો સંદર્ભ લો.
૩.૧.૬ અનુકૂલનશીલ ગુણવત્તા
બેટરી બચાવવા અને ડિવાઇસના રેન્ડરિંગ પર્ફોર્મન્સને જાળવવા માટે, આ સુવિધા CPU/GPU ઘડિયાળના ઉપયોગના આધારે તેના પર્ફોર્મન્સ લેવલને આપમેળે ગોઠવે છે. વધુમાં, પર્ફોર્મન્સ વધારવા માટે અન્ય વ્યૂહરચનાઓ લાગુ કરી શકાય છે, જેમ કે ફોવેશનને આપમેળે સક્ષમ/અક્ષમ કરવું અથવા જો ઉચ્ચ/નીચા લોડ ઇવેન્ટ્સ પ્રાપ્ત થાય તો સામગ્રી પોતાને સમાયોજિત કરી શકે છે.
- મૂળ વિકાસકર્તા માટે, આ માર્ગદર્શિકાનો સંદર્ભ લો.
- યુનિટી ડેવલપર માટે, આ માર્ગદર્શિકાનો સંદર્ભ લો. અમારા યુનિટી પ્લગઇનમાં, વર્તમાન પ્રદર્શનના આધારે આંખ બફરનું કદ આપમેળે ગોઠવી શકાય છે; ટેક્સ્ટનું કદ રિઝોલ્યુશન સૂચિમાં ખૂબ નાના સ્કેલ મૂલ્યોને ફિલ્ટર કરશે. અમે ઓછામાં ઓછા 20 dmm અથવા તેનાથી મોટા કદના ટેક્સ્ટની ભલામણ કરીએ છીએ.
- અવાસ્તવિક વિકાસકર્તા માટે, આ માર્ગદર્શિકાનો સંદર્ભ લો.
૩.૧.૭ એડેપ્ટિવ મોશન કમ્પોઝિટર
આ સુવિધા પ્રાયોગિક સુવિધા છે જેમાં UMC અને PMC શામેલ છે. UMC ફ્રેમ રેટને અડધો ઘટાડશે અને વિઝ્યુઅલ સ્મૂથનેસ રાખવા માટે રીઅલ ટાઇમમાં નવી ફ્રેમ એક્સ્ટ્રાપોલેટ કરશે. જોકે, તે કેટલીક લેટન્સી, આર્ટિફેક્ટ્સ અને GPU લોડિંગ સાથે આવે છે.
પીએમસી મુખ્યત્વે ડેપ્થ બફરનો ઉપયોગ કરે છે જેથી ATW ને HMD અનુવાદ માટે એકાઉન્ટ કરી શકાય, જે 6-dof વળતર સુધી વિસ્તરે છે. આ સુવિધા અનુવાદ લેટન્સીને 1~2 ફ્રેમ્સથી ઘટાડી શકે છે, પરંતુ GPU લોડિંગમાં વધારો કરી શકે છે.
- મૂળ વિકાસકર્તા માટે, આ માર્ગદર્શિકાનો સંદર્ભ લો.
- યુનિટી ડેવલપર માટે, આ માર્ગદર્શિકાનો સંદર્ભ લો.
- અવાસ્તવિક વિકાસકર્તા માટે, આ માર્ગદર્શિકાનો સંદર્ભ લો.
૩.૧.૮ રેન્ડર માસ્ક [અવાસ્તવિકને સપોર્ટ કરતું નથી]
વિકૃતિ પછી કિનારીઓ પરના પિક્સેલ્સ લગભગ અદ્રશ્ય થઈ જાય છે, રેન્ડર માસ્ક આ અદ્રશ્ય પિક્સેલ્સના ઊંડાઈ બફર મૂલ્યોમાં ફેરફાર કરે છે. જો તમે ઊંડાઈ પરીક્ષણ સક્ષમ કરો છો, તો early-z ને કારણે, આ અદ્રશ્ય પિક્સેલ રેન્ડર થશે નહીં, જેનાથી GPU લોડ ઘટશે. જો આ અદ્રશ્ય વિસ્તારોમાં ભારે-લોડિંગ રેન્ડરિંગ ઑબ્જેક્ટ્સ હોય તો આ સુવિધા ઉપયોગી છે; અન્યથા, જો આ વિસ્તારોમાં કોઈ રેન્ડરિંગ ઑબ્જેક્ટ્સ ન હોય, તો તેને અક્ષમ કરવાની ભલામણ કરવામાં આવે છે કારણ કે તે GPU વપરાશનો નાનો વપરાશ કરશે..
- નેટિવ ડેવલપર માટે, આ માર્ગદર્શિકાનો સંદર્ભ લો. રેન્ડરમાસ્કને કૉલ કરતા પહેલા તમારે ડેપ્થ બફરને બાંધવું આવશ્યક છે; નહીં તો, તે બિનઅસરકારક રહેશે.
- યુનિટી ડેવલપર માટે, આ માર્ગદર્શિકાનો સંદર્ભ લો.
- અવાસ્તવિક વિકાસકર્તા માટે, હાલમાં રેન્ડર માસ્ક સુવિધાને સપોર્ટ કરતું નથી.
૩.૨ MR સામગ્રી
૩.૨.૧ પાસથ્રુ ગુણવત્તા સમાયોજિત કરો
પાસથ્રુ ઇમેજ ગુણવત્તા માટે 3 સ્તરો છે:
➢ WVR_PassthroughImageQuality_DefaultMode – ચોક્કસ માંગ વિના MR સામગ્રી માટે યોગ્ય.
➢ WVR_PassthroughImageQuality_PerformanceMode – વર્ચ્યુઅલ સીન રેન્ડરિંગ માટે વધુ GPU સંસાધનની જરૂર હોય તેવા MR કન્ટેન્ટ માટે યોગ્ય.
➢ WVR_PassthroughImageQuality_QualityMode – MR કન્ટેન્ટ માટે યોગ્ય છે જે વપરાશકર્તાઓને આસપાસના વાતાવરણને સ્પષ્ટ રીતે જોવાની મંજૂરી આપે છે, પરંતુ કન્ટેન્ટના વર્ચ્યુઅલ સીનમાં પ્રદર્શન માટે વધુ સારી ટ્યુનિંગ હોવી જોઈએ.
GPU વપરાશ ઘટાડવા માટે તમે પાસથ્રુ ગુણવત્તાને પરફોર્મન્સ મોડમાં સમાયોજિત કરી શકો છો.
- નેટિવ, યુનિટી અથવા અનરિયલ ડેવલપર માટે, આ માર્ગદર્શિકાનો સંદર્ભ લો.
૩.૨.૨ પાસથ્રુ ફ્રેમ રેટ એડજસ્ટ કરો
ડિસ્પ્લે રિફ્રેશ રેટની જેમ, ઉચ્ચ પાસથ્રુ ફ્રેમરેટ સરળ વિઝ્યુઅલ્સ પ્રદાન કરે છે, પરંતુ સિસ્ટમ લોડમાં વધારો થવાની કિંમત ચૂકવે છે. તેનાથી વિપરીત, નીચા રિફ્રેશ રેટ સિસ્ટમ લોડ ઘટાડે છે, પરંતુ ઓછા સરળ વિઝ્યુઅલ્સમાં પરિણમે છે. પાસથ્રુ ફ્રેમરેટના 2 મોડ્સ છે: બૂસ્ટ અને નોર્મલ.
- મૂળ વિકાસકર્તા માટે, WVR_SetPassthroughImageRate નો ઉપયોગ કરીને પાસથ્રુ ગુણવત્તાને સમાયોજિત કરી શકાય છે.
- યુનિટી ડેવલપર માટે, કોડ દ્વારા બદલી શકાય છે, ઉદાહરણ તરીકેampસેટિંગ્સ નીચે મુજબ છે // C#
ઇન્ટરઓપ.ડબલ્યુવીઆર_સેટપાસથ્રુઇમેજક્વોલિટી(ડબલ્યુવીઆર_પાસથ્રુઇમેજક્વોલિટી.પર્ફોર્મન્સમોડ); - અવાસ્તવિક વિકાસકર્તા માટે, સેટિંગ પદ્ધતિ આકૃતિ 3-2-2 માં બ્લુપ્રિન્ટ નોડ જુઓ.

VIVE OpenXR સેટિંગ
OpenXR એ ઓપન સ્ટાન્ડર્ડ છે જે Khronos ગ્રુપ દ્વારા વિકસાવવામાં આવેલા VR ઉપકરણોની વિશાળ શ્રેણીમાં ચાલતા XR એપ્લિકેશનો વિકસાવવા માટે API નો એક સામાન્ય સેટ પૂરો પાડે છે. VIVE Focus 3 અને VIVE XR Elite પણ OpenXR ને સપોર્ટ કરે છે, VIVE OpenXR SDK HTC VR ઉપકરણો માટે વ્યાપક સપોર્ટ પૂરો પાડે છે, જે વિકાસકર્તાઓને HTC VR ઉપકરણો પર Allin-One અને Unity અને Unreal એન્જિન સાથે સામગ્રી બનાવવાની મંજૂરી આપે છે. અમે સતત વિવિધ ભૂલોને ઑપ્ટિમાઇઝ અને ઉકેલીએ છીએ, તેથી ભલામણ કરવામાં આવે છે કે વિકાસકર્તાઓ તેમના ઉપકરણના FOTA સંસ્કરણને અપ ટુ ડેટ રાખવા માટે અપડેટ કરે. હાલમાં, VIVE OpenXR SDK OpenGL ES અને Vulkan ને સપોર્ટ કરે છે.
૩.૧ VR સામગ્રી
૩.૧.૧ ડિસ્પ્લે રિફ્રેશ રેટ
અહીંનો ખ્યાલ 3.1.1 ડિસ્પ્લે રિફ્રેશ રેટ જેવો જ છે.
- મૂળ વિકાસકર્તા માટે, XrEventDataDisplayRefreshRateChangedFB નો સંદર્ભ લો.
- યુનિટી ડેવલપર માટે, આ માર્ગદર્શિકાનો સંદર્ભ લો.
- અવાસ્તવિક વિકાસકર્તા માટે, આ માર્ગદર્શિકાનો સંદર્ભ લો.
૩.૧.૨ આઈબફર રિઝોલ્યુશન
અહીંનો ખ્યાલ 3.1.2 આઇબફર રિઝોલ્યુશન જેવો જ છે. અમે ભલામણ કરીએ છીએ કે સ્કેલ ફેક્ટર 0.7 થી નીચે ન ઘટાડો, કારણ કે આનાથી અસ્વીકાર્ય દ્રશ્ય ગુણવત્તામાં પરિણમી શકે છે.
- મૂળ વિકાસકર્તા માટે, xrCreateSwapchain નો સંદર્ભ લો. કદને સમાયોજિત કરતી વખતે, તમારે પહોળાઈ અને ઊંચાઈને ગુણોત્તરથી ગુણાકાર કરવો જોઈએ. ,
- યુનિટી ડેવલપર માટે, નીચેના ઉદાહરણનો સંદર્ભ લોampલે // સી#
XRSettings.eyeTextureResolutionScale = 0.7f; //ભલામણ કરેલ 1.0f~0.7f - અવાસ્તવિક સેટિંગ્સ માટે, આ માર્ગદર્શિકાનો સંદર્ભ લો.
4.1.3 બહુ-View રેન્ડરીંગ
અહીંનો ખ્યાલ ૩.૧.૩ મલ્ટી- જેવો જ છે.View રેન્ડરિંગ. આ સુવિધા CPU પરનો ભાર ઘટાડે છે, GPU ના પણ કેટલાક ફાયદા છે. અમે આ સુવિધાને સક્ષમ કરવાની ભલામણ કરીએ છીએ.
- મૂળ વિકાસકર્તા માટે, KhronosGroup એક OpenXR મલ્ટી-View exampલે, આ માર્ગદર્શિકાનો સંદર્ભ લો.
- યુનિટી ડેવલપર માટે, રેન્ડર મોડનો સંદર્ભ લો, સિંગલ પાસ બહુવિધ છે-view લક્ષણ
- અવાસ્તવિક વિકાસકર્તાઓ માટે, VIVE વેવ સેટિંગ્સની જેમ, આ માર્ગદર્શિકાનો સંદર્ભ લો.
૪.૧.૪ પ્રસ્તાવના [અવાસ્તવિકને સમર્થન આપતું નથી]
અહીંનો ખ્યાલ 3.1.4 ફોવેશન જેવો જ છે. ફોવેટેડ રેન્ડરિંગ મુખ્યત્વે GPU લોડ ઘટાડવા માટે રચાયેલ છે પરંતુ તેને સક્ષમ કરવાથી એક નિશ્ચિત GPU પ્રદર્શન ખર્ચ થશે અને જો ફોવેશન ખૂબ ઓછું સેટ કરવામાં આવે અને ચોક્કસ સામગ્રી અથવા ટેક્સચરનો ઉપયોગ કરવામાં આવે, તો તે ખૂબ જ ખરાબ થઈ શકે છે.
વપરાશકર્તા માટે ધ્યાનપાત્ર. તેથી, તમારી ચોક્કસ જરૂરિયાતો અને પ્રદર્શન વિચારણાઓના આધારે સુવિધાને સક્ષમ અથવા અક્ષમ કરવાની સલાહ આપવામાં આવે છે. હાલમાં, Foveated કાર્યક્ષમતા ફક્ત VIVE OpenXR SDK પર OpenGL ES માં સમર્થિત છે.
- મૂળ વિકાસકર્તા માટે, આ સુવિધા ઉપલબ્ધ છે, પરંતુ હાલમાં, કોઈ ભૂતપૂર્વ નથીampલેસ આપવામાં આવે છે.
- યુનિટી ડેવલપર માટે, આ માર્ગદર્શિકાનો સંદર્ભ લો.
- અવાસ્તવિક વિકાસકર્તા માટે, હાલમાં આ સુવિધાને સપોર્ટ કરતું નથી.
૩.૧.૮ રેન્ડર માસ્ક [અવાસ્તવિકને સપોર્ટ કરતું નથી]
અહીંનો ખ્યાલ 3.1.8 રેન્ડર માસ્ક જેવો જ છે.
- નેટિવ ડેવલપર માટે, મેશ મેળવવા માટે XrVisibilityMaskKHR નો ઉપયોગ કરો. સીન રેન્ડર કરતા પહેલા, સીન રેન્ડર કરતા પહેલા ડેપ્થ બફર વેલ્યુ ભરવા માટે આ મેશ નો ઉપયોગ કરો.
- યુનિટી ડેવલપર માટે, રેન્ડર માસ્ક સુવિધા OpenGL ES માટે ડિફોલ્ટ રૂપે સક્ષમ છે, અને નીચેના કોડનો ઉપયોગ કરીને તેને અક્ષમ કરી શકાય છે; વલ્કન હાલમાં આ સુવિધાને સપોર્ટ કરતું નથી. //C# UnityEngine.XR.XRSettings.occlusionMaskScale = 0.0f;
- અવાસ્તવિક વિકાસકર્તા માટે, હાલમાં રેન્ડર માસ્ક સુવિધાને સપોર્ટ કરતું નથી.
૩.૨ MR સામગ્રી
OpenXR હાલમાં પાસથ્રુ ગુણવત્તા અને ફ્રેમ રેટ સેટ કરવાનું સમર્થન કરતું નથી. અમે પાસથ્રુ સુવિધાને ઑપ્ટિમાઇઝ અને ઠીક કરવાનું ચાલુ રાખીશું, તેથી ભલામણ કરવામાં આવે છે કે વિકાસકર્તાઓ ઉપકરણના FOTA સંસ્કરણને અપ ટુ ડેટ રાખવા માટે અપડેટ કરે.
સામાન્ય ઑપ્ટિમાઇઝેશન
૫.૧ હાઇ પર્ફોર્મન્સ મોડ બંધ કરો
"હાઇ પર્ફોર્મન્સ મોડ" બંધ કરવાથી ડિવાઇસનું ડિસ્પ્લે કદ ઘટી શકે છે, જેનાથી GPU વપરાશ ઓછો થઈ શકે છે. ગેરલાભ એ છે કે સ્ક્રીન રિઝોલ્યુશનમાં ઘટાડો થાય છે. તમે તેને સક્ષમ કરવું કે નહીં તે નક્કી કરવા માટે ગુણવત્તા અને પ્રદર્શનને સંતુલિત કરી શકો છો.
VIVE ફોકસ 3 માટે સેટિંગ સ્થાન આકૃતિ 5-1-1 માં બતાવવામાં આવ્યું છે:

VIVE XR Elite માટે સેટિંગ સ્થાન આકૃતિ 5-1-2 માં બતાવવામાં આવ્યું છે:

5.2 મલ્ટિઝampling Anti-Aliasing
મલ્ટીસampling is an anti-aliasing technique used to smooth out jagged edges, usually is accelerated through hardware, which incurs GPU performance cost. We recommend not setting MSAA higher than 2x because more hight value will consume more gpu usage.
- મૂળ વિકાસકર્તા માટે, MSAA OpenGL ES exsample આનો સંદર્ભ લઈ શકો છો; MSAA વલ્કન ભૂતપૂર્વampler આનો સંદર્ભ લઈ શકે છે.
એડ્રેનો GPU એક એક્સટેન્શન પૂરું પાડે છે જે MSAA ને ઑપ્ટિમાઇઝ કરે છે. - યુનિટી ડેવલપર માટે, આ ગિલ્ડનો સંદર્ભ લો.
- For Unreal developer, refer to this guild. Unreal also has provide post processing anti-aliasing, refer to this guild.
૫.૩ GMEM લોડ/સ્ટોર
એડ્રેનો GPU આર્કિટેક્ચરમાં, એક સુવિધા છે જ્યાં, રેન્ડર ટાર્ગેટને બાંધતી વખતે, જો રેન્ડર ટાર્ગેટ સાફ અથવા અમાન્ય ન થાય, તો દર વખતે રેન્ડરિંગ થાય ત્યારે, રેન્ડર ટાર્ગેટમાંના મૂલ્યો ગ્રાફિક્સ મેમરીમાં લોડ થાય છે, જેને GMEM લોડ કહેવામાં આવે છે. જો અગાઉના મૂલ્યોની જરૂર ન હોય, તો રેન્ડરિંગ પહેલાં રેન્ડર ટાર્ગેટને સાફ અથવા અમાન્ય કરો, GPU પ્રદર્શન સુધારવા માટે આ પરિસ્થિતિને ટાળી શકાય છે.
તમે નીચેની પદ્ધતિઓનો ઉપયોગ કરીને GMEM લોડ ટાળી શકો છો. OpenGL ES માં, FBO ને બાંધ્યા પછી, તમે રંગ, ઊંડાઈ અને સ્ટેન્સિલ બફર સાફ કરવા માટે glClear અને glClearDepth ને કૉલ કરી શકો છો, અથવા ઉલ્લેખિત રેન્ડર ટાર્ગેટને અમાન્ય કરવા માટે glInvalidateFramebuffer ને કૉલ કરી શકો છો. Vulkan માં, વધારાની સૂચનાઓ જરૂરી નથી; VkAttachmentDescription.loadOp માં ઉપયોગ કરતા પહેલા તમે જોડાણ સાફ કરવું કે નહીં તે સ્પષ્ટપણે સેટ કરી શકો છો.
તેવી જ રીતે, ટાઇલ રેન્ડરના પરિણામને ગ્રાફિક્સ મેમરીમાંથી મુખ્ય મેમરીમાં પાછું સ્ટોર કરવાને GMEM સ્ટોર કહેવામાં આવે છે; આ કામગીરી GPU માટે પણ ખર્ચાળ છે. આને ટાળવા માટે, અમે બિનજરૂરી સ્ટોર કામગીરીને રોકવા માટે ફક્ત જરૂરી રેન્ડર લક્ષ્યોને બંધનકર્તા બનાવવાની ભલામણ કરીએ છીએ.
૫.૪ કમ્પોઝિશન લેયર (મલ્ટી લેયર)
મલ્ટી-લેયરનો ઉપયોગ કરીને પ્રદર્શિત કરાયેલા ટેક્સચરની દ્રશ્ય ગુણવત્તા વધુ સારી હોય છે. જો કે, આ સુવિધા સ્તરોની સંખ્યા અને ટેક્સચરના કદ સાથે GPU પ્રદર્શનમાં નોંધપાત્ર વધારો કરે છે. અમે ત્રણ સ્તરોથી વધુ ન કરવાની ભલામણ કરીએ છીએ.
- મૂળ વિકાસકર્તા માટે,
o VIVE Wave SDK દરેક સ્તર માટે ડેટા પાસ કરવા માટે WVR_SubmitFrameLayers નો ઉપયોગ કરે છે.
o VIVE OpenXR SDK લેયર ડેટાને XrFrameEndInfo માં મૂકે છે અને તેને xrEndFrame દ્વારા સબમિટ કરે છે. - યુનિટી ડેવલપર માટે,
o VIVE Wave SDK સેટિંગ્સ, આ માર્ગદર્શિકાનો સંદર્ભ લો,
o VIVE OpenXR સેટિંગ્સ, આ માર્ગદર્શિકાનો સંદર્ભ લો. - અવાસ્તવિક વિકાસકર્તા માટે,
o VIVE Wave SDK સેટિંગ્સ માટે, આ માર્ગદર્શિકાનો સંદર્ભ લો.
o VIVE OpenXR સેટિંગ્સ, આ માર્ગદર્શિકાનો સંદર્ભ લો.
૫.૫ સીપીયુ સ્પાઇક
જ્યારે CPU લોડિંગ વધુ ભારે હોય છે, ત્યારે કેટલાક પૃષ્ઠભૂમિ ઉચ્ચ પ્રાથમિકતા ધરાવતા થ્રેડોને પ્રક્રિયા કરે છે, તે મૂળ અમલીકરણમાં વિક્ષેપ પાડી શકે છે. અમે ગેરંટી આપી શકતા નથી કે સામગ્રી એપ્લિકેશન અન્ય થ્રેડ દ્વારા વિક્ષેપિત થશે નહીં.
If such issues arise, you can try increasing the thread priority to see if it resolves the problem. But if you change the thread configuration to optimize for devices, you need to check if this has any negative impact.
- યુનિટી ડેવલપર માટે, એન્ડ્રોઇડ થ્રેડ કન્ફિગરેશન ફીચરનો સંદર્ભ લો. જો તમે VIVE Wave SDK નો ઉપયોગ કરી રહ્યા છો, તો અમારી પાસે WaveXRSettings માં એક ફીચર છે જે તમને પ્રાધાન્યતાને સમાયોજિત કરવાની મંજૂરી આપે છે, જેમ કે આકૃતિ 5-5-2 માં બતાવ્યા પ્રમાણે. નાનું મૂલ્ય ઉચ્ચ પ્રાધાન્યતા દર્શાવે છે.

- જ્યાં સુધી તમે એન્જિન કોડમાં ફેરફાર ન કરો ત્યાં સુધી બાહ્ય સેટિંગ્સ દ્વારા ગેમ થ્રેડ, રેન્ડરિંગ થ્રેડ અને RHI થ્રેડ પ્રાધાન્યતા બદલવાની કોઈ અવાસ્તવિક પદ્ધતિ નથી.
કૉપિરાઇટ © 2024 HTC કોર્પોરેશન. સર્વાધિકાર સુરક્ષિત.
દસ્તાવેજો / સંસાધનો
![]() | VR રેન્ડરિંગ પ્રદર્શન |
સંદર્ભો
- dev.epicgames.com/community/learning/courses/eER/unreal-engine-technical-guide-to-linear-content-creation-production/k8pB/unreal-engine-performance-profiling-and-debugging?locale=dev.epicgames.com
- Anti Aliasing and Upscaling in Unreal Engine | Unreal Engine 5.5 Documentation | Epic Developer Communitydev.epicgames.com
- dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/HeadMountedDisplay/IHeadMountedDisplay/SetPixelDensity?application_version=4.27dev.epicgames.com
- Performance Guidelines for Mobile Devices in Unreal Engine | Unreal Engine 5.5 Documentation | Epic Developer Communitydev.epicgames.com
- dev.epicgames.com/documentation/en-us/unreal-engine/unreal-insights-in-unreal-enginedev.epicgames.com
- ક્યુઅલકોમ દસ્તાવેજીકરણdeveloper.qualcomm.com
- developer.vive.com/resources/openxr/openxr-mobile/tutorials/unity/composition-layer/developer.vive.com
- developer.vive.com/resources/openxr/unity/tutorials/using-foveation-in-your-app/developer.vive.com
- developer.vive.com/resources/openxr/unity/tutorials/using-foveation-in-your-app/#GoldenSampledeveloper.vive.com
- developer.vive.com/resources/openxr/unity/tutorials/using-refreshrate-in-your-app/#GoldenSampledeveloper.vive.com
- વપરાશકર્તા માર્ગદર્શિકાmanual.tools
