Shaders

:(

Varför ska jag alltid göra allt jobb? Det är din tur att skriva kod nu.

Tar en liten paus i drönarna medan jag fixar NEAT😎

Dags att utnyttja 📈ℹ️k💳et


Koden skrivs i GLSL, ett språk för beräkningar på grafikkortet med inbyggd linjär algebra. Syntaxen är baserad på C och viktigt att veta är att man alltid måste använda doubles. (ex: x/2.0 och y*4.0)

Här är inputs (uniforms) du kan använda:

Uniform Värde
vec2 vPos Normaliserade 2D koordinater för pixeln
float fTime Tid sedan start (funkar bra med sin & cos för periodiska animationer)
vec2 vResolution Upplösningen på canvasen (w, h) = (480, 480)
vec3 vMouse 2D koordinater för musen (x, y) och click (z = 0.0, 1.0), normaliseras lätt med vResolution:

Alla uniforms skickas via vertex-shadern och har därför 'varying' istället för 'uniform'. Det gå att använda highp/mediump men behövs inte. Om du fattar så fattar du, kolla exemplen annars och lista ut det.

koordinatsystem

Röd: screenspace (vResolution & vMouse)
Blå: clipspace (vPos)

Säg till om jag ska fixa fler uniforms.

Gör nåt coolt! (Om du kan...)

Ex (copy-paste):

Basics vMouse och vResolution (tryck någonstans på bilden) Mandelbrot