ПрограммированиеФорумГрафика

OpenGL Вопросы (82 стр)

Страницы: 181 82 83 84 85 Следующая »
#1215
19:51, 18 окт 2023

iw4nna.rock
> error C7011: implicit cast from "float" to "vec4

Ну дык у тебя color это vec4, а не float

#1216
20:00, 18 окт 2023

0xc0de
> color = dot(texture(T, uv), vec4(1,0,0,0));
и что тут будет в color'е?

#1217
20:10, 18 окт 2023

iw4nna.rock
> что тут будет в color'е?

Тебе формулу скалярного произведения написать? Тут в color будет значение, взятое из красного канала.

#1218
20:13, 18 окт 2023

0xc0de
> Тебе формулу скалярного произведения написать? Тут в color будет значение,
> взятое из красного канала
не надо. Всё равно передавать в шейдер vec4 вместо int так себе идея.

#1219
(Правка: 20:50) 20:30, 18 окт 2023

iw4nna.rock
> Всё равно передавать в шейдер vec4 вместо int так себе идея.

Достаточно 4-х битов. Но разницы все равно не заметишь.

uniform int X;

vec4 mask = vec4(X&1, (X>>1)&1, (X>>2)&1, (X>>3)&1);

ПС: дополнительным бонусом можно получить grayscale изображение, если в mask передать коэффициенты: (0.299, 0.587, 0.114, 0)

#1220
20:53, 18 окт 2023

iw4nna.rock
> Всё равно передавать в шейдер vec4 вместо int так себе идея.
Забавно, что на самом деле идея довольно популярна. В продакшн движках часто в шейдеры передают юниформы с гранулярностью в vec4. Меньше гемора с std140 выравниванием.

#1221
(Правка: 23:41) 23:32, 19 окт 2023

У меня сделано отложенное освещение и затенение (deferred shading) и при этом MSAA не сглаживает.
Можно ли как-то заставить OpenGL снова сглаживать, а если нет, то чем заменить MSAA?

Изображение удалено

#1222
5:29, 20 окт 2023

Очевидно, что msaa работать не будет, ибо в финальном пасе ты ренедришь что? Правильно, full screeen quad. Он сглаживается, а геометрия основной сцены нет.
Для решения проблемы смотри в сторону алгоритмов анти алиасинга, которые работают в качестве пост эффекта. Такие как FXAA, и др.

#1223
13:19, 20 окт 2023

AMM1AK
> как FXAA
я пока смотрю передачу sampler2DMS в шейдер и извлечение из него подпикселей пикселя с помощью texelFetch при включенном MSAA 4:

vec4 ca = texelFetch(TEXMATE[0], ivec2(1600*uv.x, 900*uv.y), 0);
vec4 cb = texelFetch(TEXMATE[0], ivec2(1600*uv.x, 900*uv.y), 1);
vec4 cc = texelFetch(TEXMATE[0], ivec2(1600*uv.x, 900*uv.y), 2);
vec4 cd = texelFetch(TEXMATE[0], ivec2(1600*uv.x, 900*uv.y), 3);

vec4 c = (ca + cb + cc + cd) / 4;

результат такого смешивания пока никакой.

#1224
(Правка: 15:33) 14:46, 20 окт 2023

Ой, надо было для каждого подпикселя пикселя сделать расчёт света и тени.
Теперь сглаживание заработало. Но к сожалению не везде гладко - на некоторых рёбрах появились чёрные точки.

Изображение удалено

от чего это может быть...?

update 0: это как-то связано с прозрачностью

update 1: интересно, что если сделать так:

glClearColor(1, 1, 1, 0);

то черные точки (дыры) пропадают или становятся практически невидимыми.

update 2: артефакт с дырами совсем пропал после добавления "скайбокса".
Супер, работающее сглаживание MSAA 4 высокого качества и не пришлось изобретать FXAA.

#1225
16:39, 25 янв 2024

Можно ли в шейдерах используя условную компиляцию, менять версию GLSL?

#1226
17:17, 25 янв 2024

iw4nna.rock
Хорошо писать разрешение в коде конс антами?

#1227
23:09, 25 янв 2024

innuendo
> Хорошо писать разрешение в коде конс антами?
В общем не критично. В современных играх не так уж много разрешений и под каждое из них можно сделать свой шейдер.

#1228
1:41, 26 янв 2024

iw4nna.rock
Как там на мобилках маках?

#1229
3:45, 26 янв 2024

innuendo
> Как там на мобилках маках?
Мобилки и маки нужны только чтобы звонить и делать плохие фотографии. Они совершенно не пригодны для видеоигр. Вам будут говорить обратное. Но вы спросите их, играли ли они хотя бы раз в видеоигру на настоящем компьютере с клавиатурой, мышью, стереофонической аудиосистемой.

Страницы: 181 82 83 84 85 Следующая »
ПрограммированиеФорумГрафика