воскресенье, 10 февраля 2013 г.

текстурные координаты gl_triangle_strip

mesh.Push(v,n,t,k); \\передаём в буфер

Mid(n[i],n[i+w*2+1]); \\сглаживаем нормали между полосками стрипов

for(int i=1;i<k-2*w-1;i+=2)

n[i]=GetN(v[i+1],v[i],v[i+2]);

v[k++].Push(-w/2*scale,y+scale,hmap[0][j+1]); \\дегенераты

v[k++].Push(x,y+scale,hmap[w-1][j+1]);

if(!(i%2)) \\если треугольник не чётный, то ставим текстурные координаты

if(i<w-1)SetUV(i,j,tx,ty); \\ выбираем положение на текстуре (в текстуре хранится 4х4 тайла)

v[k++].Push(x,y+scale,hmap[i][j+1]);

Фрагмент кода, который генерирует ландшафт

Текстурировать ландшафт я хочу с помощью тайлинга ( ), вопрос в том, как это корректней всего реализовать для GL_TRIANGLE_STRIP т.к. в момент переключения текстуры (т.е смещения текстурных координат, для того чтобы перейти на следующий фрагмент текстуры), текстурные координаты съезжают, и на стыке двух типов ландшафта возникает каша:

И если на каждый элемент ландшафта я наношу одну текстуру, то все в порядке:

Ландшафт я вывожу через VBO с помощью примитива GL_TRIANGLE_STRIP, генерирую вершины, ставлю нормали и текстурные координаты.

Потихоньку изучаю работу с OpenGL, и у меня возникла проблема с текстурированием ландшафта, следующего характера:

Всем доброго времени суток!

Постоялец 10 фев. 201216:29

Тайлинг ландшафта при использовании GL_TRIANGLE_STRIP

/ / / Тайлинг ландшафта при использовании GL_TRIANGLE_STRIP

Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум

Тайлинг ландшафта при использовании GL_TRIANGLE_STRIP / Форум / Программирование игр / GameDev.ru Разработка игр

Комментариев нет:

Отправить комментарий