Sahne Işığı modelleri ile Işıklandırma Tahmini'ni kullanma

Lighting Estimation API, belirli bir görüntüyü, ayrı görsel işaretler için analiz eder ve belirli bir sahnedeki ışıklandırma hakkında ayrıntılı bilgi sağlar. Ardından, sanal nesneleri oluştururken bu bilgileri yerleştirildikleri sahneyle aynı ışıkta aydınlatmak için kullanabilirsiniz. Böylece nesneler daha gerçekçi görünür ve kullanıcılar için sürükleyici bir deneyim geliştirir.

Işıklandırma işaretleri ve kavramları

İnsanlar, nesnelerin veya canlı nesnelerin ortamlarında nasıl aydınlatıldığına dair farkında olmadan farkında olmadan algılanır. Sanal bir nesnenin gölgesi yoksa veya etrafındaki alanı yansıtmayan parlak bir malzemeye sahipse, kullanıcı nesnenin nedenini tam olarak açıklayamasa bile belirli bir sahneye tam olarak sığmadığını anlayabilir. Bu nedenle, sahnedeki ışıklandırmayla eşleşecek AR nesneleri oluşturmak, sürükleyici ve daha gerçekçi deneyimler için çok önemlidir.

Aydınlatma Tahmini, sanal nesneleri oluştururken çeşitli ışıklandırma işaretlerini taklit etmenize olanak tanıyan ayrıntılı veriler sağlayarak çoğu işi sizin yerinize yapar. Bu işaretler; gölgeler, ambiyans ışığı, gölgelendirme, spekülatif vurgulamalar ve yansıtmalardır.

Bu görsel ipuçlarını aşağıdaki gibi açıklayabiliriz:

  • Ortam ışığı. Ortam ışığı, her yerden gelen ve etraftan gelen genel dağınık ışıktır.

  • Gölge. Gölgeler genellikle yön tarif eder ve izleyicilere ışık kaynaklarının nereden geldiğini söyler.

  • Gölgelendirme. Gölgelendirme, belirli bir resmin farklı bölgelerindeki ışığın yoğunluğudur. Örneğin, aynı nesnenin farklı kısımları, görüntüleyene göre açısına ve ışık kaynağına yakınlığına göre aynı sahnede farklı gölgelendirme seviyelerine sahip olabilir.

  • Öne çıkanlar. Bunlar, doğrudan bir ışık kaynağını yansıtan yüzeylerdir. Bir nesnedeki öne çıkanlar, görüntüleyenin bir sahnedeki konumuna göre değişir.

  • Düşünce. Yüzeyin spekülatif (yani son derece yansıtıcı) veya dağılmış (yansıtıcı değil) özelliklerine bağlı olarak ışık, yüzeylerden farklı bir şekilde fırlatır. Örneğin, metalik bir top çok spektrum biçimindedir ve ortamını yansıtırken, mat mat griye boyanmış başka bir top dağılacaktır. Dünyadaki çoğu nesne, bu özelliklerin bir kombinasyonuna sahiptir. Şaşırtıcı bir bovling topu veya iyi kullanılan bir kredi kartı düşünün.

    Yansıtıcı yüzeyler, ortam ortamından renkleri de alır. Bir nesnenin rengi, ortamının renginden doğrudan etkilenebilir. Örneğin, mavi bir odadaki beyaz bir top mavimsi bir ton alır.

Gerçekliği artırmak için Işıklandırma Tahmini modlarını kullanma

Config.LightEstimationMode API, ortamdaki aydınlatmayı farklı derecelerde ve gerçekçilik düzeyinde tahmin eden modlara sahiptir.

  • Çevresel HDR modu (ENVIRONMENTAL_HDR). Bu mod, yön aydınlatması, gölgeler, spekülatif vurgulamalar ve yansımalar için gerçekçi ışık tahmini sağlayan bir API'den oluşur.

  • Ortam Yoğunluğu modu (AMBIENT_INTENSITY). Bu mod, belirli bir görüntü için ortalama piksel yoğunluğunu ve ışığın rengini belirler. Tam ışıklandırmanın kritik öneme sahip olmadığı kullanım alanlarında (örneğin, ışığı fırlatılan nesneler) tasarlanmış olan genel bir ayardır.

  • DISABLED. Belirli bir ortama uygun ışıklandırma bir sahne veya nesneyle alakalı değilse Config.LightEstimationMode özelliğini devre dışı bırakın.

