Quest donanımında, Unity ile geliştirilmiş savunma eğitim simülasyonları teslim ettim ve platform hakkında bildiklerimin çoğu, editörde iyi görünüp cihazda dağılan şeylerden geldi. Bunlar, ilk Quest projesine başlayan birine uzatacağım notlar. Projenin VR olup olmaması gerektiğine hâlâ karar vermediysen, harfleri daha önceki bir yazıda ayırmıştım.

Şekil: kendi çizimim.
Yüzüne asılmış bir telefon
Quest; mobil bir yonga seti, mobil bir termal bütçe ve masaüstü GPU’ya giden bir kablo olmadan çalışıyor. PC VR’dan getirdiğin her alışkanlık burada ölür: her yerde dinamik ışık, ağır post-processing, yüksek poligonlu varlıklar, varsayılan gerçek zamanlı gölgeler. Dürüst zihinsel model şu: her şeyi göz başına bir kez, yani iki kez çizen bir mobil oyun; bu sırada bozuk para büyüklüğünde bir fan yongayı serin tutmaya çalışıyor.
Bu bir şikâyet değil. Cihazın eğitim işinde tutmasının sebebi tam da standalone olması. PC yok, kablo yok, senaryonun ortasında kabloya takılan kimse yok. Savunma eğitim simülasyonlarımızda kablonun yokluğu, müşterinin herhangi bir shader’dan önce fark ettiği özellik. Bedelini render bütçesinden ödüyorsun ve o bütçe pazarlığa kapalı.
Kare hızı bir sözleşmedir
Monitörde düşen kare bir takılmadır. Başlıkta bulantıdır. Quest’te taban tazeleme 72 Hz ve buna yaklaşılacak bir hedef gibi değil, kullanıcının iç kulağıyla yapılmış bir sözleşme gibi davranırsın. İki pratik sonucu var.
Birincisi, draw call sayısı poligon sayısından önemli. GPU beklenenden fazla geometri taşıyor. Seni öldüren, çok sayıda ayrı malzeme ve nesnenin CPU tarafındaki maliyeti. Batching, texture atlas ve single-pass instanced rendering, tutulan sözleşmeyle bozulan sözleşme arasındaki fark. Fixed foveated rendering, çevre görüşü düşük çözünürlükte çizerek GPU süresi geri kazandırır. Erkenden aç. Neredeyse bedava.
İkincisi, sahne başına bütçeyi kimse içerik üretmeden önce belirle. Bitmiş sahneye sonradan performans eklemek eziyettir. Baştan bütçelemek bir tablodur.
Editör yalan söyler, cihaz söylemez
Masaüstü GPU’daki editör sayıları, ısındıkça kısılan bir mobil yonga hakkında hiçbir şey söylemez. İlk haftadan itibaren, gerçek build ile, cihazda profil al. adb üzerinden build alıp yükleme döngüsü o kadar yavaş ki “bir özellik daha” diye editörde kalmak cazip gelecek. Direnç göster. Salt editörde geçen her hafta, görünmez bir performans borcu haftasıdır. Ve en baştan OpenXR üzerine kur: üreticiye özgü entegrasyon yolları bu platformda hızlı eskiyor.
Girdi ve konfor mimaridir
El takibi artık gerçekten iyi ve ben eğitimde hâlâ varsayılan olarak kumanda kullanıyorum. Menülerde ve sakin eğitim adımlarında el gayet yeterli; kumandayı bırakmak, hayatında gamepad tutmamış kursiyer için eşiği de düşürüyor. Hızlı hareket ve yüksek streste ise takip güveni, tam da senaryonun önem kazandığı anda düşüyor. Tez çalışmam VR’da biyosibernetik döngüyle stres ölçüyor. Kullanıcıyı bilerek yük altına sokuyorum ve yük altında güvenilir kalan girdi, demoda zarif görünen girdiden daha değerli.
Konfor da aynı sepette. Hareket, dönüş, vinyet: bunlar cila değil, mimari kararlar. Oyun oynamayan insanlarla test et, çünkü kursiyerler oyuncu değil. Bir geliştiricinin sekiz saat tahammül ettiği tasarım, ilk kez takan kullanıcıyı üç dakikada bıraktırabilir ve kursiyeri fenalaştıran eğitim aracı, içeriği ne kadar değerli olursa olsun ikinci seansı alamaz.
Kaynakça
- Meta Horizon geliştirici dokümantasyonu: https://developers.meta.com/horizon/
- Meta Quest, Wikipedia: https://en.wikipedia.org/wiki/Meta_Quest
- OpenXR, Wikipedia: https://en.wikipedia.org/wiki/OpenXR
- Foveated rendering, Wikipedia: https://en.wikipedia.org/wiki/Foveated_rendering