Panduan khusus platform
Android (Kotlin/Java)
Android NDK (C)
Unity (Dasar-Dasar AR)
Mesin Unreal
Bagian penting untuk menciptakan pengalaman AR yang realistis adalah mendapatkan pencahayaan yang tepat. Ketika objek virtual tidak memiliki bayangan atau memiliki bahan mengkilap yang tidak mencerminkan ruang di sekitarnya, pengguna dapat merasakan bahwa objek tersebut kurang muat, bahkan jika mereka tidak dapat menjelaskan alasannya. Hal ini karena manusia secara tidak sadar melihat isyarat tentang bagaimana benda-benda menyala di lingkungan mereka. Lighting Estimation API menganalisis gambar tertentu untuk isyarat tersebut, memberikan informasi mendetail tentang pencahayaan dalam sebuah suasana. Kemudian, Anda dapat menggunakan informasi ini saat merender objek virtual untuk meneranginya dalam kondisi yang sama dengan tempat objek tersebut berada, sehingga pengguna tetap membumi dan tetap 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 spekular, dan pantulan.
Bayangan
Bayangan sering kali bersifat terarah dan memberi tahu penonton dari mana sumber cahaya berasal.
Lampu ruangan
Cahaya sekitar adalah cahaya tersebar secara keseluruhan yang masuk dari sekitar lingkungan, membuat semuanya terlihat.
Warna
Bayangan adalah intensitas cahaya. Misalnya, bagian yang berbeda dari objek yang sama dapat memiliki tingkat bayangan yang berbeda pada adegan yang sama, bergantung pada sudut relatif terhadap penampil dan kedekatannya dengan sumber cahaya.
Sorotan spekular
Sorotan spekular adalah bagian permukaan yang mengkilap yang memantulkan sumber cahaya secara langsung. Sorotan pada sebuah objek berubah sesuai dengan posisi penonton dalam sebuah adegan.
Refleksi
Cahaya memantul dari permukaan secara berbeda bergantung pada apakah permukaan tersebut memiliki sifat spekular (sangat reflektif) atau difusi (tidak reflektif). Misalnya, bola metalik akan sangat spekular dan mencerminkan lingkungannya, sementara bola lain yang dicat dengan warna abu-abu matte yang tidak berkedip akan menyebar. Sebagian besar benda di dunia nyata memiliki kombinasi dari kedua sifat ini — bola boling teracak atau kartu kredit yang sering digunakan.
Permukaan reflektif juga mengambil warna dari lingkungan sekitar. Warna objek dapat langsung dipengaruhi oleh warna lingkungannya. Misalnya, bola putih di ruangan biru akan berwarna kebiruan.
Mode HDR lingkungan
Mode ini terdiri dari API terpisah yang memungkinkan estimasi pencahayaan terperinci dan realistis untuk pencahayaan terarah, bayangan, sorotan spekular, dan pantulan.
Mode HDR lingkungan menggunakan machine learning untuk menganalisis gambar kamera secara real time dan memadukan pencahayaan lingkungan untuk mendukung rendering objek virtual yang realistis.
Mode estimasi pencahayaan ini memberikan:
Lampu arah utama. Menampilkan sumber cahaya utama. Dapat digunakan untuk menghasilkan bayangan.
Harmonik sferis sekitar. Menampilkan energi cahaya sekitar yang tersisa dalam tampilan.
Peta kubus HDR. Dapat digunakan untuk merender pantulan dalam objek logam mengkilap.
Anda dapat menggunakan API ini dalam berbagai kombinasi, tetapi dirancang untuk digunakan bersama agar memberikan efek yang paling realistis.
Lampu arah 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 secara wajar, dan menghasilkan bayangan ke arah yang konsisten dengan objek nyata lain yang terlihat.
Untuk melihat cara kerjanya, pertimbangkan dua gambar roket virtual yang sama berikut. Pada gambar di sebelah kiri, ada bayangan di bawah roket, tetapi arahnya tidak cocok dengan bayangan lain di adegan. Pada roket di sebelah kanan, bayangan menunjuk ke arah yang benar. Bayangan ini memiliki perbedaan yang halus namun penting, dan memberikan dasar bagi roket di adegan karena arah dan intensitas bayangan lebih cocok dengan bayangan lain dalam adegan.
Saat sumber cahaya utama atau objek bercahaya sedang bergerak, sorotan spekuler pada objek akan menyesuaikan posisinya secara real time sesuai dengan sumber cahaya.
Bayangan terarah juga menyesuaikan panjang dan arahnya relatif terhadap posisi sumber cahaya utama, seperti yang mereka lakukan di dunia nyata. Untuk menggambarkan efek ini, pertimbangkan dua manekin ini, yang satu virtual dan yang lain itu nyata. Manekin di sebelah kiri adalah manekin virtual.
Harmonik sferis sekitar
Selain energi cahaya dalam cahaya terarah utama, ARCore juga menyediakan harmonik sferis, yang merepresentasikan keseluruhan cahaya sekitar yang masuk dari segala arah di adegan. Gunakan informasi ini selama rendering untuk menambahkan petunjuk halus yang memunculkan definisi objek virtual.
Perhatikan dua gambar berikut dari model roket yang sama. Roket di sebelah kiri dirender menggunakan informasi estimasi pencahayaan yang dideteksi oleh API cahaya arah utama. Roket di sebelah kanan dirender menggunakan informasi yang terdeteksi oleh cahaya arah utama dan API harmonik sferis sekitar. Roket kedua memiliki definisi visual yang lebih jelas, dan menyatu lebih mulus ke dalam adegan.
Peta kubus HDR
Gunakan peta kubus HDR untuk merender pantulan realistis pada objek virtual dengan tingkat kilau sedang hingga tinggi, seperti permukaan logam mengkilap. Peta kubus juga memengaruhi bayangan dan tampilan objek. Misalnya, bahan objek spekular yang dikelilingi lingkungan biru akan memantulkan rona biru. Menghitung peta kubus HDR memerlukan sedikit komputasi CPU tambahan.
Penggunaan peta kubus HDR bergantung pada bagaimana objek mencerminkan lingkungannya. Karena roket virtualnya mengandung logam, roket ini memiliki komponen spekular kuat yang secara langsung mencerminkan lingkungan di sekitarnya. Dengan demikian, peta ini mendapatkan manfaat dari peta kubus. Di sisi lain, objek virtual dengan bahan matte abu-abu pudar tidak memiliki komponen spekular sama sekali. Warnanya utamanya bergantung pada komponen difusi, dan tidak akan mendapatkan manfaat dari peta kubus.
Ketiga API HDR Lingkungan digunakan untuk merender roket di bawah ini. Peta kubus HDR memungkinkan isyarat reflektif dan penandaan lebih lanjut yang menempatkan objek sepenuhnya di dalam tampilan.
Berikut adalah model roket yang sama di lingkungan dengan pencahayaan yang berbeda. Semua scene ini dirender menggunakan informasi dari ketiga API, dengan penerapan bayangan terarah.
Mode Intensitas Sekitar
Mode Intensitas Sekitar menentukan intensitas piksel rata-rata dan skalar koreksi warna untuk gambar tertentu. Setelan umum yang didesain untuk kasus penggunaan ketika pencahayaan yang tepat tidak terlalu penting, seperti objek yang memiliki pencahayaan bawaan.
Intensitas piksel
Menangkap intensitas piksel rata-rata pencahayaan dalam pemandangan. Anda dapat menerapkan pencahayaan ini ke seluruh objek virtual.
Warna
Mendeteksi keseimbangan putih untuk setiap frame. Anda kemudian dapat mengoreksi warna objek virtual agar terintegrasi lebih mulus ke dalam pewarnaan adegan secara keseluruhan.
Pemeriksaan lingkungan
Pemeriksaan 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.