Поддерживать
www.wikidata.ru-ru.nina.az
Eta statya dolzhna byt polnostyu perepisana Na stranice obsuzhdeniya mogut byt poyasneniya V state est spisok istochnikov no ne hvataet snosok Bez snosok slozhno opredelit iz kakogo istochnika vzyato kazhdoe otdelnoe utverzhdenie Vy mozhete uluchshit statyu prostaviv snoski na istochniki podtverzhdayushie informaciyu Svedeniya bez snosok mogut byt udaleny 3 yanvarya 2015 V etoj state mozhet byt slishkom mnogo ssylok na drugie stati i vozmozhno ih kolichestvo nuzhno sokratit Pozhalujsta oformite eyo soglasno pravilam rasstanovki i oformleniya vnutrennih ssylok i udalite povtoryayushiesya ssylki i vse ssylki ne otnosyashiesya k kontekstu 15 maya 2024 Slovo she jder imeet neskolko znachenij V etoj state opisano tolko odno iz nih Illyustraciya razdeleniya zadach mezhdu CPU i GPU She jder angl shader zatenyayushij kompyuternaya programma prednaznachennaya dlya ispolneniya processorami videokarty GPU Shejdery sostavlyayutsya na odnom iz specializirovannyh yazykov programmirovaniya sm nizhe i kompiliruyutsya v instrukcii dlya graficheskogo processora PrimenenieProgrammy rabotayushie s tryohmernoj grafikoj i video igry GIS CAD CAM i dr ispolzuyut shejdery dlya opredeleniya parametrov geometricheskih obektov ili izobrazheniya dlya izmeneniya izobrazheniya dlya sozdaniya effektov sdviga otrazheniya prelomleniya zatemneniya s uchyotom zadannyh parametrov poglosheniya i rasseyaniya sveta dlya nalozheniya tekstur na geometricheskie obekty i dr IstoriyaRanee razrabotchiki igr realizovyvali algoritm sozdaniya izobrazhenij iz geometricheskih obektov rendering vruchnuyu sostavlyali algoritm opredeleniya vidimyh chastej sceny sostavlyali algoritm nalozheniya tekstur sostavlyali algoritmy sozdayushie nestandartnye videoeffekty Dlya uskoreniya risovaniya nekotorye algoritmy renderinga byli realizovany na apparatnom urovne s pomoshyu videokarty Razrabotchiki igr mogli ispolzovat algoritmy realizuemye videokartoj no ne mogli zastavit videokartu ispolnyat svoi sobstvennye algoritmy naprimer dlya sozdaniya nestandartnyh effektov Nestandartnye algoritmy ispolnyalis na centralnom processore bolee medlennom dlya zadach obrabotki grafiki po sravneniyu s processorami videokarty Rassmotrim dva primera Voda v igre Quake 2 na programmnom i na OpenGL renderinge Pri vsyom kachestve apparatno uskorennoj kartinki voda tam prosto sinij svetofiltr v to vremya kak v programmnom est effekt pleska vody V igre Counter Strike 1 6 effekt oslepleniya ot svetoshumovoj granaty na apparatnom renderinge belaya vspyshka na programmnom belaya vspyshka i pikselizirovannyj ekran Dlya resheniya problemy v videokarty stali apparatno dobavlyat algoritmy vostrebovannye razrabotchikami Vskore stalo yasno chto tak realizovat vse algoritmy nevozmozhno i necelesoobrazno razrabotchikam dali dostup k videokarte eto pozvolilo sobirat bloki graficheskogo processora v proizvolnye konvejery realizuyushie raznye algoritmy Programmy prednaznachennye dlya vypolneniya na processorah videokarty poluchili nazvanie shejdery Byli razrabotany specialnye yazyki dlya sostavleniya shejderov Teper v videokarty zagruzhalis ne tolko dannye o geometricheskih obektah geometriya tekstury i drugie dannye neobhodimye dlya risovaniya formirovanii izobrazheniya no i instrukcii dlya GPU Do nachala primeneniya shejderov ispolzovalis procedurnaya generaciya tekstur naprimer primenyalas v igre Unreal dlya sozdaniya animirovannyh tekstur vody i ognya i multiteksturirovanie na nyom byl osnovan yazyk shejderov primenyavshijsya v igre Quake 3 Eti mehanizmy ne obespechivali takoj zhe gibkosti kak shejdery S poyavleniem perenastraivaemyh graficheskih konvejerov poyavilas vozmozhnost provodit na GPU matematicheskie raschyoty GPGPU Naibolee izvestnye mehanizmy GPGPU Nvidia CUDA Microsoft DirectCompute i otkrytye OpenCL Vulkan ot konsorciuma Khronos Group Tipy shejderovSnachala videokarty osnashali neskolkimi specializirovannymi processorami podderzhivayushimi raznye nabory instrukcij Shejdery delili na tri tipa v zavisimosti ot togo kakoj processor budet ih ispolnyat v zavisimosti ot togo kakie nabory instrukcij dostupny vershinnye angl vertex shader geometricheskie angl geometry shader pikselnye ili fragmentnye angl pixel shader fragment shader Zatem videokarty stali osnashat universalnymi processorami GPU podderzhivayushimi nabory instrukcij vseh tryoh tipov shejderov unificirovali shejdernuyu arhitekturu Delenie shejderov na tipy sohranilos dlya opisaniya naznacheniya shejdera Poyavilas vozmozhnost vypolneniya na GPU vychislenij obshego naznacheniya ne svyazannyh tolko s kompyuternoj grafikoj naprimer majning nejronnye seti Vershinnye shejdery Vershinnyj shejder operiruet dannymi svyazannymi s vershinami mnogogrannikov naprimer s koordinatami vershiny tochki v prostranstve s teksturnymi koordinatami s cvetom vershiny s vektorom kasatelnoj s vektorom binormali s vektorom normali Vershinnyj shejder mozhet ispolzovatsya dlya vidovogo i perspektivnogo preobrazovaniya vershin dlya generacii teksturnyh koordinat dlya raschyota osvesheniya i t d Primer koda dlya vershinnogo shejdera na yazyke DirectX ASM vs 2 0 dcl position v0 dcl texcoord v3 m4x4 oPos v0 c0 mov oT0 v3 Geometricheskie shejdery Geometricheskij shejder v otlichie ot vershinnogo sposoben obrabotat ne tolko odnu vershinu no i celyj primitiv Primitivom mozhet byt otrezok dve vershiny i treugolnik tri vershiny a pri nalichii informacii o smezhnyh vershinah angl adjacency dlya treugolnogo primitiva mozhet byt obrabotano do shesti vershin Geometricheskij shejder sposoben generirovat primitivy na letu ne zadejstvuya pri etom centralnyj processor Geometricheskie shejdery vpervye stali ispolzovatsya na videokartah Nvidia serii 8 Pikselnye fragmentnye shejdery Pikselnyj shejder rabotaet s fragmentami rastrovogo izobrazheniya i s teksturami obrabatyvaet dannye svyazannye s pikselyami naprimer cvet glubina teksturnye koordinaty Pikselnyj shejder ispolzuetsya na poslednej stadii graficheskogo konvejera dlya formirovaniya fragmenta izobrazheniya Primer koda dlya pikselnogo shejdera na yazyke DirectX ASM ps 1 4 texld r0 t0 mul r0 r0 v0Dostoinstva i nedostatkiDostoinstva vozmozhnost sostavleniya lyubyh algoritmov gibkost uproshenie i udeshevlenie cikla razrabotki programmy povyshenie slozhnosti i realistichnosti vizualiziruemyh scen povyshenie skorosti vypolneniya po sravneniyu so skorostyu vypolneniya togo zhe algoritma ispolnyaemogo na centralnom processore Nedostatki neobhodimost izucheniya novogo yazyka programmirovaniya sushestvovanie razlichnyh naborov instrukcij dlya GPU raznyh proizvoditelej Yazyki programmirovaniyaDlya udovletvoreniya razlichnyh potrebnostej rynka kompyuternaya grafika imeet mnozhestvo sfer primeneniya bylo sozdano bolshoe kolichestvo yazykov programmirovaniya shejderov Obychno yazyki dlya napisaniya shejderov predostavlyayut programmistu specialnye tipy dannyh matricy semplery vektory i dr nabor vstroennyh peremennyh i konstant dlya vzaimodejstviya so standartnoj funkcionalnostyu 3D API Professionalnyj rendering Dalee perechisleny yazyki programmirovaniya shejderov orientirovannye na dostizhenie maksimalnogo kachestva vizualizacii Na takih yazykah svojstva materialov opisyvayutsya s pomoshyu abstrakcij Eto pozvolyaet pisat kod lyudyam ne imeyushim osobyh navykov programmirovaniya i ne znayushim osobennostej apparatnyh realizacij Naprimer hudozhniki mogut pisat takie shejdery s celyu obespechit pravilnyj vid nalozhenie tekstur raspolozhenie istochnikov sveta i dr Obychno obrabotka takih shejderov dovolno resursoyomka sozdaniya fotorealistichnyh izobrazhenij trebuet bolshih vychislitelnyh moshnostej Obychno osnovnaya chast vychislenij vypolnyaetsya bolshimi kompyuternymi klasterami ili blejd sistemami RenderMan Yazyk programmirovaniya shejderov realizovannyj v PO RenderMan firmy Pixar stal pervym yazykom programmirovaniya shejderov API RenderMan razrabotano Robom Kukom i opisano v specifikacii interfejsa RenderMan yavlyaetsya fakticheskim standartom dlya professionalnogo renderinga ispolzuetsya vo vseh rabotah studii Pixar OSL OSL angl Open Shading Language yazyk programmirovaniya shejderov razrabotannyj firmoj angl i napominayushij yazyk C Ispolzuetsya v proprietarnoj programme Arnold razrabotannoj firmoj Sony Pictures Imageworks i prednaznachennoj dlya renderinga i v svobodnoj programme Blender prednaznachennoj dlya sozdaniya tryohmernoj kompyuternoj grafiki Rendering v realnom vremeniGLSL GLSL angl the OpenGL Shading Language yazyk programmirovaniya shejderov opisannyj v standarte OpenGL i osnovannyj na versii yazyka C opisannoj v standarte ANSI C Yazyk podderzhivaet bolshinstvo vozmozhnostej ANSI C podderzhivaet tipy dannyh chasto primenyaemye pri rabote s tryohmernoj grafikoj vektory matricy Slovom shejder v yazyke GLSL nazyvaetsya nezavisimo kompiliruemaya edinica napisannaya na etom yazyke Slovom programma nazyvaetsya nabor skompilirovannyh shejderov svyazannyh vmeste Cg Cg angl C for graphics yazyk programmirovaniya shejderov razrabotannyj firmoj nVidia sovmestno s firmoj Microsoft Yazyk pohozh na yazyk C i na yazyk HLSL razrabotannyj firmoj Microsoft i vhodyashij v sostav DirectX 9 V yazyke ispolzuyutsya tipy int float half chislo s plavayushej zapyatoj razmerom 16 bit Yazyk podderzhivaet funkcii i struktury Yazyk obladaet svoeobraznymi optimizaciyami v vide upakovannyh massivov angl packed arrays obyavleniya tipa float a 4 i float4 a sootvetstvuyut raznym tipam vtoroe obyavlenie sozdayot upakovannyj massiv operacii s upakovannym massivom vypolnyayutsya bystree chem s obychnym Nesmotrya na to chto yazyk razrabotan firmoj nVidia ishodnyj kod mozhet kompilirovatsya v instrukcii i dlya GPU videokart firmy ATI Sleduet uchest chto vse shejdernye programmy obladayut svoimi osobennostyami uznat o kotoryh mozhno iz specializirovannyh istochnikov Yazyki programmirovaniya shejderov dlya DirectXDirectX ASM DirectX ASM nizkourovnevyj yazyk programmirovaniya shejderov razrabotannyj dlya DirectX Sintaksis yazyka shozh s sintaksisom yazyka assemblera dlya processorov x86 Sushestvuet neskolko versij yazyka otlichayushihsya drug ot druga naborami podderzhivaemyh instrukcij GPU i trebovaniyami k oborudovaniyu Vershinnyj shejder mozhet sostoyat iz 100 200 instrukcij Kolichestvo instrukcij pikselnogo shejdera bolee ogranicheno naprimer v yazyke versii 1 4 pikselnyj shejder ne mozhet vklyuchat bolee 32 h instrukcij HLSL HLSL angl High Level Shader Language vysokourovnevyj yazyk programmirovaniya shejderov razrabotannyj dlya DirectX i pohozhij na yazyk C Predstavlyaet soboj nadstrojku nad yazykom DirectX ASM Pozvolyaet ispolzovat struktury procedury i funkcii PrimechaniyaIshodnyj kod kompilyatora oslc biblioteki liboslexec i dr komponentov ot 5 avgusta 2015 na Wayback Machine angl github com Kompilyator oslc preobrazuet kod OSL v promezhutochnyj kod napominayushij yazyk assemblera Biblioteka liboslexec ispolzuya LLVM preobrazuet promezhutochnyj kod v mashinnyj kod dlya processorov x86 Spisok otkrytyh proektov firmy Sony Pictures Imageworks ot 8 fevralya 2014 na Wayback Machine angl Sajt firmy Sony Pictures Imageworks Open Shading Language ot 17 iyunya 2015 na Wayback Machine angl Rukovodstvo polzovatelya Blender Opisanie yazyka GLSL ot 28 oktyabrya 2015 na Wayback Machine na sajte opengl org LiteraturaBoreskov A V Rasshireniya OpenGL BHV Peterburg 2005 ISBN 5 94157 614 5 Aleksej Boreskov Razrabotka i otladka shejderov BHV Peterburg 2006 ISBN 5 94157 712 5 Orange Book OpenGL Shading Language by Randi J Rost Bill M Licea Kane Dan Ginsburg and John M Kessenich ISBN 978 0 321 63763 5SsylkiProgrammirovanie shejderov na HLSL Grafika Stati Programmirovanie igr GameDev ru Razrabotka igr Shejdernaya revolyuciya Nvidia desyat let spustya http steps3d narod ru neopr Data obrasheniya 4 marta 2008 Arhivirovano iz originala 13 maya 2008 goda neopr Data obrasheniya 12 noyabrya 2009 Arhivirovano iz originala 21 noyabrya 2008 goda neopr Data obrasheniya 12 noyabrya 2009 Arhivirovano iz originala 13 oktyabrya 2011 goda neopr Data obrasheniya 12 noyabrya 2009 Arhivirovano iz originala 22 noyabrya 2009 goda OpenGL Shading Language Specification v4 30 8 neopr Data obrasheniya 7 fevralya 2013 FX ComposerDlya uluchsheniya etoj stati zhelatelno Oformit spisok literatury Posle ispravleniya problemy isklyuchite eyo iz spiska Udalite shablon esli ustraneny vse nedostatki
Вершина