webgl_ru | Unsorted

Telegram-канал webgl_ru - WebGL ru

-

Полезные ресурсы: https://telegra.ph/Poleznye-resursy-10-27 Правила: https://berlincodeofconduct.org/ru/ Новичкам: @gd_noobs Вакансии с указанием организации(!), вилки и хэштегом #удаленка / #офис

Subscribe to a channel

WebGL ru

Так как PMA строго заставляет все умножать на A

Читать полностью…

WebGL ru

короче, я всё починил. как и всегда с WebGL - я нихуя не понял, просто как макака перебрал варианты, и один из них сработал.


this.gl.blendFuncSeparate(
this.gl.SRC_ALPHA,
this.gl.ONE_MINUS_SRC_ALPHA,
this.gl.ONE,
this.gl.ONE_MINUS_SRC_ALPHA,
);

Читать полностью…

WebGL ru

то есть каким-то образом альфа с текстуры просачивается в альфу фреймбуффера. но почему-то не вся, а именно > 0 && < 1

Читать полностью…

WebGL ru

а вы точно пишете про ситуацию рендеринга во фреймбуффер?

Читать полностью…

WebGL ru

Было такое, нужна настройка webgl контекста - premultiplied alpha = true, (возможно еще alpha = true), текстура должна грузиться из png, в шейдере нужна строчка colorV3 /= textureColorV4.a; в настройках блендинга gl.blendFunc(this.gl.SRC_ALPHA, this.gl.ONE_MINUS_SRC_ALPHA); Это все для webgl 1.0 формата канваса. Сам шейдер для примера (не ржать, я новичок)

#include chunks/precision.glsl;

uniform sampler2D u_textureS2D;

...
varying vec2 v_uvV2;
...

void main() {
...

vec4 textureColorV4 = texture2D(u_textureS2D, v_uvV2);
float alpha = textureColorV4.a * u_alpha;// alpha
if (alpha <= 0.01) {
discard;
}
vec3 colorV3;
... тут эффекты всякие
colorV3 = textureColorV4.rgb;
... тут эффекты всякие
colorV3 /= textureColorV4.a;// fix premultiplied alpha
gl_FragColor = vec4(colorV3, alpha);
}

Читать полностью…

WebGL ru

как будто alpha ресетится а не складывается

Читать полностью…

WebGL ru

а если на бежевый - то бежевые

Читать полностью…

WebGL ru

о, зато кое что другое влияет, как интересно

Читать полностью…

WebGL ru

а если сменить бэкграундцвет, артефакт поменяется?

Читать полностью…

WebGL ru

а во фреймбуфер только эту тему рендеришь или всю картинку ?

Читать полностью…

WebGL ru

ага( и с премультипликацией, и без, и как угодно

Читать полностью…

WebGL ru

если что, экстеншены тоже включены:


this.gl.getExtension('EXT_color_buffer_float');
this.gl.getExtension('EXT_float_blend');
this.gl.getExtension('OES_texture_float_linear');

Читать полностью…

WebGL ru

на всякий случай, ещё раз - когда рендерю на канвас - проблем 0, проблема точно не в картинке самой

Читать полностью…

WebGL ru

не, это просто скрин

Читать полностью…

WebGL ru

растушеваный край видимо серым растушеван?

Читать полностью…

WebGL ru

Ты не можешь сделать канвас красным непрозрачным

Читать полностью…

WebGL ru

вообще у меня кода кот наплакал, сейчас уже спать хочу, но завтра могу прям собрать минимальный пример строк на 20, который эту ошибку воспроизводит

Читать полностью…

WebGL ru

упростил пример до предела

1. делаю clear канвасу красным непрозрачным цветом
2. делаю clear фреймбуфферу черным непрозрачным цветом
3. рисую png картинку во фреймбуффер элементарнейшим шейдером вида gl_FragColor = texture(image, v_texCoord)
4. рисую фреймбуффер на канвас тем же самым шейдером

результат:

Читать полностью…

WebGL ru

с прозрачностью заморочек много
https://webglfundamentals.org/webgl/lessons/ru/webgl-and-alpha.html

Читать полностью…

WebGL ru

ага, вот такое же ощущение

Читать полностью…

WebGL ru

то есть оно как будто проедает фреймбуффер насквозь

Читать полностью…

WebGL ru

если я рендерю этот фреймбуффер на черный канвас - то артефакты черные

Читать полностью…

WebGL ru

чей именно бекграунд?

Читать полностью…

WebGL ru

там 3 части - подложка, картинка, и вот этот вот растушеванный край. он используется для плавного перехода между подложкой и картинкой - то есть рендерится последним из трех

Читать полностью…

WebGL ru

внешний вид артефактов меняется, но сами артефакты остаются

Читать полностью…

WebGL ru

и бленд функции пробовал разные?

Читать полностью…

WebGL ru

что-то идёт не так именно в композиции при рендеринге во фреймбуффер

Читать полностью…

WebGL ru

фак, сорри, телега странно обрабатывает webp

Читать полностью…

WebGL ru

есть картинка на серо белой сетке шахматной?

Читать полностью…

WebGL ru

color attachment у фреймбуффера вот такой: this.gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA32F, width, height, 0, gl.RGBA, gl.FLOAT, null);

Читать полностью…
Subscribe to a channel