Co to jest lista wyświetlania?
Lista wyświetlania w grafice komputerowej jest sekwencją poleceń, która po uruchomieniu dostarcza instrukcji, jak narysować obiekt na ekranie lub innym urządzeniu wyjściowym. Celem użycia listy wyświetlania jest zwiększenie szybkości i wydajności renderowanych scen, a także ułatwienie odczytu kodu źródłowego programowania. Kilka rodzajów oprogramowania i sprzętu wykorzystuje listę wyświetlania do wyświetlania obiektów, w tym oprogramowanie do edycji grafiki wektorowej, niektóre systemy konsoli do gier i niektóre biblioteki grafiki komputerowej. Jednym z aspektów korzystania z listy wyświetlania, który może uczynić ją niewykonalną dla niektórych aplikacji, jest fakt, że po dodaniu instrukcji do listy nie można ich modyfikować, co oznacza, że obiekt reprezentowany przez listę poleceń musi pozostać dokładnie taki sam za każdym razem, gdy jest renderowane.
Ważnym zastosowaniem listy wyświetlania jest uniemożliwienie procesorowi graficznemu (GPU) w komputerze konieczności wykonywania tej samej sekwencji obliczeń za każdym razem, gdy do urządzenia wyjściowego zostanie narysowana scena. Po dodaniu poleceń graficznych do listy, a następnie poinstruowaniu oprogramowania używającego listy do skompilowania poleceń, wszystkie obliczenia dotyczące wyświetlania są wykonywane i przechowywane w pamięci. Oznacza to, że większość obliczeń była już wykonywana przy każdym narysowaniu obiektu. Gdy obiekt musi zostać narysowany wiele razy w ramach jednej sceny, można to zrobić znacznie szybciej, korzystając z jednej listy wyświetlania.
Istnieje kilka funkcji, które może wyświetlić lista wyświetlania po załadowaniu wszystkich poleceń. W przypadku obiektu, który używa obrazu jako tekstury, oryginalna głębia kolorów obrazu i inne właściwości mogą zostać przetłumaczone na format wymagany dla używanej rozdzielczości i używanej karty graficznej. Materiały powierzchniowe, zwłaszcza warstwowe, można obliczyć z wyprzedzeniem, oszczędzając znaczną ilość czasu podczas końcowego renderowania. Oprócz innych obliczeń wykonanych przed renderowaniem, skompilowane informacje o liście mogą być przechowywane w pamięci karty graficznej zamiast w osobnej pamięci komputera lub pamięci wirtualnej. Posiadanie informacji potrzebnych dla GPU przechowywanych na tej samej fizycznej karcie sprzętowej może zwiększyć szybkość renderowania, ponieważ będzie w stanie podróżować znacznie szybciej do procesora.
Kompromis w przypadku korzystania z listy wyświetlania polega na tym, że obliczenia muszą być gdzieś przechowywane. Oznacza to, że utworzenie wielu list może potencjalnie zużyć znacznie więcej pamięci komputera niż byłoby to konieczne. Może to wynikać z liczby wielokątów wymaganych przez obiekt lub rozmiaru obrazu umieszczanego w pamięci tekstury. W przypadku skomplikowanych scen rozmiar list może przekraczać ilość dostępnej pamięci i wpływać na wydajność karty graficznej.