Holographic Rendering'e genel bakış
Holografik işleme, uygulamanızın ister fiziksel dünyaya ister oluşturduğunuz sanal bir bölgeye tam olarak yerleştirilsin, dünyanın her yerinde tam olarak bir hologram çizmesini sağlar. Hologramlar ses ve ışıkla yapılmış nesnelerdir. İşleme, uygulamanızın ışığı eklemesini sağlar.
Cihaz desteği
Özellik | HoloLens (ilk nesil) | HoloLens 2 | Çevreleyici kulaklıklar |
İşleme | ✔️ | ✔️ | ✔️ |
Holografik işleme
Holografik işlemenin anahtarı, ne tür bir cihazın kullanıldığını bilmektir. HoloLens gibi göz alıcı ekranlara sahip cihazlar dünyaya ışık ekler. Siyah pikseller tamamen saydamken, parlak pikseller giderek opak hale gelir. Ekranlardan gelen ışık gerçek dünyadan ışığa eklendiğinden beyaz pikseller yarı saydamdır.
Stereoskopik işleme hologramlarınız için tek bir derinlik ipucu sağlarken, topraklama efektleri eklemek kullanıcıların hologramların hangi yüzeye yaklaştığını daha kolay görmelerine yardımcı olabilir. Topraklama tekniğinden biri, yakındaki bir yüzeydeki hologramın çevresine parlama eklemek ve ardından bu parıltıya karşı gölge oluşturmaktır. Bu şekilde, gölgeniz ışığı ortamdan çıkarır gibi görünür. Uzamsal ses , kullanıcıların bir hologramın uzaklığı ve göreli konumu hakkında düşünmesine izin vererek bir diğer önemli derinlik ipucudur.
Çevreleyici mikrofonlu kulaklıklar gibi donuk ekranlı cihazlar dünyayı Windows Mixed Reality. Siyah pikseller düz siyahtır ve kullanıcıya bu renk olarak başka herhangi bir renk görünür. Uygulamanız, kullanıcının gördüğü her şeyi işlemekle sorumludur. Bu, kullanıcıların rahat bir deneyim yaşamaları için sabit bir yenileme hızı sağlamayı daha da önemli hale getirir.
Tahmin edilen işleme parametreleri
Karma gerçeklik mikrofonlu kulaklıkları (holoLens ve çevreleyici kulaklıklar) kullanıcının başının çevresine göre konumunu ve yönlendirmesini sürekli olarak izler. Uygulamanız bir sonraki çerçeveyi hazırlamaya başladığında sistem, çerçevenin ekranlarda göründüğü anda kullanıcının kafasının gelecekte nerede olacağını tahmin eder. Bu tahmine bağlı olarak, sistem görünümü hesaplar ve projeksiyon bu çerçeve için kullanılacak şekilde dönüştürülür. Uygulamanızın doğru sonuçlar üretmek için bu dönüşümleri kullanması gerekir. Sistem tarafından sağlanan dönüşümler kullanılmıyorsa, sonuçta elde edilen görüntü gerçek dünyayla uyumlu olmaz ve bu da kullanıcı rahatsızlığıyla sonuçlanır.
Not
Yeni bir çerçevenin ekranlara ne zaman ulaşacağını doğru bir şekilde tahmin etmek için sistem sürekli olarak uygulamanızın işleme işlem hattının etkin uçtan uca gecikme süresini ölçer. Sistem işleme işlem hattınızın uzunluğuna göre ayarlanırken, bu işlem hattını olabildiğince kısa tutarak hologram kararlılığını artırabilirsiniz.
Sistem tahminini artırmak için gelişmiş teknikler kullanan uygulamalar, sistem görünümünü ve projeksiyon dönüşümlerini geçersiz kılabilir. Bu uygulamaların yine de özel dönüşümlerinin anlamlı sonuçlar üretmesi için sistem tarafından sağlanan dönüşümleri temel alması gerekir.
Diğer işleme parametreleri
Bir çerçeve işlenirken sistem, uygulamanızın çizmesi gereken arka arabellek görünüm penceresi belirtir. Bu görünüm penceresi genellikle çerçeve arabelleğinin tam boyutundan daha küçüktür. Görünüm penceresi boyutu ne olursa olsun, çerçeve uygulama tarafından işlendiğinde sistem görüntüyü ekranların tamamını dolduracak şekilde büyütür.
Kendilerini gerekli yenileme hızında işleyemeyen uygulamalar için, bellek baskısını ve artan piksel diğer adı maliyetiyle işleme maliyetini azaltmak için sistem işleme parametreleri yapılandırılabilir . Arka arabellek biçimi de değiştirilebilir ve bu biçim bazı uygulamalar için bellek bant genişliğini ve piksel aktarım hızını geliştirmeye yardımcı olabilir.
Uygulamanızın işlemesinin istendiği işleme frustum, çözünürlük ve kare hızı da çerçeveden kareye değişebilir ve sol ve sağ gözle farklılık gösterebilir. Örneğin, karma gerçeklik yakalama (MRC) etkin olduğunda ve fotoğraf/video kamera görünümü yapılandırması kabul edilmediğinde, bir göz daha büyük bir FOV veya çözünürlükle işlenebilir.
Belirli bir çerçeve için uygulamanızın sistem tarafından sağlanan görünüm dönüştürmesi, projeksiyon dönüşümü ve görünüm penceresi çözünürlüğü kullanılarak işlenmesi gerekir . Ayrıca, uygulamanızın hiçbir işleme veya görüntüleme parametresinin çerçeveden kareye sabit kaldığını varsaymamalıdır. Unity gibi motorlar tüm bu dönüşümleri sizin için kendi kamera nesnelerinde işler, böylece kullanıcılarınızın fiziksel hareketlerine ve sistemin durumuna her zaman saygı gösterilir. Uygulamanız kullanıcının dünya genelinde sanal hareket etmesine izin veriyorsa (örneğin oyun çubuğundaki kontrol çubuğunu kullanarak), kamerayı hareket eden bir üst donanım nesnesi ekleyebilirsiniz. Bu, kameranın hem kullanıcının sanal hem de fiziksel hareketini yansıtmasına neden olur. Uygulamanız sistem tarafından sağlanan görünüm dönüşümünü, projeksiyon dönüşümünü veya görünüm penceresi boyutunu değiştirirse, uygun geçersiz kılma API'sini çağırarak sistemi bilgilendirmesi gerekir.
Holografik işlemenizin kararlılığını artırmak için uygulamanızın Windows'a işleme için kullandığı derinlik arabelleğinin her karesini sağlaması gerekir. Uygulamanız derinlik arabelleği sağlıyorsa, derinlik kameradan metre cinsinden ifade edilen tutarlı derinlik değerlerine sahip olmalıdır. Bu, kullanıcının kafasının tahmin edilen konumdan biraz uzak olması durumunda içeriğin daha iyi dengelenmesini sağlamak için sistemin piksel başına derinlik verilerinizi kullanmasını sağlar. Derinlik arabelleğinizi sağlayamıyorsanız, içeriğinizin çoğunu kesen bir düzlem tanımlayarak bir odak noktası ve normal sağlayabilirsiniz. Hem derinlik arabelleği hem de odak düzlemi sağlanırsa, sistem ikisini de kullanabilir. Özellikle, uygulamanız hareket halindeki hologramları görüntülerken hem derinlik arabelleği hem de hız vektörü içeren bir odak noktası sağlamak yararlı olur.
Bu konu hakkında alt düzey ayrıntılar için DirectX'te İşleme makalesine bakın.
Holografik kameralar
Windows Mixed Reality holografik kamera kavramını tanıtır. Holografik kameralar, 3B grafik metinlerinde bulunan geleneksel kameraya benzer; hem ekstrinsik (konum ve yönlendirme) hem de iç kamera özelliklerini tanımlar. (Örneğin, bir sanal 3B sahneyi görüntülemek için görünüm alanı kullanılır.) Geleneksel 3B kameralardan farklı olarak, uygulama kameranın konumunu, yönünü ve iç özelliklerini kontrol etmez. Bunun yerine holografik kameranın konumu ve yönü kullanıcının hareketi tarafından örtük olarak denetlenmektedir. Kullanıcının hareketi, görünüm dönüştürmesi aracılığıyla çerçeveler arası olarak uygulamaya aktarılır. Benzer şekilde, kameranın iç özellikleri cihazın kalibre edilmiş optikleri ve projeksiyon dönüşümü aracılığıyla kare kare geçişli özellikleriyle tanımlanır.
Genel olarak, uygulamanız tek bir stereo kamera için işlenir. Sağlam bir işleme döngüsü birden çok kamerayı destekler ve hem mono hem de stereo kameraları destekler. Örneğin sistem, kullanıcı kulaklık şekline bağlı olarak karma gerçeklik yakalama (MRC) gibi bir özelliği etkinleştirdiğinde uygulamanızın alternatif bir perspektiften işlenmesini isteyebilir. Birden çok kamerayı destekleyebilecek uygulamalar, destekleyebilecekleri kamera türlerinikabul ederek bunları alır.
Birim işleme
Tıbbi MR'ler veya mühendislik hacimleri 3B olarak işlenirken genellikle birim işleme teknikleri kullanılır. Bu teknikler karma gerçeklikte ilginç olabilir, burada kullanıcılar böyle bir ses düzeyini yalnızca kafalarını hareket ettirerek önemli açılardan doğal olarak görüntüleyebilirler.
HoloLens'te desteklenen çözümler (ilk nesil)
- Maksimum görünüm penceresi boyutu , HolographicDisplay'in bir özelliğidir. HoloLens varsayılan olarak 720p (1268x720) olan maksimum görünüm penceresi boyutuna ayarlanır.
- HolographicCamera'da ViewportScaleFactor ayarlanarak görünüm penceresi boyutu değiştirilebilir. Bu ölçek faktörü 0 ile 1 aralığındadır.
- HoloLens'te desteklenen en düşük görünüm penceresi boyutu (ilk nesil) 360p (634x360) olan 720p'nin %50'sidir. Bu, 0,5'in ViewportScaleFactor değeridir.
- Görselde düşüş nedeniyle 540p'den düşük herhangi bir şey önerilmez, ancak piksel doldurma hızındaki performans sorunlarını belirlemek için kullanılabilir.
HoloLens 2'de desteklenen çözümler
- Geçerli ve desteklenen en yüksek işleme hedefi boyutları , görünüm yapılandırmasının özellikleridir. HoloLens 2, varsayılan olarak 1440x936 olan en büyük işleme hedefi boyutuna ayarlanır.
- Uygulamalar, yeni bir işleme hedef boyutu istemek için RequestRenderTargetSize yöntemini çağırarak işleme hedef arabelleklerinin boyutunu değiştirebilir. İstenen işleme hedef boyutunu karşılayan veya aşan yeni bir işleme hedef boyutu seçilir. Bu API, GPU'da belleğin yeniden yerleştirilmesini gerektiren işleme hedef arabelleğinin boyutunu değiştirir. Bunun etkileri şunlardır: İşleme hedef boyutunun ölçeği gpu üzerindeki bellek baskısını azaltmak için azaltılabilir ve bu yöntem yüksek frekansta çağrılmamalıdır.
- Uygulamalar yine HoloLens 1'de olduğu gibi görünüm penceresi boyutunu değiştirebilir. GPU'da bellek yeniden yerleştirme özelliği eklenmediğinden yüksek frekansta değiştirilebilir ancak GPU üzerindeki bellek baskısını azaltmak için kullanılamaz.
- HoloLens 2 desteklenen en düşük görünüm penceresi boyutu, varsayılan işleme hedef boyutu kullanımda olduğunda yaklaşık 0,44 olan bir ViewportScaleFactor olan 634x412'dir.
- Desteklenen en düşük görünüm penceresi boyutundan daha küçük bir işleme hedefi boyutu sağlanırsa, görünüm penceresi ölçek faktörü yoksayılır.
- Görselde düşüş nedeniyle 540p'den düşük herhangi bir şey önerilmez, ancak piksel doldurma hızındaki performans sorunlarını belirlemek için kullanılabilir.