Size: a a a

2020 July 28

CC

Cool Cooler in C++ Together 2.0
Да я чёт туплю
источник

CC

Cool Cooler in C++ Together 2.0
Ща норм перезалью
источник

CC

Cool Cooler in C++ Together 2.0
Надеюсь
источник

CC

Cool Cooler in C++ Together 2.0
animation1.cpp: https://termbin.com/tsnk
источник

CC

Cool Cooler in C++ Together 2.0
Попытка номер следующая, хех
источник

CC

Cool Cooler in C++ Together 2.0
О, получилось
источник

CC

Cool Cooler in C++ Together 2.0
источник

CC

Cool Cooler in C++ Together 2.0
источник

CC

Cool Cooler in C++ Together 2.0
Вот здесь скорее всего то, что тебе интересно
источник

K

Kana in C++ Together 2.0
Какая-то странная у тебя загрузка файла
источник

CC

Cool Cooler in C++ Together 2.0
Kana
Какая-то странная у тебя загрузка файла
Так я ж неосилятор
источник

CC

Cool Cooler in C++ Together 2.0
Ещё учу C++
источник

CC

Cool Cooler in C++ Together 2.0
Kana
Какая-то странная у тебя загрузка файла
А ты как файлы загружаешь?
источник

CC

Cool Cooler in C++ Together 2.0
Cool Cooler
Разрешил менять альфа канал даже в отрицательную сторону, ну и мой калькулятор цвета в фрагментном шейдере даёт такой эффект
Можно даже больше 1 выставлять
источник

CC

Cool Cooler in C++ Together 2.0
Тогда уже задний фон начинает просвечиваться
источник

CC

Cool Cooler in C++ Together 2.0
Кажется, негативом
источник

CC

Cool Cooler in C++ Together 2.0
А, ну логично
источник

CC

Cool Cooler in C++ Together 2.0
Типа передняя картинка настолько непрозрачная, что она даже заднюю дополнительно отрицает
источник
2020 July 29

🦊

🦊fox.cpp in C++ Together 2.0
Интересно, как это реализовано
источник

CC

Cool Cooler in C++ Together 2.0
🦊fox.cpp
Интересно, как это реализовано
#version 330 core
out vec4 FragColor;

in vec3 ourColor;
in vec2 TexCoord;

uniform sampler2D ourTexture;
uniform sampler2D ourSecondTexture;
uniform float visibility1;

vec4 temp1, temp2, temp3;
float temp_red, temp_green, temp_blue, temp_alpha;

vec2 reverse(vec2 someCoord)
{
   return vec2(1 - someCoord.x, someCoord.y);
}

vec4 calc(vec4 underColor, vec4 aboveColor)
{
   // let's consider vec4 beforeColor and vec4 afterColor and resultColor
   // x = beforeColor.r
   // y = underColor.r
   // z = aboveColor.r
   // a = underColor.a
   // b = aboveColor.a
   // h = afterColor.r
   // magic = resultColor.r
   // h = (x * (1-a) + y * a) * (1-b) + z * b
   // h = x * (1-a) * (1-b) + y * a * (1-b) + z * b
   // h = x * (1-a-b+ab) + magic * (a+b-ab)
   temp_alpha = underColor.a + aboveColor.a - underColor.a * aboveColor.a;
   // y * a * (1-b) + z * b = magic * (a+b-ab)
   // magic = (y * a * (1-b) + z * b) / (a+b-ab)
   temp_red = (underColor.r * underColor.a * (1 - aboveColor.a) + aboveColor.r * aboveColor.a) / temp_alpha;
   temp_green = (underColor.g * underColor.a * (1 - aboveColor.a) + aboveColor.g * aboveColor.a) / temp_alpha;
   temp_blue = (underColor.b * underColor.a * (1 - aboveColor.a) + aboveColor.b * aboveColor.a) / temp_alpha;
   return vec4(temp_red, temp_green, temp_blue, temp_alpha);
}

vec4 changeVisibility(vec4 initialColor, float visibility)
{
   return vec4(initialColor.rgb, initialColor.a * visibility);
}

void main()
{
   temp1 = texture(ourTexture, TexCoord);
   temp2 = texture(ourSecondTexture, reverse(TexCoord));
   temp3 = calc(temp1, changeVisibility(temp2, visibility1));
   FragColor = temp3;
}
источник