
VR రెండరింగ్ పనితీరు
ట్యూనింగ్ మరియు ఆప్టిమైజేషన్లు
పరిచయం
పరిమిత వనరులతో కూడిన హార్డ్వేర్పై సరైన VR అనుభవాన్ని సాధించడం అనేది సున్నితమైన మరియు సౌకర్యవంతమైన వినియోగదారు అనుభవాన్ని అందించడానికి కీలకం. కంటెంట్ రెండరింగ్ యొక్క ఫ్రేమ్ రేటు పరికరం యొక్క రిఫ్రెష్ రేటు కంటే తగ్గితే లేదా అస్థిరంగా ఉంటే, అది ఫ్రేమ్ జడ్జర్ మరియు స్టట్టింగ్, మోషన్ సిక్నెస్ మొదలైన వాటికి దారితీస్తుంది. చివరికి వినియోగదారు అనుభవాన్ని ప్రతికూలంగా ప్రభావితం చేస్తుంది. అందువల్ల, ఆనందించే అనుభవాన్ని నిర్ధారించడానికి కంటెంట్ పనితీరును ఆప్టిమైజ్ చేయడం చాలా ముఖ్యం.
పనితీరు ట్యూనింగ్ను ప్రారంభించే ముందు, అసమర్థమైన ట్యూనింగ్ను నివారించడానికి పనితీరు అడ్డంకులు ఎక్కడ ఉన్నాయో అర్థం చేసుకోవడం ముఖ్యం. డెవలపర్లు పనితీరు అడ్డంకులను గుర్తించడంలో మరియు రెండరింగ్ పనితీరు సమస్యలను పరిష్కరించడానికి పరిష్కారాలను అందించడంలో సహాయపడటానికి ఈ పత్రం రూపొందించబడింది.
ఈ పత్రం క్రింది విభాగాలుగా నిర్వహించబడింది:
- అధ్యాయం 2: బాటిల్నెక్ను గుర్తించండి - ఈ విభాగం డెవలపర్లకు అడ్డంకులు ఎక్కడ ఉన్నాయో గుర్తించడంలో సహాయపడుతుంది.
- అధ్యాయం 3 మరియు 4: VIVE వేవ్ మరియు VIVE ఓపెన్ఎక్స్ఆర్ సెట్టింగ్లు - ఈ విభాగాలు VIVE వేవ్ మరియు ఓపెన్ఎక్స్ఆర్ యాప్ల కోసం CPU/GPU పనితీరును ప్రభావితం చేసే నిర్దిష్ట సెట్టింగ్లను వివరిస్తాయి. ఏదైనా మెరుగుదల ఉందో లేదో తెలుసుకోవడానికి డెవలపర్లు ఎదుర్కొన్న పనితీరు అడ్డంకుల ఆధారంగా ఈ ఫీచర్లను ప్రారంభించడం లేదా నిలిపివేయడం ద్వారా ప్రయోగాలు చేయవచ్చు.
- అధ్యాయం 5: సాధారణ ఆప్టిమైజేషన్ – ఈ విభాగం కొన్ని సాధారణ ఆప్టిమైజేషన్ పద్ధతులు మరియు అనుభవాలను పంచుకుంటుంది.
బాటిల్నెక్ను గుర్తించండి
HMD కదులుతున్నప్పుడు, VR/MR యాప్లో ఫ్రేమ్ జిట్టర్ లేదా బ్లాక్ ఎడ్జ్ మొదలైనవి ఉంటే, అది సాధారణంగా చెడు రెండరింగ్ పనితీరు సమస్య వల్ల సంభవిస్తుంది. సాధారణంగా, రెండరింగ్ పనితీరు సమస్యలను 2 రకాలుగా వర్గీకరించవచ్చు: CPU-బౌండ్ లేదా GPU-బౌండ్. అసమర్థమైన ట్యూనింగ్ను నివారించడానికి మీ యాప్కు ఏ రకమైన బౌండ్ చాలా ముఖ్యమో అర్థం చేసుకోండి.
ఈ అధ్యాయంలో, పనితీరు సమస్యలు ఎక్కడ ఉన్నాయో త్వరగా గుర్తించడానికి మిమ్మల్ని అనుమతించే సరళమైన దశలను మేము అందిస్తున్నాము.
2.1 కంటెంట్ రెండరింగ్ FPSని తనిఖీ చేయండి
ముందుగా, కంటెంట్ FPSని తనిఖీ చేయడం ద్వారా ప్రారంభిస్తాము, అంటే కంటెంట్ సెకనుకు రెండర్ చేసే ఫ్రేమ్ల సంఖ్య. దీనిని డిస్ప్లే ఫ్రేమ్రేట్కు నిర్వహించాలి మరియు స్థిరంగా ఉంచాలి. లేకపోతే, అది ఫ్రేమ్ జిట్టర్లకు కారణం కావచ్చు.
మీ అప్లికేషన్ SDK VIVE WAVE SDK 6.0.0 లేదా తరువాతి వెర్షన్ని ఉపయోగిస్తుంటే, మీరు FPSని తనిఖీ చేయడానికి క్రింది adb ఆదేశాన్ని ఉపయోగించవచ్చు. DK 6.0.0
$adb లాగ్క్యాట్ -s VRమెట్రిక్
మీరు ఈ క్రింది లాగ్ డేటాను చూస్తారు.
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 లాగ్క్యాట్ -లు RENDER_ATW
మీరు ఈ క్రింది లాగ్ డేటాను చూస్తారు
RENDER_ATW: [FPS] కొత్త ఆకృతి:90.00
RENDER_ATW: [FPS] R ప్రస్తుతం:90.00 దాటవేయి:0 317, -0.0155 0.805527, 0.006788)
RENDER_ATW: [FPS] ఎల్ ప్రస్తుతం:90.00 దాటవేయి:0 (0.592301, -0.015502, 0.805539, 0.006773)
“కొత్త ఆకృతి” తర్వాత ఉన్న సంఖ్య ప్రస్తుత కంటెంట్ FPSని సూచిస్తుంది. “R ప్రస్తుతం” మరియు “L ప్రస్తుతం” తర్వాత ఉన్న సంఖ్య డిస్ప్లే ఫ్రేమ్రేట్ను సూచిస్తుంది.
కొన్నిసార్లు, కంటెంట్ FPS మరియు డిస్ప్లే ఫ్రేమ్రేట్ మధ్య స్వల్ప వ్యత్యాసం ఉండవచ్చు.
ఉదాహరణకుampఅయితే, పైన పేర్కొన్న సందర్భంలో, 89.8 FPS ను 90 FPS గా పరిగణించవచ్చు.
యాప్ కంటెంట్ FPS డిస్ప్లే ఫ్రేమ్రేట్ కంటే స్థిరంగా తక్కువగా ఉంటే లేదా అస్థిరంగా ఉంటే, అది రెండరింగ్ పనితీరు సమస్యను సూచిస్తుంది. కాబట్టి, తదుపరి దశ అడ్డంకి CPU నుండి వస్తుందా లేదా GPU నుండి వస్తుందా అని గుర్తించడం.
2.2 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 లాగ్క్యాట్ | grep CPU_USAGE
పవర్షెల్లో #
$ 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% మించి ఉంటే, FPS మెరుగుపడుతుందో లేదో చూడటానికి మీరు ఐబఫర్ రిజల్యూషన్ (సెక్షన్ 3.1.2, సెక్షన్ 4.1.2) సర్దుబాటు చేయడానికి ప్రయత్నించవచ్చు. ఈ సర్దుబాటు మెరుగైన స్థితికి దారితీస్తుందా?
పనితీరు విషయంలో, సమస్య GPU-బౌండ్ అని మేము నిర్ధారించగలము మరియు తదనుగుణంగా మా ఆప్టిమైజేషన్ ప్రయత్నాలను కేంద్రీకరించగలము.
మరోవైపు, ఐబఫర్ రిజల్యూషన్ను సర్దుబాటు చేయడం వల్ల పనితీరులో గణనీయమైన మెరుగుదల కనిపించకపోతే, అడ్డంకి CPU-బౌండ్ అయి ఉండవచ్చు మరియు మనం CPU పనితీరును ఆప్టిమైజ్ చేయడంపై దృష్టి పెట్టాలి.
అప్లికేషన్ ఒకేసారి CPU-బౌండ్ మరియు GPU-బౌండ్ అయ్యే అవకాశం కూడా ఉంది. అలాంటి సందర్భాలలో, సమతుల్య పనితీరు మెరుగుదలలను సాధించడానికి CPU మరియు GPU రెండింటికీ ఆప్టిమైజేషన్ ప్రయత్నాలను వర్తింపజేయాలి.
2.3 GPU-బౌండ్
VR యాప్ GPU-బౌండ్ అయినప్పుడు, GPU ప్రాథమిక అడ్డంకి అని అర్థం మరియు అది అప్లికేషన్ యొక్క రెండరింగ్ డిమాండ్లను కొనసాగించలేకపోతుంది. GPU-బౌండ్ సమస్యలను తగ్గించడానికి, ఈ క్రింది సిఫార్సులను పరిగణించండి:
ముందుగా, RenderDoc లేదా Game Engine pro వంటి ప్రొఫైలింగ్ సాధనాలను ఉపయోగించండి.filer (యూనిటీ ప్రోfiler, అన్రియల్ ఇన్సైట్స్) GPU ఎక్కువ సమయం ఎక్కడ గడుపుతుందో విశ్లేషించడానికి. అత్యంత ఖరీదైన కార్యకలాపాలను గుర్తించి వాటిని ఆప్టిమైజ్ చేయడంపై దృష్టి పెట్టండి.
నేటివ్ డెవలపర్ కోసం, ఏ డ్రా కాల్ అధిక GPU లోడ్కు కారణమవుతుందో గుర్తించడానికి మీరు RenderDocని ఉపయోగించవచ్చు.
యూనిటీ డెవలపర్ కోసం, మీరు యూనిటీ దిస్ డాక్యుమెంట్ను అనుసరించవచ్చు లేదా రెండరింగ్ పనితీరు సమస్యను విశ్లేషించడానికి రెండర్డాక్ను ఉపయోగించవచ్చు మరియు మీ అప్లికేషన్ను ఆప్టిమైజ్ చేయడానికి మార్గదర్శకత్వం కోసం యూనిటీ గ్రాఫిక్స్ ఆప్టిమైజేషన్ డాక్యుమెంటేషన్ను అనుసరించవచ్చు.
అన్రియల్ డెవలపర్ కోసం, మీరు రెండరింగ్ పనితీరు సమస్యను విశ్లేషించడానికి GPU విజువలైజర్ని ఉపయోగించవచ్చు లేదా RenderDocని ఉపయోగించవచ్చు మరియు మీ అప్లికేషన్ను ఆప్టిమైజ్ చేయడానికి మార్గదర్శకత్వం కోసం అన్రియల్ పనితీరు మార్గదర్శకాలను అనుసరించండి.
రెండవది, మీరు GPU లోడింగ్ను తగ్గించడానికి కొన్ని వేవ్ ఫీచర్లు లేదా సెట్టింగ్లను సర్దుబాటు చేయడానికి కూడా ప్రయత్నించవచ్చు.
- డిస్ప్లే రిఫ్రెష్ రేట్ నెమ్మదిగా సెట్ చేయండి (విభాగం 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 ని చూడవచ్చు.
2.4 CPU-బౌండ్
ఒక VR యాప్ CPU-బౌండ్ అయినప్పుడు, CPU ప్రాథమిక అడ్డంకి అని అర్థం, ఈ క్రింది సిఫార్సులను పరిగణించండి:
ముందుగా, Systrace లేదా Game Engine pro వంటి ప్రొఫైలింగ్ సాధనాలను ఉపయోగించండి.filer (యూనిటీ ప్రోfiler, అన్రియల్ ఇన్సైట్స్) ఉపయోగించి మీ కోడ్లోని ఏ భాగాలు CPU వనరులను ఎక్కువగా వినియోగిస్తున్నాయో విశ్లేషించి గుర్తించండి. ఈ ప్రాంతాలను ఆప్టిమైజ్ చేయడంపై దృష్టి పెట్టండి మరియు CPU లోడ్ను తగ్గించడానికి కంప్యూటేషనల్గా ఇంటెన్సివ్ అల్గారిథమ్లను రీఫ్యాక్టర్ చేయండి.
- నేటివ్ డెవలపర్ కోసం, మీరు ప్రో కోసం సిస్ట్రేస్ని ఉపయోగించవచ్చుfileమీ ప్రాజెక్ట్.
- యూనిటీ డెవలపర్ కోసం, మీరు CPU యూసేజ్ ప్రోని ఉపయోగించవచ్చుfileCPU పనితీరు సమస్యను కనుగొనడానికి r మాడ్యూల్.
- అన్రియల్ డెవలపర్ కోసం, మీరు CPU పనితీరు సమస్యను కనుగొనడానికి అన్రియల్ యొక్క అంతర్దృష్టులను ఉపయోగించవచ్చు.
రెండవది, మీరు GPU లోడింగ్ను తగ్గించడానికి కొన్ని వేవ్ ఫీచర్లు లేదా సెట్టింగ్లను సర్దుబాటు చేయడానికి కూడా ప్రయత్నించవచ్చు.
- డిస్ప్లే రిఫ్రెష్ రేట్ నెమ్మదిగా సెట్ చేయండి (విభాగం 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 వినియోగాన్ని విశ్లేషించండి. చివరగా, ప్రోని ఉపయోగించండిfileసంభావ్య పనితీరు సమస్యలను గుర్తించడానికి లేదా CPU పనితీరును ఆప్టిమైజ్ చేయడానికి వేవ్ ఫీచర్లు లేదా సెట్టింగ్లను సర్దుబాటు చేయడానికి r.

2.6 త్వరిత సూచన ఏ సెట్టింగ్లు CPU/GPU లోడింగ్ను మెరుగుపరుస్తాయి
CPU/GPU లోడింగ్కు సంబంధించిన SDK సెట్టింగ్లను క్రింద జాబితా చేయండి. సంబంధిత ఆప్టిమైజేషన్ సెట్టింగ్లను తనిఖీ చేయడానికి మీరు యాప్ యొక్క అడ్డంకిని బట్టి ఉండవచ్చు.
CPU కి సంబంధించినది:
- VIVE వేవ్ SDK సెట్టింగ్
o VR కంటెంట్
▪ 3.1.1 డిస్ప్లే రిఫ్రెష్ రేట్
▪ 3.1.4 బహుళ-View రెండరింగ్
▪ 3.1.6 అనుకూల నాణ్యత
▪ 3.1.7 అడాప్టివ్ మోషన్ కంపోజిటర్
ఓ MR కంటెంట్
▪ 3.2.2 పాస్త్రూ ఫ్రేమ్ రేట్ను సర్దుబాటు చేయండి - VIVE OpenXR SDK సెట్టింగ్
o VR కంటెంట్
▪ 4.1.1 డిస్ప్లే రిఫ్రెష్ రేట్
▪ 4.1.4 బహుళ-View రెండరింగ్ - సాధారణ ఆప్టిమైజేషన్
o 5.5 CPU స్పైక్
GPU కి సంబంధించినది:
- VIVE వేవ్ SDK సెట్టింగ్
o VR కంటెంట్
▪ 3.1.1 డిస్ప్లే రిఫ్రెష్ రేట్
▪ 3.1.2 ఐబఫర్ రిజల్యూషన్
▪ 3.1.3 బహుళ-View రెండరింగ్
▪ 3.1.4 ఫోవియేషన్
▪ 3.1.5 ఫ్రేమ్ షార్ప్నెస్ ఎన్హాన్స్మెంట్ (FSE)
▪ 3.1.6 అనుకూల నాణ్యత
▪ 3.1.7 అడాప్టివ్ మోషన్ కంపోజిటర్
▪ 3.1.8 Render Mask [Not Support Unreal]
ఓ MR కంటెంట్
▪ 3.2.1 పాస్త్రూ నాణ్యతను సర్దుబాటు చేయండి
▪ 3.2.2 పాస్త్రూ ఫ్రేమ్ రేట్ను సర్దుబాటు చేయండి - VIVE OpenXR SDK సెట్టింగ్
o VR కంటెంట్
▪ 4.1.1 డిస్ప్లే రిఫ్రెష్ రేట్
▪ 4.1.2 ఐబఫర్ రిజల్యూషన్
▪ 4.1.3 బహుళ-View రెండరింగ్
▪ 4.1.4 Foveation [Not Support Unreal]
▪ 4.1.5 Render Mask [Not Support Unreal] - సాధారణ ఆప్టిమైజేషన్
o 5.1 హై పెర్ఫార్మెన్స్ మోడ్ను ఆఫ్ చేయండి
o 5.2 మల్టీస్ampలింగ్
o 5.3 GMEM లోడ్/స్టోర్
o 5.4 కంపోజిషన్ లేయర్ (మల్టీ లేయర్)
VIVE వేవ్ సెట్టింగ్
VIVE Wave అనేది ఓపెన్ ప్లాట్ఫామ్ మరియు టూల్సెట్, ఇది VR కంటెంట్ను సులభంగా అభివృద్ధి చేయడానికి మిమ్మల్ని అనుమతిస్తుంది మరియు మూడవ పక్ష భాగస్వాములకు అధిక-పనితీరు గల పరికర ఆప్టిమైజేషన్ను అందిస్తుంది. VIVE Wave యూనిటీ మరియు అన్రియల్ గేమ్ ఇంజిన్లకు మద్దతు ఇస్తుంది.
మేము నిరంతరం వివిధ బగ్లను ఆప్టిమైజ్ చేసి పరిష్కరిస్తాము, కాబట్టి SDKని తాజాగా ఉంచాలని మేము సిఫార్సు చేసాము.
ప్రస్తుతం, VIVE Wave OpenGL ES కి మాత్రమే మద్దతు ఇస్తుంది. GPU పనితీరుపై ప్రభావం ద్వారా క్రమబద్ధీకరించబడిన లక్షణాలను ఇక్కడ జాబితా చేస్తుంది. మేము దీనిని రెండు భాగాలుగా విభజిస్తాము: VR కంటెంట్ మరియు MR కంటెంట్.
3.1 VR కంటెంట్
3.1.1 డిస్ప్లే రిఫ్రెష్ రేట్
అధిక రిఫ్రెష్ రేట్లు సున్నితమైన విజువల్స్ను అందిస్తాయి, కానీ పెరిగిన సిస్టమ్ లోడ్తో వస్తాయి. దీనికి విరుద్ధంగా, తక్కువ రిఫ్రెష్ రేట్లు సిస్టమ్ లోడ్ను తగ్గిస్తాయి, కానీ తక్కువ మృదువైన విజువల్స్కు దారితీస్తాయి. యాప్లో CPU/GPU బౌండ్ సమస్య ఉంటే, మీరు తగ్గించడాన్ని ప్రయత్నించవచ్చుasinసమస్యను తగ్గించడానికి డిస్ప్లే రిఫ్రెష్ రేట్ను g కి సెట్ చేయండి.
- నేటివ్ డెవలపర్ కోసం, WVR_SetFrameRate ని చూడండి.
- యూనిటీ డెవలపర్ కోసం, ఈ గైడ్ని చూడండి.
- అన్రియల్ డెవలపర్ కోసం, ఈ గైడ్ని చూడండి.
3.1.2 ఐబఫర్ రిజల్యూషన్
ఐబఫర్ రిసౌల్షన్ అనేది కంటెంట్ యాప్ రెండర్ చేయబడే టెక్స్చర్ సైజు, రెండర్ చేయబడిన టెక్స్చర్ పోస్టింగ్ ప్రాసెస్ చేయడానికి రన్టైమ్కు సమర్పించబడుతుంది మరియు HMD డిస్ప్లేలో ప్రదర్శించబడుతుంది.
పెద్ద ఐ బఫర్ సైజు స్పష్టమైన మరియు మరింత వివరణాత్మక విజువల్స్కు దారితీయవచ్చు, కానీ ఇది GPU పై గణనీయమైన భారాన్ని కూడా విధిస్తుంది. కాబట్టి, విజువల్ నాణ్యత మరియు పనితీరు మధ్య సరైన సమతుల్యతను కనుగొనడం చాలా అవసరం.
యాప్లో GPU బౌండ్ సమస్య ఉంటే, మీరు తగ్గించు ప్రయత్నించవచ్చుasinఐబఫర్ పరిమాణాన్ని స్కేల్ ఫ్యాక్టర్తో గుణించండి. అయితే, స్కేల్ ఫ్యాక్టర్ను 0.7 కంటే తక్కువకు తగ్గించవద్దని మేము సిఫార్సు చేస్తున్నాము, ఎందుకంటే ఇది ఆమోదయోగ్యం కాని దృశ్య నాణ్యతకు దారితీయవచ్చు.
- నేటివ్ డెవలపర్ కోసం, WVR_ObtainTextureQueue ని చూడండి. పరిమాణాన్ని సర్దుబాటు చేసేటప్పుడు, మీరు వెడల్పు మరియు ఎత్తును నిష్పత్తితో గుణించాలి.
- యూనిటీ డెవలపర్ కోసం, WaveXRSettings చూడండి.
ప్రత్యామ్నాయంగా, మీరు belwoe కోడ్ ద్వారా మార్పులు చేయవచ్చు.
XRSettings.eyeTextureResolutionScale = రిజల్యూషన్ స్కేల్ విలువ; // C# - అన్రియల్ డెవలపర్ కోసం, SetPixelDensity ని చూడండి.
3.1.3 బహుళ-View రెండరింగ్
సాంప్రదాయ రెండరింగ్లో, మనం ఎడమ మరియు కుడి కళ్ళను విడివిడిగా గీస్తాము, దీనికి ఒకే దృశ్యానికి రెండు డ్రా కాల్స్ అవసరం. బహుళ-View రెండరింగ్ ఈ సమస్యను ఒకే ఒక డ్రా కాల్ చేయడం ద్వారా పరిష్కరిస్తుంది.
ఈ లక్షణం CPU లోడ్ను తగ్గిస్తుందిasinగ్రా డ్రా కాల్స్ సంఖ్య. GPU కి కొన్ని ప్రయోజనాలు కూడా ఉన్నాయి, వెర్టెక్స్ షేడర్ యొక్క పనిభారం కూడా తగ్గించబడుతుంది ఎందుకంటే దీనికి మరొక కంటికి అదనపు షేడర్ను అమలు చేయవలసిన అవసరం లేదు, కానీ ఫ్రాగ్మెంట్ షేడర్ యొక్క పనిభారం మారదు ఎందుకంటే ఇది ఇప్పటికీ రెండు కళ్ళకు ప్రతి పిక్సెల్ను అంచనా వేయాలి. ఈ లక్షణాన్ని ప్రారంభించమని మేము సిఫార్సు చేస్తున్నాము.
- నేటివ్ డెవలపర్ కోసం, మీరు wvr_native_hellovr లను చూడవచ్చుample.
- యూనిటీ డెవలపర్ కోసం, రెండర్ మోడ్ను చూడండి, సింగిల్ పాస్ బహుళ-view లక్షణం.
- అన్రియల్ డెవలపర్ కోసం, ఈ గైడ్ని చూడండి.
3.1.4 ఫోవియేషన్
ఫోవేటెడ్ రెండరింగ్ ప్రధానంగా GPU లోడ్ను తగ్గించడానికి రూపొందించబడింది. ఇది డిస్ప్లే యొక్క పరిధీయ భాగంలో ఫ్రేమ్ వివరాలను తగ్గిస్తుంది మరియు ఫీల్డ్ మధ్యలో అధిక రిజల్యూషన్ వివరాలను నిర్వహిస్తుంది. view. యాప్లో GPU బౌండ్ సమస్య ఉంటే, మీరు ఫోవేషన్ రెండరింగ్ను ఈన్బ్లింగ్ చేయడానికి ప్రయత్నించవచ్చు.

ఫోవియేషన్ ఉపయోగిస్తున్నప్పుడు గమనించవలసిన కొన్ని విషయాలు ఉన్నాయి:
➢ డిఫాల్ట్ ఫోవియేషన్ మోడ్ను వర్తింపజేసే పరిధీయ ప్రాంతాలలో తగ్గిన వివరాలను వినియోగదారులు సాధారణంగా గమనించరు. కానీ ఫోవియేషన్ యొక్క పరిధీయ నాణ్యత చాలా తక్కువగా సెట్ చేయబడితే, అది వినియోగదారుకు గుర్తించదగినదిగా మారవచ్చు.
➢ ఫోవియేషన్ ప్రభావాలు కొన్ని టెక్స్చర్ మెటీరియల్స్ తో ఎక్కువగా గుర్తించదగినవిగా ఉండవచ్చు, ఇవి యూజర్ దృష్టిని ఆకర్షించగలవు. డెవలపర్లు దీని గురించి తెలుసుకుని తదనుగుణంగా మూల్యాంకనం చేయాలి.
➢ ఫోవేటెడ్ రెండరింగ్ ఫీచర్ను ప్రారంభించడం వలన స్థిర GPU పనితీరు ఖర్చు అవుతుంది, ఇది ఐ బఫర్ పరిమాణాన్ని బట్టి 1% నుండి 6% మధ్య మారవచ్చు. సన్నివేశంలో సాధారణ షేడర్ను ఉపయోగిస్తున్నప్పుడు, వనరులను ఆదా చేయడం ద్వారా పనితీరు లాభం స్థిర GPU పనితీరు ఖర్చు కంటే తక్కువగా ఉండవచ్చు, ఫలితంగా పనితీరు తగ్గుతుంది.
- నేటివ్ డెవలపర్ కోసం, ఈ గైడ్ని చూడండి.
- యూనిటీ డెవలపర్ కోసం, ఈ గైడ్ని చూడండి. ముఖ్యంగా, మీరు పోస్ట్-ప్రాసెసింగ్ లేదా HDRని ప్రారంభించినప్పుడు, ఫోవియేషన్ పూర్తిగా ఉపయోగించబడదు. ఎందుకంటే యూనిటీ ఆబ్జెక్ట్లను ఫోవియేషన్కు మద్దతు ఇచ్చే రన్టైమ్-జనరేటెడ్ ప్రెజెంట్ యొక్క రెండర్ టెక్స్చర్పై కాకుండా దాని స్వంత జనరేటెడ్ రెండర్ టెక్స్చర్పై రెండర్ చేస్తుంది.
- అన్రియల్ డెవలపర్ కోసం, ఈ గైడ్ని చూడండి. ముఖ్యంగా, మల్టీ-లో ఫోవేషన్ను పూర్తిగా ఉపయోగించలేము.View రెండరింగ్, ఎందుకంటే అన్రియల్ నేరుగా ఫోవేషన్కు మద్దతు ఇచ్చే రన్టైమ్-జనరేటెడ్ రెండర్ టెక్స్చర్పై వస్తువులను రెండర్ చేయలేము.
3.1.5 ఫ్రేమ్ షార్ప్నెస్ ఎన్హాన్స్మెంట్ (FSE)
షార్పెన్ ఫిల్టర్ను ప్రవేశపెట్టడం ద్వారా షార్పెన్ రెండరింగ్ ఫలితాన్ని అందించే FSE, కంటెంట్ను మరింత స్పష్టంగా చేస్తుంది మరియు సన్నివేశంలోని టెక్స్ట్ యొక్క స్పష్టతను మెరుగుపరచడానికి చాలా సహాయపడుతుంది. యాప్కు GPU బౌండ్ సమస్య ఉంటే, అది అవసరం లేకపోతే FSEని నిలిపివేయడాన్ని మీరు పరిగణించవచ్చు.

- నేటివ్ డెవలపర్ కోసం, ఈ గైడ్ని చూడండి.
- యూనిటీ డెవలపర్ కోసం, ఈ గైడ్ని చూడండి.
- అన్రియల్ డెవలపర్ కోసం, ఈ గైడ్ని చూడండి.
3.1.6 అనుకూల నాణ్యత
బ్యాటరీని ఆదా చేయడానికి మరియు పరికరం యొక్క రెండరింగ్ పనితీరును నిర్వహించడానికి, ఈ ఫీచర్ CPU/GPU క్లాక్ యొక్క పనితీరు స్థాయిలను వాటి వినియోగం ఆధారంగా స్వయంచాలకంగా సర్దుబాటు చేస్తుంది. అదనంగా, పనితీరును మెరుగుపరచడానికి ఇతర వ్యూహాలను అమలు చేయవచ్చు, ఫోవేషన్ను స్వయంచాలకంగా ప్రారంభించడం/నిలిపివేయడం లేదా అధిక/తక్కువ లోడ్ ఈవెంట్లను స్వీకరిస్తే కంటెంట్ తనను తాను సర్దుబాటు చేసుకోవచ్చు.
- నేటివ్ డెవలపర్ కోసం, ఈ గైడ్ని చూడండి.
- యూనిటీ డెవలపర్ కోసం, ఈ గైడ్ను చూడండి. మా యూనిటీ ప్లగిన్లో, ప్రస్తుత పనితీరు ఆధారంగా ఐ బఫర్ సైజును స్వయంచాలకంగా సర్దుబాటు చేయవచ్చు; టెక్స్ట్ సైజు రిజల్యూషన్ జాబితాలో చాలా తక్కువగా ఉన్న స్కేల్ విలువలను ఫిల్టర్ చేస్తుంది. కనీసం 20 dmm లేదా అంతకంటే ఎక్కువ సైజు ఉన్న టెక్స్ట్ను మేము సిఫార్సు చేస్తున్నాము.
- అన్రియల్ డెవలపర్ కోసం, ఈ గైడ్ని చూడండి.
3.1.7 అడాప్టివ్ మోషన్ కంపోజిటర్
ఈ ఫీచర్ UMC మరియు PMC లను కలిగి ఉన్న ప్రయోగాత్మక ఫీచర్. UMC ఫ్రేమ్ రేట్ను సగానికి తగ్గిస్తుంది మరియు దృశ్యమానతను మృదువుగా ఉంచడానికి రియల్ టైమ్లో కొత్త ఫ్రేమ్ను ఎక్స్ట్రాపోలేట్ చేస్తుంది. అయితే, ఇది కొంత జాప్యం, కళాఖండాలు మరియు GPU లోడింగ్తో వస్తుంది.
PMC ప్రధానంగా డెప్త్ బఫర్ను ఉపయోగించి ATW HMD అనువాదాన్ని లెక్కించడానికి వీలు కల్పిస్తుంది, ఇది 6-డాఫ్ పరిహారం వరకు విస్తరించబడుతుంది. ఈ ఫీచర్ అనువాద జాప్యాన్ని 1~2 ఫ్రేమ్ల వరకు తగ్గించగలదు, కానీ GPU లోడింగ్ను పెంచుతుంది.
- నేటివ్ డెవలపర్ కోసం, ఈ గైడ్ని చూడండి.
- యూనిటీ డెవలపర్ కోసం, ఈ గైడ్ని చూడండి.
- అన్రియల్ డెవలపర్ కోసం, ఈ గైడ్ని చూడండి.
3.1.8 రెండర్ మాస్క్ [అన్రియల్కు మద్దతు లేదు]
వక్రీకరణ తర్వాత అంచుల వద్ద ఉన్న పిక్సెల్లు దాదాపు కనిపించకుండా పోతాయి, రెండర్ మాస్క్ ఈ అదృశ్య పిక్సెల్ల యొక్క డెప్త్ బఫర్ విలువలను సవరిస్తుంది. మీరు డెప్త్ టెస్టింగ్ను ప్రారంభిస్తే, ప్రారంభ-z కారణంగా, ఈ అదృశ్య పిక్సెల్లు రెండర్ చేయబడవు, తద్వారా GPU లోడ్ తగ్గుతుంది. ఈ అదృశ్య ప్రాంతాలలో హెవీ-లోడింగ్ రెండరింగ్ వస్తువులు ఉంటే ఈ ఫీచర్ ఉపయోగపడుతుంది; లేకపోతే, ఈ ప్రాంతాలలో రెండరింగ్ వస్తువులు లేకపోతే, దానిని నిలిపివేయమని సిఫార్సు చేయబడింది ఎందుకంటే ఇది చిన్న GPU వినియోగాన్ని వినియోగిస్తుంది..
- నేటివ్ డెవలపర్ కోసం, ఈ గైడ్ని చూడండి. మీరు RenderMask కి కాల్ చేసే ముందు డెప్త్ బఫర్ను బైండింగ్ చేయాలి; లేకుంటే, అది ప్రభావవంతంగా ఉండదు.
- యూనిటీ డెవలపర్ కోసం, ఈ గైడ్ని చూడండి.
- అన్రియల్ డెవలపర్ కోసం, ప్రస్తుతం రెండర్ మాస్క్ ఫీచర్కు మద్దతు ఇవ్వదు.
3.2 MR కంటెంట్
3.2.1 పాస్త్రూ నాణ్యతను సర్దుబాటు చేయండి
పాస్త్రూ చిత్ర నాణ్యతకు 3 స్థాయిలు ఉన్నాయి:
➢ WVR_PassthroughImageQuality_DefaultMode – నిర్దిష్ట డిమాండ్ లేకుండా MR కంటెంట్కు అనుకూలం.
➢ WVR_PassthroughImageQuality_PerformanceMode – వర్చువల్ సీన్ రెండరింగ్ కోసం మరిన్ని GPU వనరులు అవసరమయ్యే MR కంటెంట్కు అనుకూలం.
➢ WVR_PassthroughImageQuality_QualityMode – వినియోగదారులు చుట్టుపక్కల వాతావరణాన్ని స్పష్టంగా చూడటానికి అనుమతించే MR కంటెంట్కు అనుకూలం, కానీ కంటెంట్ యొక్క వర్చువల్ దృశ్యం పనితీరు కోసం మరింత చక్కటి ట్యూనింగ్ కలిగి ఉండాలి.
GPU వినియోగాన్ని తగ్గించడానికి మీరు పాస్త్రూ నాణ్యతను పనితీరు మోడ్కు సర్దుబాటు చేయవచ్చు.
- నేటివ్, యునిటీ లేదా అన్రియల్ డెవలపర్ కోసం, ఈ గైడ్ని చూడండి.
3.2.2 పాస్త్రూ ఫ్రేమ్ రేట్ను సర్దుబాటు చేయండి
డిస్ప్లే రిఫ్రెష్ రేట్ లాగానే, అధిక పాస్త్రూ ఫ్రేమ్రేట్ సున్నితమైన విజువల్స్ను అందిస్తుంది, కానీ సిస్టమ్ లోడ్ పెరగడం వల్ల వస్తుంది. దీనికి విరుద్ధంగా, తక్కువ రిఫ్రెష్ రేట్లు సిస్టమ్ లోడ్ను తగ్గిస్తాయి, కానీ తక్కువ మృదువైన విజువల్స్కు దారితీస్తాయి. పాస్త్రూ ఫ్రేమ్రేట్లో 2 మోడ్లు ఉన్నాయి: బూస్ట్ మరియు నార్మల్.
- నేటివ్ డెవలపర్ కోసం, WVR_SetPassthroughImageRate ఉపయోగించి పాస్త్రూ నాణ్యతను సర్దుబాటు చేయవచ్చు.
- యూనిటీ డెవలపర్ కోసం, కోడ్ ద్వారా మార్చవచ్చు, ఉదా.ample సెట్టింగులు ఈ క్రింది విధంగా ఉన్నాయి // C#
ఇంటర్ఆప్.WVR_సెట్పాస్త్రూఇమేజ్క్వాలిటీ(WVR_పాస్త్రూఇమేజ్క్వాలిటీ.పెర్ఫార్మెన్స్ మోడ్); - అన్రియల్ డెవలపర్ కోసం, సెట్టింగ్ పద్ధతి కోసం చిత్రం 3-2-2 లోని బ్లూప్రింట్ నోడ్ను చూడండి.

VIVE OpenXR సెట్టింగ్
OpenXR అనేది ఓపెన్ స్టాండర్డ్, ఇది క్రోనోస్ గ్రూప్ అభివృద్ధి చేసిన విస్తృత శ్రేణి 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కి మద్దతు ఇస్తుంది.
4.1 VR కంటెంట్
4.1.1 డిస్ప్లే రిఫ్రెష్ రేట్
ఇక్కడ కాన్సెప్ట్ 3.1.1 డిస్ప్లే రిఫ్రెష్ రేట్ని పోలి ఉంటుంది.
- నేటివ్ డెవలపర్ కోసం, XrEventDataDisplayRefreshRateChangedFB ని చూడండి.
- యూనిటీ డెవలపర్ కోసం, ఈ గైడ్ని చూడండి.
- అన్రియల్ డెవలపర్ కోసం, ఈ గైడ్ని చూడండి.
4.1.2 ఐబఫర్ రిజల్యూషన్
ఇక్కడ కాన్సెప్ట్ 3.1.2 ఐబఫర్ రిజల్యూషన్ని పోలి ఉంటుంది. స్కేల్ ఫ్యాక్టర్ను 0.7 కంటే తక్కువకు తగ్గించవద్దని మేము సిఫార్సు చేస్తున్నాము, ఎందుకంటే ఇది ఆమోదయోగ్యం కాని దృశ్య నాణ్యతకు దారితీయవచ్చు.
- నేటివ్ డెవలపర్ కోసం, xrCreateSwapchain ని చూడండి. పరిమాణాన్ని సర్దుబాటు చేసేటప్పుడు, మీరు వెడల్పు మరియు ఎత్తును నిష్పత్తితో గుణించాలి. ,
- యూనిటీ డెవలపర్ కోసం, ఈ క్రింది ఉదాహరణలను చూడండిampలె // సి#
XRSettings.eyeTextureResolutionScale = 0.7f; //సిఫార్సు చేయబడింది 1.0f~0.7f - అవాస్తవ సెట్టింగ్ల కోసం, ఈ గైడ్ని చూడండి.
4.1.3 బహుళ-View రెండరింగ్
ఇక్కడ భావన 3.1.3 బహుళ-View రెండరింగ్. ఈ ఫీచర్ CPU పై లోడ్ తగ్గిస్తుంది, GPU కి కూడా కొన్ని ప్రయోజనాలు ఉన్నాయి. ఈ ఫీచర్ ని ఎనేబుల్ చేయాలని మేము సిఫార్సు చేస్తున్నాము.
- స్థానిక డెవలపర్ కోసం, క్రోనోస్గ్రూప్ ఓపెన్ఎక్స్ఆర్ మల్టీ-View exampలె, ఈ గైడ్ని చూడండి.
- యూనిటీ డెవలపర్ కోసం, రెండర్ మోడ్ను చూడండి, సింగిల్ పాస్ బహుళ-view లక్షణం.
- అన్రియల్ డెవలపర్ కోసం, VIVE వేవ్ సెట్టింగ్ల మాదిరిగానే, ఈ గైడ్ని చూడండి.
4.1.4 ఫోవియేషన్ [అవాస్తవానికి మద్దతు ఇవ్వదు]
ఇక్కడ భావన 3.1.4 ఫోవేషన్ను పోలి ఉంటుంది. ఫోవేటెడ్ రెండరింగ్ ప్రధానంగా GPU లోడ్ను తగ్గించడానికి రూపొందించబడింది కానీ దానిని ప్రారంభించడం వలన స్థిరమైన GPU పనితీరు ఖర్చు అవుతుంది మరియు ఫోవేషన్ చాలా తక్కువగా సెట్ చేయబడి కొన్ని పదార్థాలు లేదా అల్లికలను ఉపయోగిస్తే, అది చాలా
వినియోగదారునికి గమనించదగినది. కాబట్టి, మీ నిర్దిష్ట అవసరాలు మరియు పనితీరు పరిగణనల ఆధారంగా ఫీచర్ను ప్రారంభించడం లేదా నిలిపివేయడం మంచిది. ప్రస్తుతం, Foveated కార్యాచరణ VIVE OpenXR SDKలోని OpenGL ESలో మాత్రమే మద్దతు ఇస్తుంది.
- స్థానిక డెవలపర్ కోసం, ఈ ఫీచర్ అందుబాటులో ఉంది, కానీ ప్రస్తుతం, మాజీ లేదుampలెస్ అందించబడతాయి.
- యూనిటీ డెవలపర్ కోసం, ఈ గైడ్ని చూడండి.
- అన్రియల్ డెవలపర్ కోసం, ప్రస్తుతానికి ఈ ఫీచర్కు మద్దతు ఇవ్వదు.
4.1.5 రెండర్ మాస్క్ [అన్రియల్కు మద్దతు లేదు]
ఇక్కడ కాన్సెప్ట్ 3.1.8 రెండర్ మాస్క్ని పోలి ఉంటుంది.
- నేటివ్ డెవలపర్ కోసం, మెష్ పొందడానికి XrVisibilityMaskKHR ని ఉపయోగించండి. సన్నివేశాన్ని రెండర్ చేయడానికి ముందు, సన్నివేశాన్ని రెండర్ చేయడానికి ముందు డెప్త్ బఫర్ విలువలను పూరించడానికి ఈ మెష్ ని ఉపయోగించండి.
- యూనిటీ డెవలపర్ కోసం, ఓపెన్జిఎల్ ES కోసం రెండర్ మాస్క్ ఫీచర్ డిఫాల్ట్గా ప్రారంభించబడుతుంది మరియు కింది కోడ్తో నిలిపివేయబడుతుంది; వల్కాన్ ప్రస్తుతం ఈ ఫీచర్కు మద్దతు ఇవ్వడం లేదు. //సి# యూనిటీఇంజైన్.ఎక్స్ఆర్.ఎక్స్ఆర్ సెట్టింగ్స్.ఓక్లూజన్మాస్క్స్కేల్ = 0.0ఎఫ్;
- అన్రియల్ డెవలపర్ కోసం, ప్రస్తుతం రెండర్ మాస్క్ ఫీచర్కు మద్దతు ఇవ్వదు.
4.2 MR కంటెంట్
OpenXR ప్రస్తుతం పాస్త్రూ నాణ్యత మరియు ఫ్రేమ్ రేట్ను సెట్ చేయడానికి మద్దతు ఇవ్వడం లేదు. మేము పాస్త్రూ ఫీచర్ను ఆప్టిమైజ్ చేయడం మరియు పరిష్కరించడం కొనసాగిస్తాము, కాబట్టి డెవలపర్లు పరికరాన్ని తాజాగా ఉంచడానికి దాని FOTA వెర్షన్ను అప్డేట్ చేయాలని సిఫార్సు చేస్తున్నాము.
సాధారణ ఆప్టిమైజేషన్
5.1 హై పెర్ఫార్మెన్స్ మోడ్ను ఆఫ్ చేయండి
"హై పెర్ఫార్మెన్స్ మోడ్" ని ఆఫ్ చేయడం వలన పరికరం యొక్క డిస్ప్లే పరిమాణం తగ్గుతుంది, తద్వారా GPU వినియోగం తగ్గుతుంది. స్క్రీన్ రిజల్యూషన్ తగ్గడం దీని లోపం. దీన్ని ప్రారంభించాలా వద్దా అని నిర్ణయించుకోవడానికి మీరు నాణ్యత మరియు పనితీరును సమతుల్యం చేసుకోవచ్చు.
VIVE ఫోకస్ 3 కోసం సెట్టింగ్ స్థానం చిత్రం 5-1-1లో చూపబడింది:

VIVE XR ఎలైట్ కోసం సెట్టింగ్ స్థానం చిత్రం 5-1-2 లో చూపబడింది:

5.2 మల్టీస్ampలింగ్ యాంటీ-అలీasing
మల్టీలుampలింగ్ ఒక వ్యతిరేక అలీasinబెల్లం అంచులను సున్నితంగా చేయడానికి ఉపయోగించే g టెక్నిక్, సాధారణంగా హార్డ్వేర్ ద్వారా వేగవంతం చేయబడుతుంది, దీని వలన GPU పనితీరు ఖర్చు అవుతుంది. ఎక్కువ ఎత్తు విలువ ఎక్కువ gpu వినియోగాన్ని వినియోగిస్తుంది కాబట్టి MSAAను 2x కంటే ఎక్కువగా సెట్ చేయవద్దని మేము సిఫార్సు చేస్తున్నాము.
- నేటివ్ డెవలపర్ కోసం, MSAA OpenGL ES exsample దీనిని సూచించవచ్చు; MSAA వల్కాన్ మాజీampలెర్ దీనిని సూచించవచ్చు.
అడ్రినో GPU MSAA ని ఆప్టిమైజ్ చేసే పొడిగింపును అందిస్తుంది. - యూనిటీ డెవలపర్ కోసం, ఈ గిల్డ్ని చూడండి.
- అన్రియల్ డెవలపర్ కోసం, ఈ గిల్డ్ను చూడండి. అన్రియల్ పోస్ట్ ప్రాసెసింగ్ యాంటీ-అలీని కూడా అందిస్తుంది.asing, ఈ గిల్డ్ను చూడండి.
5.3 GMEM లోడ్/స్టోర్
అడ్రినో GPU ఆర్కిటెక్చర్లో, రెండర్ టార్గెట్ను బైండింగ్ చేస్తున్నప్పుడు, రెండర్ టార్గెట్ క్లియర్ చేయకపోతే లేదా చెల్లనిదిగా చేయకపోతే, ప్రతిసారి రెండరింగ్ జరిగినప్పుడు, రెండర్ టార్గెట్లోని విలువలు గ్రాఫిక్స్ మెమరీలోకి లోడ్ చేయబడతాయి, దీనిని GMEM లోడ్ అంటారు. మునుపటి విలువలు అవసరం లేకపోతే, రెండర్ టార్గెట్ను రెండరింగ్ చేయడానికి ముందు క్లియర్ చేయండి లేదా చెల్లనిదిగా చేయండి, GPU పనితీరును మెరుగుపరచడానికి ఈ పరిస్థితిని నివారించవచ్చు.
మీరు ఈ క్రింది పద్ధతులను ఉపయోగించి GMEM లోడ్ను నివారించవచ్చు. OpenGL ESలో, FBOని బైండింగ్ చేసిన తర్వాత, మీరు కలర్, డెప్త్ మరియు స్టెన్సిల్ బఫర్ను క్లియర్ చేయడానికి glClear మరియు glClearDepthకు కాల్ చేయవచ్చు లేదా పేర్కొన్న రెండర్ టార్గెట్ను చెల్లనిదిగా చేయడానికి glInvalidateFramebufferకు కాల్ చేయవచ్చు. Vulkanలో, అదనపు సూచనలు అవసరం లేదు; VkAttachmentDescription.loadOpలో ఉపయోగించే ముందు అటాచ్మెంట్ను క్లియర్ చేయాలా వద్దా అని మీరు స్పష్టంగా సెట్ చేయవచ్చు.
అదేవిధంగా, గ్రాఫిక్స్ మెమరీ నుండి టైల్ రెండర్ ఫలితాన్ని మెయిన్ మెమరీకి తిరిగి నిల్వ చేయడాన్ని GMEM స్టోర్ అంటారు; ఈ ఆపరేషన్ GPU కి కూడా ఖరీదైనది. దీనిని నివారించడానికి, అనవసరమైన స్టోర్ ఆపరేషన్లను నిరోధించడానికి అవసరమైన రెండర్ టార్గెట్లను మాత్రమే బైండింగ్ చేయాలని మేము సిఫార్సు చేస్తున్నాము.
5.4 కంపోజిషన్ లేయర్ (మల్టీ లేయర్)
మల్టీ-లేయర్ ఉపయోగించి ప్రదర్శించబడే టెక్స్చర్లు మెరుగైన దృశ్య నాణ్యతను కలిగి ఉంటాయి. అయితే, ఈ ఫీచర్ లేయర్ల సంఖ్య మరియు టెక్స్చర్ల పరిమాణంతో GPU పనితీరును గణనీయంగా పెంచుతుంది. మూడు లేయర్ల కంటే ఎక్కువ ఉండకూడదని మేము సిఫార్సు చేస్తున్నాము.
- స్థానిక డెవలపర్ కోసం,
VIVE Wave SDK ప్రతి లేయర్కు డేటాను పాస్ చేయడానికి WVR_SubmitFrameLayersని ఉపయోగిస్తుంది.
VIVE OpenXR SDK లేయర్ డేటాను XrFrameEndInfoలో ఉంచుతుంది మరియు దానిని xrEndFrame ద్వారా సమర్పిస్తుంది. - యూనిటీ డెవలపర్ కోసం,
o VIVE వేవ్ SDK సెట్టింగ్లు, ఈ గైడ్ని చూడండి,
o VIVE OpenXR సెట్టింగులు, ఈ గైడ్ని చూడండి. - అన్రియల్ డెవలపర్ కోసం,
o VIVE వేవ్ SDK సెట్టింగ్లు, ఈ గైడ్ని చూడండి.
o VIVE OpenXR సెట్టింగులు, ఈ గైడ్ని చూడండి.
5.5 CPU స్పైక్
CPU లోడింగ్ ఎక్కువగా ఉన్నప్పుడు, కొన్ని బ్యాక్గ్రౌండ్ ప్రాసెస్ థ్రెడ్లు అధిక ప్రాధాన్యతను కలిగి ఉన్నప్పుడు, అది స్థానిక అమలుకు అంతరాయం కలిగించవచ్చు. కంటెంట్ అప్లికేషన్కు ఇతర థ్రెడ్ అంతరాయం కలిగించదని మేము హామీ ఇవ్వలేము.
అలాంటి సమస్యలు తలెత్తితే, మీరు ఇంక్రె ప్రయత్నించవచ్చుasinసమస్యను పరిష్కరిస్తుందో లేదో చూడటానికి థ్రెడ్ ప్రాధాన్యతను g చేయండి. కానీ మీరు పరికరాల కోసం ఆప్టిమైజ్ చేయడానికి థ్రెడ్ కాన్ఫిగరేషన్ను మార్చినట్లయితే, ఇది ఏదైనా ప్రతికూల ప్రభావాన్ని చూపుతుందో లేదో మీరు తనిఖీ చేయాలి.
- యూనిటీ డెవలపర్ కోసం, ఆండ్రాయిడ్ థ్రెడ్ కాన్ఫిగరేషన్ ఫీచర్ను చూడండి. మీరు VIVE వేవ్ 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=డెవ్.ఎపిక్ గేమ్స్.కామ్
- Anti Aliasing and Upscaling in Unreal Engine | Unreal Engine 5.5 Documentation | Epic Developer Communityడెవ్.ఎపిక్ గేమ్స్.కామ్
- dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/HeadMountedDisplay/IHeadMountedDisplay/SetPixelDensity?application_version=4.27డెవ్.ఎపిక్ గేమ్స్.కామ్
- అన్రియల్ ఇంజిన్లో మొబైల్ పరికరాల పనితీరు మార్గదర్శకాలు | అన్రియల్ ఇంజిన్ 5.5 డాక్యుమెంటేషన్ | ఎపిక్ డెవలపర్ కమ్యూనిటీడెవ్.ఎపిక్ గేమ్స్.కామ్
- dev.epicgames.com/documentation/en-us/unreal-engine/unreal-insights-in-unreal-engineడెవ్.ఎపిక్ గేమ్స్.కామ్
- Qualcomm డాక్యుమెంటేషన్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