ENVIRONMENTAL_HDR modu kullanılıyor

ENVIRONMENTAL_HDR modu, giriş kamera görüntüsünü analiz etmek ve sanal bir nesne oluşturmak için çevresel ışığı sentezlemek için makine öğrenimini kullanır.

Bu mod, sanal nesnelerin belirli bir sahnede fiziksel olarak varmış gibi hissetmesini sağlamak için yön ışıklandırması, ortam küresel küreikleri ve HDR küp eşlemeyi birleştirir:

  • Yönlü ışıklandırma, belirli bir resim için görünen ışık kaynağını analiz eder. Bu tür ışıklandırmalar, makul şekilde konumlandırılmış spekülatif vurgular ekler ve gölgeleri, görünür diğer gerçek nesnelerle tutarlı bir yönde çevirir.

  • Ortam küresi, bir sahnede tüm yönlerden gelen genel ortam ışığının gerçekçi bir temsilini sunar. Oluşturma sırasında bu bilgiler, sanal nesnelerin tanımını ortaya çıkaran ince işaretler eklemek için kullanılır.

  • HDR küp eşleme, sanal nesneyi çevreleyen çevresel ışıklandırmayı yakalar. Oluşturma sırasında bu küp eşleme, aracı/parlaklığı yüksek malzeme için bir yansıma oluşturur.

Aşağıdaki resimde, ENVIRONMENTAL_HDR etkinken bir düzene yerleştirilmiş sanal nesne örneği gösterilmektedir.

Düzen ortamı için ENVIRONMENTAL_HDR modunu yapılandırma

ENVIRONMENTAL_HDR öğesini bir Sahne sahnesiyle kullanmak için ARFragment sınıfını genişletin ve yapılandırmayı aşağıdaki gibi geçersiz kılın:

@Override
protected Config getSessionConfiguration(Session session) {
  Config config = new Config(session);
  config.setLightEstimationMode(Config.LightEstimationMode.ENVIRONMENTAL_HDR);
  return config;
}

Bunun işleyiş şeklini görmek için Güneş Sistemi örneğini inceleyin. (Bu örnek, ARFragment kullanmadan ENVIRONMENTAL_HDR yöntemini uygular.)

AMBIENT_INTENSITY modu kullanılıyor

AMBIENT_INTENSITY modu, belirli bir resmin ortalama piksel yoğunluğunu ve renk düzeltme skalarını belirler. Tam ışıklandırmanın kritik öneme sahip olmadığı kullanım alanları (örneğin, ışığı yerleşik nesneler) için tasarlanmış genel bir ayardır.

  • Piksel yoğunluğu, sanal bir nesneye uygulanmak için sahnedeki ortalama ışık yoğunluğunu yakalar.

  • Renk düzeltme skalarları, her bir karenin beyaz dengesini algılayarak sanal bir nesneyi renklendirmenize olanak sağlar. Böylece sahnenin genel renklendirmesine daha sorunsuz bir şekilde entegre edilir.

Düzen ortamı için AMBIENT_INTENSITY modunu yapılandırma

AMBIENT_INTENSITY öğesini bir Sahne sahnesiyle kullanmak için ARfragment sınıfını genişletin ve yapılandırmayı aşağıdaki gibi geçersiz kılın:

@Override
protected Config getSessionConfiguration(Session session) {
  Config config = new Config(session);
  config.setLightEstimationMode(Config.LightEstimationMode.AMBIENT_INTENSITY);
  return config;
}