ShaderShader je počítačový program slúžiaci na riadenie jednotlivých častí programovateľného grafického reťazca grafickej karty (presnejšie GPU). K tvorbe takýchto programov slúžia špecializované programovacie jazyky tzv. Shader jazyky (napríklad jazyk GLSL pre OpenGL, Cg od spoločnosti NVIDIA alebo HLSL od spoločnosti Microsoft určený pre API DirectX, Xbox a Xbox 360). Shadery sa rozdeľujú na niekoľko základných typov podľa toho, pre ktorú jednotku grafického reťazca sú určené. V súčasnosti patria medzi najdôležitejšie vertex, pixel a geometry shader. S príchodom posledných generácií grafických kariet a nových verzií grafických rozhraní (DirectX a OpenGL) sa tiež začínajú rýchlo presadzovať shadery pre realizáciu teselácie. Vertex shaderProgram, ktorý sa vykoná na každom vrchole (vertexu) vstupnej geometrie scény. Medzi najčastejšie operácie patrí transformácia vrcholu (násobenie pohľadovou a "world" maticou). Pomocou transformácií možno však dosiahnuť aj rôznych grafických efektov - napr. simulácia pohybu vodnej hladiny. Vždy do programu vstúpi jeden vrchol, je upravený a zase vystúpi, nemožno teda vrcholy pridávať či odoberať.[1] Geometry shaderGeometry shader na rozdiel od vertex shadera umožňuje pridávať alebo odoberať vrcholy a tým ovplyvňovať výslednú geometriu. Geometry shader možno využiť napríklad na generovanie jednoduchej vegetácie (trávy) na povrchu nejakého objektu či na doplnenie detailov existujúceho modelu (napr. vytvorenie ostňov na modeli dinosaura) v reálnom čase.[1] Pixel (fragment) shaderPixel shader je vykonávaný na každom pixeli rasterizovanej scény - pracuje teda s jej 2D obrazom. Medzi najčastejšie operácie patrí aplikácie textúr prípadne ďalšie modifikácie farby pixelu.[1] Shadery pre teseláciuS príchodom Direct3D 11 a OpenGL 3.2 bol vykresľovací reťazec rozšírený o nové stupne realizujúce teseláciu. Dva z týchto celkom troch stupňov sú programovateľné. Názvy príslušných shaderov sa u jednotlivých rozhraní líšia. Pre Direct3D sú to Hull-shader a Domain-shader, pre OpenGL potom Tessellation control shader (TC) a Tessellation evaluation shader (TE). Tieto shadery umožňujú meniť geometriu objektov (podobne ako geometry shader). Vďaka podpore teselácie zakotvenej priamo v hardware (GPU) je možné do scény pridať veľmi veľké množstvo detailov (a to tam, kde sú potrebné napr. podľa vzdialenosti od kamery).[2] Referencie
Externé odkazy
Information related to Shader |