# 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);
}
```