Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Смещение текстуры на 1 пиксель и мерцание

Смещение текстуры на 1 пиксель и мерцание

Страницы: 1 2 Следующая »
Yanusa3Постоялецwww3 мая 201814:06#0
Добрый день, возникла проблема при отображении текстуры и изменении её координат на 1 и более пикселей, которая выглядит как мерцание содержимого текстуры, поясню:
при детальном рассмотрении получается, что один и тот же пиксель выводимой текстуры меняет свою яркость (аля smoothing) между пикселями, хочется сделать так что бы пиксель перемещался чётко на 1 и такого эффекта не возникало (координаты и сдвиги проверял, там как нужно сдвиги целые).
Пробовал отключать Multisample - не помогает.
Эффект очень сильно зависит от данных, если есть много переходов между цветами, то смотреть аж противно на такое движение текстуры.
zelderПостоялецwww3 мая 201814:12#1
MipMapping?
Yanusa3Постоялецwww3 мая 201814:14#2
GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.GenerateMipmap, 1);
Yanusa3Постоялецwww3 мая 201814:15#3
а разве этот параметр влияет на смещение текстуры?
Yanusa3Постоялецwww3 мая 201814:17#4
текстуру отображаю 1 в 1 без искажения размеров и в координатную сетку монитора.
DelfigamerПостоялецwww3 мая 201814:28#5
GL_NEAREST?
Yanusa3Постоялецwww3 мая 201814:36#6
Не помогает (он вообще похоже не участвует, т.к. текстура не изменяет своих размеров).
Yanusa3Постоялецwww3 мая 201814:54#7
возможно есть ещё какой то эффект, если перемещать окно с этой текстурой, то тоже мерцает.
Yanusa3Постоялецwww3 мая 201815:41#8
readmsg | Смещение текстуры на 1 пиксель и мерцание
Вот так выглядит одна и таже полоска пикселей при разном положении по оси Y
WraithПостоялецwww4 мая 20187:40#9
Это самый натуральный aliasing. Надо либо уменьшить частоту изображения (отфильтровать текстуру низкочастотным фильтром), либо увеличить разрешение экрана.
SuslikМодераторwww4 мая 20189:31#10
Yanusa3
> хочется сделать так что бы пиксель перемещался чётко на 1 и такого эффекта не
> возникало
поменяй линейную фильтрацию на point.
Yanusa3Постоялецwww4 мая 201810:08#11
Спасибо, при перемещении нашёл ошибку с нецелым значением, из-за чего пиксель текстуры перетекал не так как нужно, но теперь есть эффект "дрожания" при самом движении.
Т.е. если делать снимки в статике все пиксели одинаковые, но при движении возникает дрожь которая тоже не приятна глазу.
Движение текстуры - вот тут на видео виден этот эффект
g-contПостоялецwww4 мая 201818:16#12
а скорость движения текстуры на чём базируется?
EugeneУчастникwww4 мая 201818:37#13
Yanusa3
> Т.е. если делать снимки в статике все пиксели одинаковые, но при движении
> возникает дрожь которая тоже не приятна глазу.
У тебя должно быть две разных переменных.
Одну ты округляешь, к другой ты прибавляешь смещение.
Т.е. нельзя прибавлять значение при движении к той же самой переменной, что потом округляется и используется для отрисовки.
DelfigamerПостоялецwww4 мая 201820:29#14
Eugene
> У тебя должно быть две разных переменных.
Кстати, это тоже называется "принцип одной ответственности". За накопление интеграла отвечают переменные, в которые накапливается интеграл; за черту на экране - переменные, в которых хранятся координаты черты на экране.
_

Я не вижу проблем на видео, так что я несколько в замешательстве. ОП хочет моушн блюр (=сглаживание по времени)? Но при этом без сглаживания между пикселями?
Можно нарисовать/привести пример, как оно должно выглядеть по задумке?

Правка: 4 мая 2018 20:29

Страницы: 1 2 Следующая »

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

2001—2018 © GameDev.ru — Разработка игр