Двойной буферный спрайт в OpenGL - PullRequest
0 голосов
/ 23 декабря 2011

К сожалению, снятие скриншота не повторяет проблему, поэтому мне придется объяснить.

Мой персонаж - КВАД с привязанной к нему текстурой. Когда я перемещаю этот символ в любом направлении, «задний конец» пикселей имеет зеленое и красное «послесвечение» или полосу пикселей. Очень сложно объяснить, но я предполагаю, что это проблема двойной буферизации. Известна ли проблема, связанная с движущимися спрайтами и конечными пикселями?

1 Ответ

0 голосов
/ 03 января 2012

Мое единственное предположение на данный момент состоит в том, что вы используете только поднабор текстуры (т. Е. Ваши UV не просто 0 и 1), и у вас есть несколько цветных пикселей вне нарисованного прямоугольника, и из-за билинейного фильтруя, вы мельком видите их.

При создании текстур с альфа-каналом обязательно создайте контур вокруг видимой части текстуры того же цвета (т. Е. Если ваша текстура коричневого деревянного забора, убедитесь, что все прозрачные пиксели рядом с забором тоже коричневые) .

ОБРАТИТЕ ВНИМАНИЕ, что некоторые алгоритмы сжатия текстур удаляют значение цвета из пикселя, если он полностью прозрачен, поэтому при необходимости напишите тестовый пиксельный шейдер, который игнорирует альфа-канал, чтобы убедиться, что ваша текстура прошла через конвейер без изменений.

...