Dapatkan pencahayaan yang tepat

Panduan khusus platform

Bagian penting untuk menciptakan pengalaman AR yang realistis adalah mendapatkan pencahayaan yang tepat. Saat objek virtual tidak memiliki bayangan atau memiliki material mengilap yang tidak memantulkan ruang di sekitarnya, pengguna dapat merasakan bahwa objek tersebut tidak pas, meskipun mereka tidak dapat menjelaskan alasannya. Hal ini karena manusia secara tidak sadar melihat petunjuk mengenai cara objek diterangi di lingkungannya. Lighting Estimation API menganalisis gambar tertentu untuk mendapatkan petunjuk tersebut, sehingga memberikan informasi mendetail tentang pencahayaan dalam suatu adegan. Anda kemudian dapat menggunakan informasi ini saat merender objek virtual untuk meneranginya dalam kondisi yang sama dengan adegan tempat objek tersebut ditempatkan, sehingga pengguna tetap merasa berada di tempat yang sama dan berinteraksi.

Petunjuk pencahayaan

Lighting Estimation API menyediakan data mendetail yang memungkinkan Anda meniru berbagai isyarat pencahayaan saat merender objek virtual. Petunjuk ini adalah bayangan, cahaya sekitar, shading, sorotan spekular, dan pantulan.

Bayangan

Bayangan sering kali memiliki arah dan memberi tahu penonton dari mana sumber cahaya berasal.

Lampu ruangan

Cahaya sekitar adalah cahaya difus keseluruhan yang masuk 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 adegan yang sama, bergantung pada sudut relatif terhadap penonton dan kedekatannya dengan sumber cahaya.

Pantulan spekular

Pantulan spekular adalah bagian mengilap dari permukaan yang memantulkan sumber cahaya secara langsung. Sorotan pada objek berubah relatif terhadap posisi penonton dalam adegan.

Refleksi

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

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

Mode HDR lingkungan

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

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

Mode estimasi pencahayaan ini menyediakan:

  1. Cahaya terarah utama. Menampilkan sumber cahaya utama. Dapat digunakan untuk membuat bayangan.

  2. Harmonik sferis sekitar. Mewakili energi cahaya sekitar yang tersisa dalam adegan.

  3. Cubemap HDR. Dapat digunakan untuk merender pantulan pada objek logam mengilap.

Anda dapat menggunakan API ini dalam berbagai kombinasi, tetapi API ini dirancang untuk digunakan bersama-sama agar menghasilkan efek yang paling realistis.

Cahaya terarah utama

API cahaya terarah utama menghitung arah dan intensitas sumber cahaya utama adegan. Informasi ini memungkinkan objek virtual dalam adegan Anda menampilkan sorotan spekular yang diposisikan dengan wajar, dan menghasilkan bayangan dalam arah yang konsisten dengan objek nyata lainnya yang terlihat.

Untuk melihat cara kerjanya, perhatikan dua gambar roket virtual yang sama ini. Pada gambar di sebelah kiri, ada bayangan di bawah roket, tetapi arahnya tidak sesuai dengan bayangan lain dalam adegan tersebut. Pada roket di sebelah kanan, bayangan mengarah ke arah yang benar. Perbedaannya kecil, tetapi penting, dan membuat roket terlihat lebih menyatu dengan pemandangan karena arah dan intensitas bayangannya lebih cocok dengan bayangan lain dalam pemandangan.

     

Saat sumber cahaya utama atau objek yang menyala bergerak, pantulan spekular 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 terjadi di dunia nyata. Untuk mengilustrasikan efek ini, pertimbangkan dua manekin ini, yang satu virtual dan yang lainnya nyata. Manekin di sebelah kiri adalah manekin virtual.

Harmonik bola sekitar

Selain energi cahaya dalam cahaya terarah utama, ARCore menyediakan harmonik bola, yang merepresentasikan keseluruhan cahaya sekitar yang masuk dari segala arah dalam adegan. Gunakan informasi ini selama rendering untuk menambahkan isyarat halus yang menonjolkan 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 harmonik sferis ambien dan cahaya arah utama. Roket kedua jelas memiliki definisi visual yang lebih baik, dan berpadu lebih mulus dengan pemandangan.

     

Cubemap HDR

Gunakan cubemap HDR untuk merender pantulan realistis pada objek virtual dengan kilau sedang hingga tinggi, seperti permukaan logam yang mengilap. Cubemap juga memengaruhi shading dan tampilan objek. Misalnya, material objek spekular yang dikelilingi lingkungan biru akan memantulkan warna biru. Menghitung cubemap HDR memerlukan sedikit komputasi CPU tambahan.

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

Ketiga API HDR Lingkungan digunakan untuk merender roket di bawah. Cubemap HDR memungkinkan isyarat reflektif dan penyorotan lebih lanjut yang menempatkan objek sepenuhnya dalam adegan.

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

           

Mode Intensitas sekitar

Mode Intensitas Sekitar menentukan intensitas piksel rata-rata dan skalar koreksi warna untuk gambar tertentu. Setelan ini adalah setelan kasar yang dirancang untuk kasus penggunaan yang tidak memerlukan pencahayaan presisi, seperti objek yang memiliki pencahayaan bawaan.

Intensitas piksel

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

Warna

Mendeteksi keseimbangan putih untuk setiap frame. Kemudian, Anda dapat mengoreksi warna objek virtual agar terintegrasi lebih lancar ke dalam pewarnaan keseluruhan adegan.

Pemeriksaan lingkungan

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