“Membayangi diri sendiri” adalah istilah yang menggambarkan keadaan di mana satu bagian dari suatu objek membuat bayangan pada dirinya sendiri. Contoh bayangan diri termasuk bayangan yang dibuat oleh hidung manusia di wajah atau bibir atas ketika sumber cahaya datang dari atas, atau bayangan yang dibuat oleh kursi kursi di kaki kursi. Ketika istilah ini digunakan dalam grafik komputer — khususnya pemrograman grafik komputer — itu adalah referensi ke bayangan yang dilemparkan oleh objek tiga dimensi (3D) sebuah adegan pada dirinya sendiri, atau bayangan yang dilemparkan oleh objek dinamis pada dirinya sendiri dan objek di sekitarnya. . Sifat pemrograman grafis komputer 3D real-time menyebabkan banyak aplikasi menggunakan teknik yang sering menghilangkan kemungkinan rendering bayangan-diri demi pengoptimalan lain, meskipun, seiring dengan peningkatan kecepatan dan kemampuan komputer, metode bayangan-diri waktu-nyata telah menjadi lebih mudah diakses. Ada beberapa metode untuk merender objek self-shadowing waktu-nyata, tetapi keterbatasan perangkat keras biasanya menghasilkan hasil yang memiliki beberapa kelemahan, seperti bayangan yang tidak akurat, bayangan dengan tepi keras yang artifisial, atau pemandangan yang merender sangat lambat pada kartu grafis yang tidak terlalu cepat. .
Satu perbedaan yang harus dibuat ketika berbicara tentang self-shadowing adalah perbedaan antara objek statis dan dinamis dalam grafik waktu nyata. Objek statis adalah objek 3D dalam pemandangan yang tidak bergerak dan tidak ada bagian geometrinya yang berubah selama rendering. Objek dinamis, di sisi lain, adalah objek yang tidak secara langsung melekat pada adegan dengan cara apa pun dan dapat berbeda dari satu bingkai ke bingkai berikutnya. Untuk sebagian besar, sebagian besar objek statis dan adegan non-real-time melakukan bayangan sendiri, baik karena mesin rendering atau karena trik grafis lain yang dapat digunakan.
Beberapa pengoptimalan yang digunakan untuk membuat grafik 3D waktu nyata membuat penerapan bayangan diri dinamis menjadi sulit. Beberapa contoh termasuk mesin grafis yang hanya menerapkan efek pencahayaan ke latar belakang statis, mengabaikan objek dinamis seperti karakter dalam adegan, atau mesin yang memperlakukan objek hanya sebagai siluet, tanpa kesadaran geometri internal. Dengan peningkatan prosesor grafis dan komputer, teknik baru memungkinkan objek yang dibayangi sendiri muncul dalam adegan waktu nyata, dengan beberapa batasan dan pengorbanan.
Volume bayangan adalah salah satu cara agar bayangan diri dapat diimplementasikan dalam adegan 3D. Metode ini pada dasarnya membuat objek 3D yang menempati volume tertutup dalam adegan di mana bayangan dilemparkan, memungkinkan penyaji atau shader untuk melakukan tes apakah ada titik dalam volume bayangan untuk menentukan bagaimana itu menyala. Metode lain membuat peta bayangan, atau bayangan perkiraan dari posisi vertex, untuk membuat bayangan yang sangat menyebar yang tidak selalu mengikuti fidelitas tepi.
Hampir semua metode self-shadowing harus bertukar kecepatan atau kualitas untuk mendapatkan hasil yang dapat diterima. Masalah kualitas dapat terjadi melalui penggunaan teknik cepat tetapi beresolusi rendah atau kabur yang mungkin membuat beberapa bayangan diri tampak salah atau tidak pada tempatnya. Masalah kecepatan terjadi ketika algoritme yang digunakan membutuhkan terlalu banyak overhead per frame atau upaya untuk menghitung proyeksi bayangan terlalu akurat. Meskipun tidak ada algoritme penghasil bayangan diri standar tunggal, beberapa kartu grafis menyertakan akselerasi asli untuk berbagai metode yang dapat meningkatkan kecepatan beberapa teknik.