Как я могу повторить выбор текстурного атласа?Как использовать GL_REPEAT, чтобы повторять только выбор текстурного атласа? (OpenGL)
Например, мой спрайтов (выбор) находится в пределах координаты текстуры:
GLfloat textureCoords[]=
{
.1f, .1f,
.3f, .1f,
.1f, .3f,
.3f, .3f
};
Затем я хочу повторить, что спрайт N раз к треугольной полоски (или четырехугольника), определяемой:
GLfloat vertices[]=
{
-100.f, -100.f,
100.f, -100.f,
-100.f, 100.f,
100.f, 100.f
};
Я знаю, что это как-то связано с GL_REPEAT
и textureCoords проходит диапазон [0,1]
. Это, однако, не работает: (пытаясь повторить N = 10)
GLfloat textureCoords[]=
{
10.1f, 10.1f,
10.3f, 10.1f,
10.1f, 10.3f,
10.3f, 10.3f
};
Мы видим, что наши полные текстуры атлас повторяется ...
Как бы я сделать это правильный путь?
Благодаря «расслабиться», «Jimmy J» и «TrayMan» за ваши вклады. Я проголосовал за ваши ответы и составил этот ответ от вас, который теперь очень хорошо описывает, что происходит. – Kriem
> "или написать программу вершин GLSL, чтобы соответствующим образом отобразить координаты текстуры." Вместо этого должна быть * фрагмент *. –
Это зависит, Sarge. Использование метода тесселяции более вершин, чем фрагмент. И вы обычно можете оптимизировать, не выполняя вычисления координат текстур в шейдере текстур - особенно с отложенным рендерингом на основе плитки. –