Shader: Różnice pomiędzy wersjami
[wersja przejrzana] | [wersja przejrzana] |
Usunięta treść Dodana treść
m drobne merytoryczne, drobne redakcyjne, poprawa linków |
m drobne merytoryczne, drobne redakcyjne, poprawa linków |
||
Linia 1:
'''Shader''' – krótki [[Oprogramowanie|program]] komputerowy, często napisany w specjalnym języku programowania (''shader language''), który w [[Grafika 3D|grafice trójwymiarowej]] opisuje właściwości [[piksel]]i oraz [[Wierzchołek (grafika 3D)|wierzchołków]]. Technologia ta zastąpiła stosowaną wcześniej w [[Karta graficzna|kartach graficznych]] jednostkę [[Transform and Lighting|T&L]].
'''Cieniowanie''' pozwala na znacznie bardziej skomplikowane modelowanie oświetlenia i [[Materiał (grafika 3D)|materiału]] na obiekcie niż standardowe modele [[Oświetlenie (grafika komputerowa)|oświetlenia]] i [[teksturowanie]]. Jest jednak dużo bardziej [[
W stosunku do standardowych modeli oświetlenia, stosowanych do generowania grafiki w czasie rzeczywistym, cieniowanie umożliwia uwzględnienie między innymi:
* [[refrakcja|refrakcji]],
*[[Odbicie (grafika)|odbić]] [[
* oświetlenia [[High dynamic range rendering|HDR]],
* [[modelowanie (3D)#Mapy przemieszczeń|mapy przemieszczeń]] (ang. ''displacement maps''),
* innych efektów, takich jak rozmycie obrazu, zaszumienie, zmiana kolorów, itp.
== Rodzaje cieniowania ==
Obecnie, z uwagi na wymagania bibliotek [[DirectX]] w wersji 10, zniknął podział panujący dotychczas na ''Pixel Shader'' i ''Vertex Shader''. Obliczenia, jakimi te odrębne jednostki się zajmowały, są teraz wykonywane przez jednolite jednostki obliczeniowe, które są dynamicznie przydzielane do
Biblioteki graficzne [[Direct3D]] i [[OpenGL]] używają trzech typów cieniowania:
=== Vertex Shader ===
'''Cieniowanie wierzchołkowe''' – uruchamiane jest raz dla poszczególnych przetwarzanych wierzchołków. Jego zadaniem jest transformacja położenia wierzchołka w [[Scena (3D)|wirtualnej przestrzeni 3D]] na współrzędne 2D na [[Bufor ramki|ekranie]]. Cieniowanie wierzchołkowe może operować na takich własnościach wierzchołków jak położenie, kolor i współrzędne tekstur, ale nie może tworzyć nowych wierzchołków. Wyjście cieniowania wierzchołkowego jest wejściem dla następnego etapu w potoku, jakim jest albo cieniowanie geometryczne (jeśli jest obecne), albo [[
=== Geometry Shader ===
'''Cieniowanie geometryczne''' – pozwala na dodawanie lub usuwanie wierzchołków z [[Siatka (grafika 3D)|siatki wierzchołków]] (ang. ''mesh''). Może być używane do proceduralnego tworzenia obiektów geometrycznych albo do dodawania objętościowych detali istniejących siatek wierzchołków. Te operacje mogłyby być zbyt kosztowne obliczeniowo dla [[Procesor|CPU]]. Direct3D 10 i OpenGL 3.1 mają już zawarte wsparcie dla tego typu cieniowania. Jeśli cieniowanie geometryczne jest używane, to wtedy jego wyjście
=== Pixel Shader lub Fragment Shader ===
'''Cieniowanie pikseli''' – jest jednostką odpowiadającą za wyliczanie koloru [[piksel]]i. Direct3D używa terminu
Poniższa tabela
{| class="wikitable"
|