Apa perbedaan antara PBR dan SSR?


11

Saya sangat baru dalam pengembangan game dan saya telah mencoba memahami perbedaan antara Screen Space Reflection dan Rendering Berbasis Fisik.

Saya telah membaca tentang PBR, dan dari apa yang saya pahami, ia mencoba meniru bagaimana cahaya memantul dalam kehidupan nyata, yang biasanya terbelah menjadi dua komponen, specular dan difus tergantung pada jenis bahan.

Adapun SSR, tolong koreksi saya jika saya salah, itu adalah bagaimana refleksi terlihat di permukaan.

Jika pemahaman saya tentang RSK benar, maka bukankah mereka dengan cara yang sama? Maksud saya, bukankah cara refleksi terlihat pada permukaan yang tergantung pada kekasaran permukaan dan lain-lain. Ini kemudian akan memengaruhi seberapa banyak cahaya yang dipantulkan secara specular dan berapa banyak yang dipantulkan secara difus. Sekali lagi, tolong perbaiki saya di mana pun saya salah.

Jawaban:


17

Rendering Berbasis Fisik

Anda berada di jalur yang benar ketika Anda mengatakan "ia mencoba meniru bagaimana cahaya memantul dalam kehidupan nyata, yang biasanya terbagi menjadi dua komponen, specular dan difus tergantung pada jenis materialnya."

Tapi kami telah memodelkan material dengan specular dan difus dalam game & komputer grafik untuk waktu yang lama. Kuncinya adalah kita biasa menangani hal-hal ini sebagai sepenuhnya independen - mengubah specularity tidak mengubah difusi:

Contoh shading Phong yang biasa digunakan dalam gim

Ini adalah contoh bayangan Phong dari wiki Blender . Anda dapat melihat bahwa ia menawarkan dua parameter intensitas specular dan kekerasan specular, dan parameter ini hanya mengubah bagian keputihan refleksi. Refleksi biru difus tidak berubah sama sekali.

Cara permainan akan menggunakan ini adalah seorang seniman akan ditugaskan untuk menyesuaikan nilai-nilai ini untuk setiap materi sampai "terlihat benar." Karena "kekerasan specular" bukanlah sifat fisik nyata dari bahan yang dapat kita ukur dengan tepat, itu harus dilakukan dengan mata.

Metode ini agak rapuh. Saat Anda mengubah iluminasi (katakanlah, objek dinamis yang bergerak melalui area yang berbeda, atau dalam lingkungan dengan waktu dan cuaca) itu dapat terlihat agak salah - terlalu terang atau terlalu gelap - karena kondisi tampilan tidak sama dengan yang parameter specularnya disetel untuk.

Masukkan Rendering Berbasis Fisik, yang merupakan upaya untuk membumikan uraian materi kami di properti permukaan yang lebih objektif dan terukur. Salah satu sifat yang paling jelas adalah kekekalan energi - permukaan yang lebih kasar akan menyebarkan cahaya secara difus, dan permukaan yang lebih halus / lebih metalik akan memantulkan cahaya secara lebih langsung, tetapi itu adalah kumpulan cahaya yang sama dengan yang mereka gunakan. Jadi hal-hal lain dianggap sama, saat kita membuat materi lebih bersinar, komponen yang menyebar harus menjadi lebih gelap:

Contoh peningkatan reflektifitas dengan albedo konstan

Contoh ini dari artikel Marmoset yang menjelaskan PBR yang awalnya dibagikan oleh Syntac_

Ada lebih banyak render berbasis fisik daripada konservasi energi, tetapi ini mungkin merupakan tanda paling jelas bahwa Anda bekerja dengan sistem berbasis fisik.

Dengan menjaga agar model refleksi serupa dengan bagaimana bahan bekerja dalam kehidupan nyata, kami mengurangi kebutuhan akan faktor fudge dan subjektivitas artis untuk mendapatkan material dunia nyata seperti kayu atau beton atau kulit agar terlihat nyata di bawah berbagai kondisi pencahayaan.

Perhatikan bahwa jawaban lain menggambarkan hal ini dalam hal penerangan tidak langsung dari cahaya yang memantul objek lain dalam pemandangan. Sementara banyak sistem pencahayaan yang menggunakan model berbasis fisik juga akan menyertakan alat untuk memodelkan ini, biasanya dikenal dengan nama terpisah Global Illumination . Ini adalah efek yang membuat satu sisi kepala difus dalam gambar ini tampak hijau, diterangi oleh cahaya yang memantul dari dinding hijau:

Contoh pemandangan uji iluminasi global yang khas

Gambar dari artikel ini tentang penerangan global

Refleksi Ruang Layar

