# 30/06/21 Практика Евчук Даяна ## За сегодня: 1. Присутствовала на паре с 8.00 2. [Чебурашка](https://www.shadertoy.com/view/fllSzn#) ``` float circle(vec2 a, vec2 point, float r, float blur) { float b=length(a-point); float c=smoothstep(r,r-blur,b); return c; } void mainImage( out vec4 fragColor, in vec2 fragCoord ) { vec2 a = fragCoord.xy/iResolution.xy; a-=.5; a.x*=iResolution.x / iResolution.y; vec3 color=vec3(9.); float c=circle(a, vec2(.0, .2), .3, .01); // head c-=circle(a, vec2(.0, .1), .037, .01); // head c-=circle(a, vec2(.0, .0), .08, .02);// smile c+=circle(a, vec2(.0, .035), .08, .02);// smile c+=circle(a, vec2(-.4, .2), .2, .01); // left eir c+=circle(a, vec2(.4, .2), .2, .01); // right eir c+=circle(a, vec2(.2, -.48), .1, .01); // right leg c+=circle(a, vec2(-.2, -.48), .1, .01); // left leg c+=circle(a, vec2(.0, -.3), .2, .02); // body c-=circle(a, vec2(-.08, .2), .07, .01); // eye l c-=circle(a, vec2(.08, .2), .07, .01);// eye r c+=circle(a, vec2(-.08, .2), .053, .01); // eye l c+=circle(a, vec2(.08, .2), .053, .01);// eye r c-=circle(a, vec2(-.08, .2), .03, .01); // eye l c-=circle(a, vec2(.08, .2), .03, .01);// eye r c-=circle(a, vec2(-.4, .2), .1, .04); // eir c-=circle(a, vec2(.4, .2), .1, .04);// eir c-=circle(a, vec2(.0, -.2), .1, .01);// body c+=circle(a, vec2(-.3, -.3), .1, .01); // left lapka c+=circle(a, vec2(.3, -.3), .1, .01); // right lapka color=vec3(0., 7., 2.)* c; fragColor = vec4(color, 3); } ``` 3. [ФИО](https://www.shadertoy.com/view/NllXzr) *Для лучшего развития и понимания, я пересмотрела предложенные работы от сайта Shadertoy, где нашла пример этого кода, постаралась его разобрать и переделать.* ``` const int font[] = int[]( 0x69f99, 0x79797, 0xe111e, 0x79997, 0xf171f, 0xf1711, 0xe1d96, 0x99f99, 0xf444f, 0x88996, 0x95159, 0x1111f, 0x9f999, 0x9bd99, 0x69996, 0x79971, 0x69b5a, 0x79759, 0xe1687, 0xf4444, 0x99996, 0x999a4, 0x999f9, 0x99699, 0x99e8e, 0xf843f, 0x6bd96, 0x46444, 0x6942f, 0x69496, 0x99f88, 0xf1687, 0x61796, 0xf8421, 0x69696, 0x69e84, 0x66400, 0x0faa9, 0x0000f, 0x00600, 0x0a500, 0x02720, 0x0f0f0, 0x08421, 0x33303, 0x69404, 0x00032, 0x00002, 0x55000, 0x00000, 0x00202, 0x42224, 0x24442); const ivec2 MAP_SIZE = ivec2(4,5); int drawChar( in int char, in vec2 pos, in vec2 size, in vec2 uv ) { uv = vec2(MAP_SIZE)*(uv-pos)/size; ivec2 iuv = ivec2(round(uv)); if( iuv.x<0 || iuv.x>MAP_SIZE.x-1 || iuv.y<0 || iuv.y>MAP_SIZE.y-1 ) return 0; int index = MAP_SIZE.x*iuv.y + iuv.x; return (font[char]>>index)&1; } vec2 charSize; float spaceSize; vec2 charPos; int chr; #define DC(a) chr += drawChar( a, charPos, charSize, uv); charPos.x += spaceSize; #define _A DC(0) #define _B DC(1) #define _C DC(2) #define _D DC(3) #define _E DC(4) #define _F DC(5) #define _G DC(6) #define _H DC(7) #define _I DC(8) #define _J DC(9) #define _K DC(10) #define _L DC(11) #define _M DC(12) #define _N DC(13) #define _O DC(14) #define _P DC(15) #define _Q DC(16) #define _R DC(17) #define _S DC(18) #define _T DC(19) #define _U DC(20) #define _V DC(21) #define _W DC(22) #define _X DC(23) #define _Y DC(24) #define _Z DC(25) #define _BLNK DC(49) void Start( void ) { chr = 0; } float End( void ) { return float(chr); } void SetSize( float size ) { charSize = size*vec2(MAP_SIZE) / float(MAP_SIZE.x); spaceSize = charSize.x*1.25; } void SetPos( in vec2 pos ) { charPos = pos; } void mainImage( out vec4 fragColor, in vec2 fragCoord ) { vec2 uv = fragCoord / iResolution.y; Start(); SetSize( 0.05 ); SetPos( vec2(0.45, 0.55) ); _E _V _C _H _U _K _BLNK _D _A _Y _A _N _A SetSize( 0.05 ); SetPos( vec2(0.50, 0.45) ); _A _N _A _T _O _L _I _E _V _N _A float txt = End(); fragColor = vec4(7,0,txt,4.9); } ``` 4. [Копатыч с пчёлками](https://www.shadertoy.com/view/stlXRr) ``` float circle(vec2 a, vec2 point, float r, float blur) { float b=length(a-point); float c=smoothstep(r,r-blur,b); return c; } void mainImage( out vec4 fragColor, in vec2 fragCoord ) { vec2 a = fragCoord.xy/iResolution.xy; a-=.5; a.x*=iResolution.x / iResolution.y; vec3 color=vec3(9.); float c=circle(a, vec2(.0, .0), .3, .02); // body c-=circle(a, vec2(.0, .0), .044, .01); // nose c+=circle(a, vec2(-.0, .02), .044, .01); // рот c+=circle(a, vec2(-.2, .2), .057, .01); // ухо c+=circle(a, vec2(.2, .2), .057, .01); // ухо c+=circle(a, vec2(.2, -.30), .1, .01); // right leg c+=circle(a, vec2(-.2, -.30), .1, .01); // left leg c-=circle(a, vec2(.0, .1), .044, .01); // nose c-=circle(a, vec2(-.08, .2), .07, .01); // eye l c-=circle(a, vec2(.08, .2), .07, .01);// eye r c+=circle(a, vec2(-.08, .2), .053, .01); // eye l c+=circle(a, vec2(.08, .2), .053, .01);// eye r c-=circle(a, vec2(-.08, .2), .03, .01); // eye l c-=circle(a, vec2(.08, .2), .03, .01);// eye r c+=circle(a, vec2(-.3, .0), .1, .01); // left lapka c+=circle(a, vec2(.3, .0), .1, .01); // right lapka c-=circle(a, vec2(-.62, .2), .09, .01); // пчела c+=circle(a, vec2(-.62, .2), .09, .01); // пчела c+=circle(a, vec2(-.62, .2), .050, .01); // пчела c-=circle(a, vec2(-.58, .2), .050, .01); // пчела c-=circle(a, vec2(-.52, .2), .09, .01); // пчела c+=circle(a, vec2(-.52, .2), .09, .01); // пчела c+=circle(a, vec2(-.52, .2), .050, .01); // пчела c-=circle(a, vec2(-.48, .2), .050, .01); // пчела c+=circle(a, vec2(-.43, .2), .025, .01); // пчела c+=circle(a, vec2(-.50, .3), .03, .01); // пчела c+=circle(a, vec2(-.54, .3), .03, .01); // пчела c-=circle(a, vec2(.62, -.2), .09, .01); // пчела c+=circle(a, vec2(.62, -.2), .09, .01); // пчела c+=circle(a, vec2(.62, -.2), .050, .01); // пчела c-=circle(a, vec2(.58, -.2), .050, .01); // пчела c-=circle(a, vec2(.52,-.2), .09, .01); // пчела c+=circle(a, vec2(.52, -.2), .09, .01); // пчела c+=circle(a, vec2(.52, -.2), .050, .01); // пчела c-=circle(a, vec2(.48, -.2), .050, .01); // пчела c+=circle(a, vec2(.43, -.2), .025, .01); // пчела c+=circle(a, vec2(.50, -.1), .03, .01); // пчела c+=circle(a, vec2(.54, -.1), .03, .01); // пчела color=vec3(4., 9., 2.)* c; fragColor = vec4(color, 3); } ```