# Учебная практика. Вторник 29.06.2021. Федяева Евгения Игоревна 1. Присутствовала на занятии в 8.00. 2. Ответила на вопросы начального опроса в комментариях. 3. Прочитала лекционный материал и начала читать книгу "The Book of Shaders". 4. Создала [Одиночную страницу](https://replit.com/@eFediaieva/Evgeniia-Fediaieva#index.html) на replit.com, с указанными именем, фамилией, отчеством, фотографией в профиль, а также ссылками на сайт shadertoy.com с реализованными визуализациями. 5. Шейдеры: * [Чебурашка](https://www.shadertoy.com/view/fl2GDt) ``` float Circle(vec2 xy, float r, vec2 pos) { float d = length(xy-pos); float cl = smoothstep(r, r-0.008, d); return cl; } void mainImage( out vec4 fragColor, in vec2 fragCoord ) { vec2 xy = fragCoord.xy/iResolution.xy; xy -= 0.5; xy.x *= iResolution.x/iResolution.y; float chbr = Circle(xy, 0.2, vec2(0.0, -0.1)); //body chbr += Circle(xy, 0.15, vec2(0.0, 0.2)); //head chbr += Circle(xy, 0.125, vec2(0.2, 0.3)); //ear chbr += Circle(xy, 0.125, vec2(-0.2, 0.3)); //ear chbr += Circle(xy, 0.08, vec2(0.23, -0.02)); //hand chbr += Circle(xy, 0.08, vec2(-0.23, -0.02)); //hand chbr += Circle(xy, 0.08, vec2(0.15, -0.3)); //leg chbr += Circle(xy, 0.08, vec2(-0.15, -0.3)); //leg chbr -= Circle(xy, 0.03, vec2(0.05, 0.23)); //eye chbr -= Circle(xy, 0.03, vec2(-0.05, 0.23)); //eye float smile = Circle(xy, 0.05, vec2(0.0, 0.16)); smile -= Circle(xy, 0.05, vec2(0.0, 0.17)); chbr -= smile; vec3 pic = vec3(1.0, 1.0, 0.0)*chbr; fragColor = vec4(pic, 1.0); } ``` В основе рисунка лежит круг, поэтому отдельно реализована функция, описывающая его. В переменной `d` находится расстояние до условной точки (0, 0). Все точки, от которых расстояние до (0, 0) не превышает радиуса `r`, будут входить в круг. `pos` задает смещение круга. Сам круг задается функцией `smoothstep` с небольшим сглаживанием края. Силуэт чебурашки представляет собой сложение(вычитание) различных кругов. 6. Зарегистрировалась на сайте overleaf.com и ознакомилась с примером оформления отчета о практике.