Nowoczesne silniki graficzne oparte są na shaderach. Shadery to programy działające na sprzęcie graficznym w celu tworzenia geometrii (sceny), obrazów (renderowanej sceny), a następnie efektów post-pikselowych.
Z artykułu w Wikipedii na temat shaderów:
Shadery to proste programy opisujące cechy wierzchołka lub piksela. Cieniowanie wierzchołków opisuje cechy (położenie, współrzędne tekstury, kolory itp.) Wierzchołka, podczas gdy cieniowanie pikseli opisuje cechy (kolor, głębokość z i wartość alfa) piksela. Moduł cieniujący wierzchołków jest wywoływany dla każdego wierzchołka w prymitywie (prawdopodobnie po teselacji); zatem jeden wierzchołek, jeden (zaktualizowany) wierzchołek. Każdy wierzchołek jest następnie renderowany jako seria pikseli na powierzchni (bloku pamięci), która zostanie ostatecznie wysłana na ekran.
Nowoczesne karty graficzne mają od setek do tysięcy rdzeni obliczeniowych zdolnych do wykonywania tych shaderów. Kiedyś były dzielone między moduły cieniowania geometrii, wierzchołków i pikseli, ale architektura jest teraz zunifikowana, rdzeń jest zdolny do wykonywania dowolnego typu modułu cieniującego. Pozwala to na znacznie lepsze wykorzystanie zasobów, ponieważ silnik gry i / lub sterownik karty graficznej może dostosować liczbę shaderów, które mają zostać przypisane do danego zadania. Więcej rdzeni przydzielonych do cieniowania geometrii może dać więcej szczegółów w krajobrazie, więcej rdzeni przydzielonych do cieniowania pikseli może dać lepsze efekty, takie jak rozmycie ruchu lub efekty świetlne.
Zasadniczo dla każdego piksela widocznego na ekranie wiele shaderów jest uruchamianych na różnych poziomach dostępnych rdzeni obliczeniowych.
CUDA to po prostu API Nvidias, które daje programistom dostęp do rdzeni w GPU. Podczas gdy słyszałem termin „rdzeń CUDA”, w grafice rdzeń CUDA jest analogiczny do procesora strumieniowego, który jest rodzajem rdzenia przetwarzania używanego przez karty graficzne. CUDA uruchamia programy na rdzenie graficzne, programy mogą być shaderami lub mogą być zadaniami obliczeniowymi do wykonywania bardzo równoległych zadań, takich jak kodowanie wideo.
Jeśli zmniejszysz poziom szczegółowości w grze, możesz zmniejszyć obciążenie obliczeniowe karty graficznej do punktu, w którym mogą używaj go do robienia innych rzeczy, ale chyba że możesz powiedzieć tym innym, aby zwolniły, to prawdopodobnie spróbują zepsuć rdzenie procesora graficznego i uniemożliwić grę.