„Self-shadowing” to termin opisujący okoliczność, w której jedna część przedmiotu rzuca na siebie cień. Przykłady samozacieniania obejmują cień rzucany przez ludzki nos na twarz lub górną wargę, gdy źródło światła pochodzi z góry, lub cień rzucany przez siedzenie krzesła na nogi krzesła. Kiedy termin ten jest używany w grafice komputerowej — w szczególności w programowaniu grafiki komputerowej — jest to odniesienie do cieni rzucanych na siebie przez trójwymiarowe (3D) obiekty sceny lub cieni rzucanych przez dynamiczne obiekty na siebie i obiekty wokół nich . Charakter programowania grafiki komputerowej 3D w czasie rzeczywistym powoduje, że wiele aplikacji korzysta z technik, które często usuwają możliwość renderowania cieni własnych na rzecz innych optymalizacji, chociaż wraz ze wzrostem szybkości i możliwości komputerów metody samocieniania w czasie rzeczywistym stały się bardziej dostępne. Istnieje kilka metod renderowania obiektów cieniujących w czasie rzeczywistym, ale ograniczenia sprzętowe zwykle dają wyniki, które mają pewne wady, takie jak niedokładne cienie, cienie ze sztucznie twardymi krawędziami lub sceny, które renderują się bardzo wolno na kartach graficznych, które nie są niewiarygodnie szybkie .
Jedną z różnic, którą należy zrobić, mówiąc o samocieniu, jest różnica między obiektami statycznymi i dynamicznymi w grafice czasu rzeczywistego. Obiekty statyczne to obiekty 3D w scenie, które się nie poruszają i nie mają żadnej części swojej geometrii zmienionej w trakcie renderowania. Z drugiej strony obiekt dynamiczny to obiekt, który nie jest w żaden sposób bezpośrednio związany ze sceną i może różnić się w kolejnych klatkach. W przeważającej części większość obiektów statycznych i scen nie działających w czasie rzeczywistym tworzy cienie własne, albo ze względu na silnik renderujący, albo z powodu innych sztuczek graficznych, których można użyć.
Kilka optymalizacji, które są używane do renderowania grafiki 3D w czasie rzeczywistym, utrudnia implementację dynamicznego cieniowania. Niektóre przykłady obejmują silnik graficzny, który stosuje efekty świetlne tylko do statycznego tła, ignorując dynamiczne obiekty, takie jak postacie w scenie, lub silnik, który traktuje obiekty tylko jako sylwetki, bez świadomości wewnętrznej geometrii. Wraz ze wzrostem liczby procesorów graficznych i komputerów, nowe techniki umożliwiają pojawianie się samocieniujących obiektów w scenie czasu rzeczywistego, z pewnymi ograniczeniami i kompromisami.
Objętości cienia to jeden ze sposobów na zaimplementowanie samocieniania w scenie 3D. Ta metoda zasadniczo tworzy obiekty 3D, które zajmują zamkniętą objętość w scenie, w której rzucany jest cień, umożliwiając rendererowi lub shaderowi przeprowadzenie testów, czy jakikolwiek punkt znajduje się w zacienionej objętości, aby określić, w jaki sposób jest on oświetlony. Inne metody tworzą mapy cieni lub przybliżone cienie z pozycji wierzchołków, aby utworzyć bardzo rozproszone cienie, które niekoniecznie odpowiadają wierności krawędzi.
Prawie wszystkie metody samodzielnego cieniowania muszą wymieniać szybkość lub jakość, aby uzyskać akceptowalny wynik. Problemy z jakością mogą wystąpić w przypadku użycia szybkich, ale o niskiej rozdzielczości lub rozmytych technik, które mogą sprawić, że niektóre własne cienie będą wydawać się niewłaściwe lub nie na miejscu. Problemy z szybkością występują, gdy używane algorytmy wymagają zbyt dużego obciążenia na klatkę lub próbują zbyt dokładnie obliczyć projekcje cieni. Chociaż nie ma jednego standardowego algorytmu wytwarzającego cienie, niektóre karty graficzne zawierają natywne przyspieszenie dla różnych metod, które mogą zwiększyć szybkość niektórych technik.