Использование XNA SamplerState.LinearWrap - PullRequest
1 голос
/ 23 июля 2011

У кого-нибудь была удача заставить LinearWrap работать с XNA 4.0 на профиле досягаемости?

Пример ...

device.SamplerStates[0] = SamplerState.LinearWrap;    

leftVert.TexCoord = new NormalizedShort(0.0f, 0.0f);
rightVert.TexCoord = new NormalizedShort(5.0f, 1.0f);

Это не оборачивает текстуру 5 раз по оси u. На самом деле он рендерит так же, как если бы 5.0f был 1.0f.

Другой пример ...

leftVert.TexCoord = new NormalizedShort(-5.0f, 0.0f);
rightVert.TexCoord = new NormalizedShort(5.0f, 1.0f);

Это оборачивает текстуру один раз, но не в 10 раз как ожидалось.

Итак ... кто-нибудь знает "правила" для использования этой системы?

То есть ...

Существует ли максимальное поддерживаемое отклонение между соседними координатами? Все координаты должны быть в пределах (-1,1)? Первый номер должен быть отрицательным? (И почему это нигде не задокументировано Microsoft)

1 Ответ

4 голосов
/ 23 июля 2011

Я думаю, что ваша проблема - объект NormalizedShort. «Нормализованный» обычно означает значение от -1 до 1. В случае XNA, это, кажется, то же самое .

Попробуйте вместо этого использовать Vector2 (плавающие) в качестве текстурных координат.

...