Sementara PBR mencoba memodelkan bagaimana materi memantulkan cahaya, Screenspace Reflection mencoba menangkap apa yang sedang dipantulkan - khususnya, untuk permukaan yang mengkilap, seperti cermin, apa yang harus saya lihat dalam pantulan?

Sekali lagi ini adalah teknik rendering yang relatif baru yang mungkin paling jelas untuk dipahami berbeda dengan bagaimana game melakukannya sebelumnya:

Flipping Rendering - umum untuk bidang air atau cermin datar, kami benar-benar membuat semua geometri yang dipantulkan untuk kedua kalinya dicerminkan di seluruh bidang permukaan reflektif. Ini memberikan pantulan berkualitas tinggi (detail penuh, benda yang bersentuhan dengan permukaan yang sejajar dengan pantulannya) tetapi hanya berfungsi dengan benar untuk permukaan datar. Semakin bergelombang atau bergelombang permukaan, semakin sedikit ini berperilaku seperti refleksi nyata, yang seharusnya mengubah atau mengaburkan dengan cara yang kompleks.

Cube Maps - mari kita menyimpan warna yang akan dilihat oleh sinar tampilan yang memancar dari titik pusatnya. Dengan merender peta kubus secara dinamis dari titik yang dipilih dalam adegan, kita dapat memperkirakan warna apa yang harus dipantulkan dari permukaan yang melengkung secara sewenang-wenang. Masalahnya di sini adalah bahwa peta kubus hanya sepenuhnya benar pada titik pusatnya - sebagai titik di mana kami mensimulasikan refleksi bergerak di sekitar tempat kejadian, itu akan melihat beberapa paralaks, yang tidak ada dalam peta kubus. Ini berarti objek tidak cenderung sejajar dengan pantulannya.

Layar Ruang refleksi mencoba untuk mengatasi keterbatasan ini dengan menggunakan adegan yang diberikan itu sendiri sebagai sumber untuk informasi refleksi. Itu memancarkan sinar pandangan yang dipantulkan, menggunakan kedalaman adegan, sampai akan memotong sesuatu dalam adegan yang diberikan.

Slide yang menggambarkan refleksi ruang layar dengan diagram tampilan samping

Berikut ini slide dari presentasi EA DICE tentang pendekatan mereka terhadap refleksi di mesin Frostbite .

Ini berarti (dengan beberapa pekerjaan algoritmik pintar) kita bisa mendapatkan refleksi dengan akurasi seperti raytracing yang cukup dari permukaan yang sewenang-wenang dalam game, memiliki penyelarasan permukaan yang benar dalam kontak, distorsi dan kabur, selama bagian permukaan yang dipantulkan terlihat pada -screen (mis. tidak offscreen atau tersumbat oleh sesuatu yang lain). Jika refleksi tidak dapat ditentukan secara akurat oleh raymarching, biasanya diperkirakan menggunakan sampel terdekat atau kubem mundur yang mewakili pemandangan di samping / di belakang tampilan kamera.

Contoh proyek menggunakan refleksi screenspace

Anda dapat melihat dalam contoh pantulan ruang layar ini , kesan bisa sangat meyakinkan, meskipun kesalahan kecil terlihat (lihat pantulan bagian bawah kubus, yang tidak terlihat dalam bingkai yang diberikan dan oleh karena itu cukup apus & ulangi piksel yang berdekatan, atau lubang-lubang pada pantulan tirai hijau kanan di sebelah pot bunga dan di bagian bawah layar, di mana raymarching gagal menemukan piksel pantulan yang tepat). Adalah umum untuk menggunakan teknik ini untuk permukaan yang agak mengkilap / sedikit kasar untuk membantu membuat kesalahan sesekali kurang terlihat.


Terima kasih banyak atas jawabannya. Inilah yang ingin saya ketahui.
Kumaresan Sandran

Bagi mereka yang ingin tahu, ada makalah 2015 tentang metode semi-canggih, tetapi intuitif untuk memecahkan masalah "lihat refleksi sisi bawah kubus": Cari makalah: "Penerangan Global Multi-Skala dalam Istirahat Quantum"
Sirisian

1

Mereka tidak benar-benar terkait.

Dokumen dari Marmoset ini menjelaskan PBR dengan baik tanpa melibatkan banyak matematika.

Refleksi ruang layar di sisi lain adalah teknik ruang layar pasca proses yang digunakan untuk membuat refleksi waktu nyata. Ini umumnya jauh lebih murah daripada merender peta kubus setiap frame, tetapi dapat terlihat kurang akurat dan tidak memungkinkan objek di luar layar untuk dipantulkan.


1
Baru saja datang ke sini untuk memperbarui tautan, bagi siapa pun yang mengunjungi dari tahun 2018 ... marmoset.co/posts/basic-theory-of-physically-based-rendering
sws

@sws memperbarui sorakan.
Syntac_
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.