Текстура смещается при рисовании на экране (XNA)

Почему края моей текстуры содержат нежелательные цветные линии? Текстура выглядит сдвинутой на часть пикселя.


person user1306322    schedule 13.07.2012    source источник


Ответы (1)


Texture2d иногда можно рассматривать как сдвинутые или неуместные, когда вы рисуете не всю текстуру, а только ее часть с помощью параметра SourceRect, а позиция текстуры (Vector2) имеет нецелочисленные координаты. Это может выглядеть как нежелательные тексели, показывающиеся по краям.

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

Если этот код вызывает проблемы…

Texture.Position.X = 4.9876f; // 4.9876f is an example of actual value
Texture.Position.Y = 5.1234f;

…попробуйте добавить актерский состав:

Texture.Position.X = (int)4.9876f;
Texture.Position.Y = (int)5.1234f;
person Community    schedule 13.07.2012