Dapatkan pencahayaan yang tepat

Panduan khusus platform

Bagian penting untuk menciptakan pengalaman AR yang realistis adalah mendapatkan pencahayaan yang tepat. Jika objek virtual tidak memiliki bayangan atau memiliki bahan mengkilap yang tidak mencerminkan ruang di sekitarnya, pengguna dapat merasakan bahwa objek tersebut tidak cukup pas, meskipun mereka tidak dapat menjelaskan alasannya. Hal ini karena manusia secara tidak sadar melihat petunjuk tentang bagaimana objek diterangi di lingkungan mereka. Lighting Estimation API menganalisis gambar yang diberikan untuk mendapatkan petunjuk tersebut, yang memberikan informasi mendetail tentang pencahayaan dalam suatu tampilan. Kemudian, Anda dapat menggunakan informasi ini saat merender objek virtual untuk meneranginya dalam kondisi yang sama dengan tampilan tempat objek tersebut ditempatkan, sehingga pengguna tetap terhubung dan berinteraksi.

Isyarat pencahayaan

Lighting Estimation API memberikan data mendetail yang memungkinkan Anda meniru berbagai isyarat pencahayaan saat merender objek virtual. Isyarat ini adalah bayangan, cahaya sekitar, bayangan, sorotan specular, dan refleksi.

Bayangan

Bayangan sering kali terarah dan memberi tahu penonton asal sumber cahaya.

Lampu ruangan

Cahaya sekitar adalah cahaya difus keseluruhan yang berasal dari sekitar lingkungan, sehingga membuat semuanya terlihat.

Bayangan

Bayangan adalah intensitas cahaya. Misalnya, bagian yang berbeda dari objek yang sama dapat memiliki tingkat bayangan yang berbeda dalam tampilan yang sama, bergantung pada sudut relatif terhadap penampil dan kedekatannya dengan sumber cahaya.

Sorotan spekular

Sorotan spekular adalah bagian permukaan yang mengkilap dan memantulkan sumber cahaya secara langsung. Sorotan pada objek berubah relatif terhadap posisi penampil dalam suatu adegan.

Refleksi

Cahaya memantul dari permukaan secara berbeda, bergantung pada apakah permukaan memiliki properti spekular (sangat reflektif) atau difus (tidak reflektif). Misalnya, bola metal akan sangat spekular dan memantulkan lingkungannya, sedangkan bola lain yang dicat abu-abu matte kusam akan menjadi difus. Sebagian besar objek dunia nyata memiliki kombinasi properti ini — bayangkan bola bowling yang tergores atau kartu kredit yang sudah sering digunakan.

Permukaan reflektif juga menyerap warna dari lingkungan sekitar. Pewarnaan objek dapat terpengaruh secara langsung oleh pewarnaan lingkungannya. Misalnya, bola putih di ruangan biru akan memiliki nuansa kebiruan.

Mode HDR lingkungan

Mode ini terdiri dari API terpisah yang memungkinkan estimasi pencahayaan yang terperinci dan realistis untuk pencahayaan terarah, bayangan, sorotan specular, dan pantulan.

Mode Environmental HDR menggunakan machine learning untuk menganalisis gambar kamera secara real time dan menyintesis pencahayaan lingkungan untuk mendukung rendering objek virtual yang realistis.

Mode estimasi pencahayaan ini memberikan:

  1. Lampu arah utama. Merepresentasikan sumber cahaya utama. Dapat digunakan untuk membuat bayangan.

  2. Harmonik sferis ambient. Merepresentasikan sisa energi cahaya sekitar di tampilan.

  3. Cubemap HDR. Dapat digunakan untuk merender refleksi pada objek logam yang mengkilap.

Anda dapat menggunakan API ini dalam berbagai kombinasi, tetapi API ini dirancang untuk digunakan bersama untuk mendapatkan efek yang paling realistis.

Lampu directional utama

API cahaya terarah utama menghitung arah dan intensitas sumber cahaya utama tampilan. Informasi ini memungkinkan objek virtual di tampilan Anda menampilkan sorotan spekular yang diposisikan secara wajar, dan untuk memunculkan bayangan ke arah yang konsisten dengan objek nyata lainnya yang terlihat.

