Shadertoy

Shadertoy.com
Originalförfattare Inigo Quilez & Pol Jeremias
Initial release 14 februari 2013 ( 2013-02-14 )
Stabil frisättning
Release 0.8.3 / 3 mars 2016
Skrivet i GLSL , JavaScript , PHP
Typ 3D datorgrafik verktygsgemenskap
Hemsida www .shadertoy .com

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

En procedurbild gjord i Shadertoy med avståndsfält, modellerad, skuggad, upplyst och renderad i realtid

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:

Image created by the code above

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.

externa länkar