Shadertoy
Originalförfattare | Inigo Quilez & Pol Jeremias |
---|---|
Initial release | 14 februari 2013 |
Stabil frisättning | Release 0.8.3 / 3 mars 2016 |
Skrivet i | GLSL , JavaScript , PHP |
Typ | 3D datorgrafik verktygsgemenskap |
Hemsida |
Shadertoy.com är ett online-community och ett verktyg för att skapa och dela shaders genom WebGL , som används för både att lära sig och lära ut 3D-datorgrafik i en webbläsare .
Översikt
Shadertoy.com är en onlinegemenskap och plattform för professionella datorgrafiker , akademiker och entusiaster som delar, lär sig och experimenterar med renderingstekniker och procedurkonst genom GLSL -kod. Det finns mer än 52 tusen offentliga bidrag i mitten av 2021 från tusentals användare. WebGL tillåter Shadertoy att komma åt beräkningskraften hos GPU:n för att generera procedurkonst , animation, modeller, belysning, tillståndsbaserad logik och ljud.
Historia
Shadertoy.com skapades av Pol Jeremias och Inigo Quilez i januari 2013 och kom online i februari samma år.
Ansträngningens rötter finns i Inigos avsnitt "Shadertoy" på hans utbildningswebbplats för datorgrafik. Med ankomsten av den initiala WebGL -implementeringen av Mozillas Firefox 2009, skapade Quilez den första online live-kodningsmiljön och ett kurerat arkiv med procedur shaders. Detta innehåll donerades av 18 författare från Demoscenen och visade upp avancerade realtids- och interaktiva animationer som aldrig setts på webben förut, såsom strålmarscherade metabollar, fraktaler och tunneleffekter.
Efter att ha arbetat tillsammans i flera realtidsrenderingsprojekt tillsammans i flera år, bestämde sig Quilez och Pol i december 2012 för att skapa en ny Shadertoy-sajt som skulle följa traditionen från den ursprungliga Shadertoy-sidan med dess demoscenesmaksatta resurs och storleksbegränsade realtidsgrafik innehåll, men skulle lägga till sociala funktioner och gemenskapsfunktioner och anamma en öppen källkod.
Sidan kom ut med liveredigeraren, realtidsuppspelning, surf- och sökfunktioner, taggnings- och kommentarsfunktioner. Innehållsmässigt tillhandahöll Shadertoy en fast och begränsad uppsättning texturer för sina användare att använda på kreativa sätt. Under åren har Shadertoy lagt till extra funktioner, såsom webbkamera- och mikrofoningångsstöd, video, musik, Virtual Reality-rendering och multi-pass-rendering.
Det finns över 31 tusen bidrag totalt från tusentals användare, varav flera refereras i akademiska uppsatser. Shadertoy är också värd för årliga tävlingar och evenemang för samhället att njuta av, såsom Siggraph 2015 Shadertoy Competition
Funktioner
- Redigering: syntaxmarkerad editor med omedelbar visuell feedback
- Socialt: kommentera shadertoys, rösta (gilla)
- Delning: permanenta webbadresser, inbäddade i andra webbplatser, privat shader-delning
- Rendering: flyttalsbuffertbaserad multipass och historik
- Medieingångar: mikrofon, webbkamera, tangentbord, mus, VR HMDs, soundcloud, video, texturer
Användande
Ett exempel på en proceduranimation skapad i Shadertoy kan vara följande fyrkantiga tunnel:
void mainImage ( ut vec4 fragColor , in vec2 fragCoord ) { // input: pixelkoordinater vec2 p = ( - iResolution . xy + 2.0 * fragCoord ) / iResolution . y ; // vinkel för varje pixel mot mitten av skärmen float a = atan ( p . y , p . x ); // modifierad distans metrisk float r = pow ( pow ( p . x * p . x , 4.0 ) + pow ( p . y * p . y , 4.0 ), 1.0 / 8.0 ); // indexera textur med ( animerad invers) radie och vinkel vec2 uv = vec2 ( 1.0 / r + 0.2 * iTime , a ); // mönster: cosinus flyta f = cos ( 12,0 * uv . x ) * cos ( 6,0 * uv . y ); // färghämtning: palett vec3 col = 0,5 + 0,5 * sin ( 3,1416 * f + vec3 ( 0,0 , 0,5 , 1,0 ) ); // belysning: mörkare i mitten col = col * r ; // output: pixel färg fragColor = vec4 ( col , 1.0 ); }
Koden ovan genererar följande bild:
Omnämnanden
Shadertoy.com refereras i flera källor:
- NVidia utvecklarblogg , juni 2016, Shadertoy Contest 2016 tillkännages.
- Siggraph Real-Time Live! , 2015, ett interaktivt ljudvisualiseringsprojekt.
- Hacker News , 2014, Shadertoy lägger till processuell GPU-genererad musik i webbläsaren.
- Numeriska metoder för strålspårning implicit definierade ytor ,
- CS 371-kurs vid Williams College, 2014, Inspiration för CS 371
- Realtidsrendering , augusti 2015, sju saker för 20 augusti 2015.