Procedural Palette using Affinity Photo's Procedural Texture Filter

Procedural Palette using Affinity Photo's Procedural Texture Filter

191 Lượt nghe
Procedural Palette using Affinity Photo's Procedural Texture Filter
In this video, I show how to use procedurally generated palettes using Affinity Photo's procedural texture filter. Procedural Palette Filter: var v=vec2(rx*cos(th)-ry*sin(th),rx*sin(th)+ry*cos(th))*a/w; var ac=vec3(a1,a2,a3); var bc=vec3(b1,b2,b3); var cc=vec3(c1,c2,c3); var dc=vec3(d1,d2,d3); ac+bc*cos(360*(cc*oscsc(v.x,b*v.y)+dc)) Procedural Palette with Waveform Window: var v=vec2(rx,ry)*a/h; var ac=vec3(a1,a2,a3); var bc=vec3(b1,b2,b3); var cc=vec3(c1,c2,c3); var dc=vec3(d1,d2,d3); var t1=ac+bc*cos(360*(cc*a*rx/h+dc)); var tr=1-step(.1,osccri(v.y+(b1*oschsc(v.x*c1*2+d1*2)+a1)/3)); var tg=1-step(.1,osccri(v.y+(b2*oschsc(v.x*c2*2+d2*2)+a2)/3)); var tb=1-step(.1,osccri(v.y+(b3*oschsc(v.x*c3*2+d3*2)+a3)/3)); t1*osci(y*2/h)+tr*(1-osci(y*2/h))*vec3(1,0,0)+tg*(1-osci(y*2/h))*vec3(0,1,0)+tb*(1-osci(y*2/h))*vec3(0,0,1) Procedural Palette Gradient with Turbulence: var v=vec2(rx*cos(th)-ry*sin(th),rx*sin(th)+ry*cos(th))*a/w; var ac=vec3(a1,a2,a3); var bc=vec3(b1,b2,b3); var cc=vec3(c1,c2,c3); var dc=vec3(d1,d2,d3); ac+bc*cos(360*(cc*oscsc(vec2(v.x,b*v.y)+t*dirsc(v*c))+dc)) t is 0,1 slider for Turbulence amount c is Real input for Turbulence frequency .5-5 should be good https://iquilezles.org/articles/palettes/ https://www.youtube.com/@InigoQuilez Procedural Textures Playlist: https://www.youtube.com/playlist?list=PLPTJk1HIMN35WOCDXnoUB-l2_YVgJ8rHK The Procedural Texture filter and related information can be found on Affinity Photo's website: https://affinity.help/photo/en-US.lproj/pages/Filters/filter_proceduraltexture.html 0:00 Introduction 1:53 Demonstration of the Procedural Palette 4:45 Generating a Gradient with the Procedural Palette 5:17 Setting up a new document and procedural texture filter 5:59 Adding the rotatable coordinate system 7:29 Creating the four control vectors and the procedural palette function 12:37 Adding an oscillator pattern 15:23 Examples and conclusions