Unity menggunakan teknik yang disebut pemetaan bayangan untuk membuat bayangan real-time.
Pemetaan bayangan menggunakan tekstur yang disebut peta bayangan. Peta bayangan mirip dengan tekstur kedalaman. Cahaya menghasilkan peta bayangan dengan cara yang mirip dengan bagaimana CameraKomponen yang menciptakan gambar sudut pandang tertentu di tempat kejadian Anda. Output ditarik ke layar atau ditangkap sebagai tekstur. More info
Lihat di Glossary menghasilkan tekstur kedalaman. Jika Anda membayangkan Kamera di lokasi yang sama dengan Cahaya, area SceneAdegan berisi lingkungan dan menu permainan Anda. Pikirkan setiap file Adegan unik sebagai tingkat yang unik. Di setiap Adegan, Anda menempatkan lingkungan, hambatan, dan dekorasi, pada dasarnya merancang dan membangun permainan Anda dalam potongan-potongan. More info
Lihat di Glossary bahwa Kamera tidak dapat melihat adalah daerah yang sama dari Adegan yang sinar dari Cahaya tidak dapat mencapai; oleh karena itu, mereka berada di bayangan.
Unity mengisi peta bayangan dengan informasi tentang berapa sinar jauh dari perjalanan Cahaya sebelum mereka memukul permukaan, dan kemudian sampel peta bayangan untuk menghitung bayangan real-time untuk GameObjectsObjek mendasar dalam adegan Unity, yang dapat mewakili karakter, props, pemandangan, kamera, waypoints, dan banyak lagi. Fungsi GameObject didefinisikan oleh Komponen yang melekat padanya. More info
Lihat di Glossary yang hits Cahaya.
Untuk informasi lebih lanjut tentang pemetaan bayangan, lihat Login Halaman pada pemetaan bayangan.
Untuk menghitung resolusi peta bayangan, Unity:
Menentukan area tampilan layar bahwa Cahaya dapat menyala. Untuk lampu arah, seluruh layar dapat diterangi. Untuk Lampu Spot dan Lampu Point, area ini adalah proyeksi layar dari bentuk batas cahaya: ruang untuk lampu titik, atau kerucut untuk Lampu Spot. Bentuk proyeksi memiliki lebar dan tinggi piksel di layar; semakin besar dari dua nilai tersebut kemudian diambil. Nilai ini disebut ukuran pixelUnit terkecil dalam gambar komputer. Ukuran piksel tergantung pada resolusi layar Anda. Pencahayaan pixel dihitung pada setiap piksel layar. More info
Lihat di Glossary Cahaya.
Lakukan perhitungan berikut, dan kemudian menjepit hasilnya ke ukuran maksimum:
Light type: | Formula: | Maximum resolution, in pixels: |
---|---|---|
Directional | NextPowerOfTwo (ukuran piksel * kualitas bayangan multiplier * 3.8) | 4096 x 4096 ketika Resolusi Bayangan sangat berkualitas tinggi dan / atau jika GPU memiliki 512MB atau lebih dari RAM, 2048 x 2048 sebaliknya. |
Lampu Spot | NextPowerOfTwo (ukuran piksel * kualitas bayangan multiplier * 2.0) | 2048 x 2048 jika GPU memiliki 512MB atau lebih dari RAM, 1024 x 1024 sebaliknya. |
Lampu Titik | NextPowerOfTwo (ukuran piksel * kualitas bayangan multiplier * 1.0) | 1024 x 1024 jika GPU memiliki 512MB atau lebih dari RAM, 512 x 512 sebaliknya. |
Lampu titik memiliki batas yang lebih rendah pada ukuran daripada jenis lain karena mereka menggunakan cubemaps untuk bayangan. Ini berarti bahwa enam cubemapKoleksi enam tekstur persegi yang dapat mewakili refleksi di lingkungan atau skybox yang digambar di balik geometri Anda. Enam kotak membentuk wajah kubus imajiner yang mengelilingi objek; setiap wajah mewakili pandangan di sepanjang arah sumbu dunia (hingga, kiri, kanan, ke depan dan belakang). More info
Lihat di Glossary menghadapi resolusi ini harus disimpan dalam memori video sekaligus. Mereka juga cukup mahal untuk membuat, sebagai kas bayangan potensial mungkin perlu diberikan ke semua enam wajah cubemap.
Pada Render PipelineRangkaian operasi yang mengambil isi dari Adegan, dan menampilkannya di layar. Unity memungkinkan Anda memilih dari pipa render yang dibangun sebelumnya, atau menulis sendiri. More info
Lihat di Glossary Built-in, Anda dapat mengatur resolusi peta bayangan Cahaya dengan mengatur properti Cahaya.shadowCustomResolution menjadi nilai lebih besar dari 0. Ketika nilai ini lebih besar dari 0, Unity melakukan perhitungan berikut untuk semua jenis Cahaya:
NextPowerOfTwo (shadowCustomResolution)
Ini kemudian menjepit resolusi maksimum berdasarkan tipe Cahaya dan perangkat keras, seperti yang ditunjukkan di atas meja.
Lihat render perbandingan fitur pipa untuk informasi lebih lanjut tentang dukungan untuk pemetaan bayangan di seluruh pipa render.