Untuk melihat cara kerjanya, pertimbangkan dua gambar roket virtual yang sama ini. Pada gambar di sebelah kiri, ada bayangan di bawah roket, tetapi arahnya tidak cocok dengan bayangan lain dalam tampilan. Pada roket di sebelah kanan, bayangan mengarah ke arah yang benar. Perbedaan ini kecil, tetapi penting, dan membuat roket terlihat lebih nyata dalam tampilan karena arah dan intensitas bayangannya lebih cocok dengan bayangan lain dalam tampilan.

     

Saat sumber cahaya utama atau objek yang menyala sedang bergerak, sorotan specular pada objek akan menyesuaikan posisinya secara real time relatif terhadap sumber cahaya.

Bayangan terarah juga menyesuaikan panjang dan arahnya relatif terhadap posisi sumber cahaya utama, seperti yang dilakukan di dunia nyata. Untuk mengilustrasikan efek ini, pertimbangkan dua manekin ini, satu virtual dan satu lagi nyata. Manekin di sebelah kiri adalah manekin virtual.

Harmonis sfera ambien

Selain energi cahaya dalam cahaya terarah utama, ARCore menyediakan harmonik sfera, yang mewakili keseluruhan cahaya sekitar yang masuk dari semua arah dalam tampilan. Gunakan informasi ini selama rendering untuk menambahkan isyarat halus yang menampilkan definisi objek virtual.

Pertimbangkan dua gambar model roket yang sama ini. Roket di sebelah kiri dirender menggunakan informasi estimasi pencahayaan yang terdeteksi oleh API cahaya terarah utama. Roket di sebelah kanan dirender menggunakan informasi yang terdeteksi oleh API cahaya arah utama dan harmoni sferis ambient. Roket kedua jelas memiliki lebih banyak definisi visual, dan menyatu dengan lebih lancar ke dalam tampilan.

     

Cubemap HDR

Gunakan cubemap HDR untuk merender refleksi yang realistis pada objek virtual dengan kilau sedang hingga tinggi, seperti permukaan logam yang mengkilap. Cubemap juga memengaruhi bayangan dan tampilan objek. Misalnya, material objek spekular yang dikelilingi oleh lingkungan biru akan memantulkan nuansa biru. Menghitung cubemap HDR memerlukan komputasi CPU tambahan dalam jumlah kecil.

Apakah Anda harus menggunakan cubemap HDR bergantung pada cara objek memantulkan lingkungannya. Karena roket virtual bersifat metalik, roket memiliki komponen spekular yang kuat yang secara langsung mencerminkan lingkungan di sekitarnya. Dengan demikian, cubemap akan mendapatkan manfaat. Di sisi lain, objek virtual dengan bahan matte abu-abu kusam tidak memiliki komponen specular sama sekali. Warnanya terutama bergantung pada komponen difus, dan tidak akan mendapatkan manfaat dari cubemap.

Ketiga Environmental HDR API digunakan untuk merender roket di bawah. Cubemap HDR memungkinkan isyarat reflektif dan lebih lanjut menyoroti yang mendasarkan objek sepenuhnya dalam tampilan.

Berikut adalah model roket yang sama di lingkungan dengan pencahayaan yang berbeda. Semua tampilan ini dirender menggunakan informasi dari ketiga API, dengan bayangan terarah yang diterapkan.

           

Mode Intensitas Standby

Mode Intensitas Standby menentukan intensitas piksel rata-rata dan skalar koreksi warna untuk gambar tertentu. Ini adalah setelan kasar yang dirancang untuk kasus penggunaan saat pencahayaan yang presisi tidak penting, seperti objek yang memiliki pencahayaan bawaan.

Intensitas piksel

Merekam intensitas piksel rata-rata pencahayaan dalam sebuah adegan. Anda dapat menerapkan pencahayaan ini ke seluruh objek virtual.

Warna

Mendeteksi white balance untuk setiap frame. Kemudian, Anda dapat mengoreksi warna objek virtual agar terintegrasi dengan lebih lancar ke dalam keseluruhan pewarnaan tampilan.

Prob lingkungan

Probe lingkungan mengatur tampilan kamera 360 derajat menjadi tekstur lingkungan seperti peta kubus. Tekstur ini kemudian dapat digunakan untuk menerangi objek virtual secara realistis, seperti bola logam virtual yang “mencerminkan” ruangan tempatnya berada.