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 Разработка игр
Комментариев нет:
Отправить комментарий