ПрограммированиеФорумГрафика

Текстурирование ландшафта (смешивание текстур) OpenGL - пост N 36 (5 стр)

Страницы: 1 2 3 4 5
#60
10:08, 28 авг 2009

А пому Hedge на первой странице проще сделал. 5 слоев, одна маска (красный зеленый синий альфа + черный цвет как я поал тоже слой). Рисуй сее в фотошопе и не парься. Пому проще...

#61
5:43, 31 авг 2009

0r@ngE
так сам принцип понятен
есть пара вопросов
у тебя высота точки несет в себе 
1 высота точки
2 используемые для этой точки текстуры
3 текстурные координаты для каждой текстуры
4 веса этих текстур
тут в принципе все ясно вопрос вот в чем
редактор сразу сбрасывает chunk ?  или уже движок бьет всю сетку на chunk's ? если сразу то в заголовке каждого чанка держим именна текстур и количество ? или каждая точка держит в себе количество текстур ?
получает структура точки ~ такая

typedef struct 
{
     int numUseTex; - !?
     int tex[5];
     int height;
     vector2 texCoor[5];
     float alphaTex[5];
{structHeight;

если не сложно скинь простую карту, можно один чанк, у меня пока редактор не готов

и еще вопрос, каким образом формируется альфа для каждой текстуры ?
и вопросик по редактору
как кинуть сетку понятно, далее грузим текстуру, тут тоже ясно, а вот как оптимальнее двигать эту текстуру по ландшафту ?
тоесть понятно вначале пускаем луч, чтобы узнать в какую текстуру попали, дальше считаем сдвиг мыши и ? вот что делать с тектурой ? менять текстурные координаты у всех точек что под текстурой ? или на время сдвига создать под текстурой полигон и двигать его, а при отпускании мыши уже считать на какие вершины легла текстура и уже там дело техники ?
как лучше делать ?

Прошло более 1 года
#62
2:59, 4 июля 2011

Спасибо за интересную темку =)) Почитав - почитав у меня получилось вот что :

При отрисовке каждого квадрата в шейдер передается 4 текстурки ( текстура этого квадрата , текстура верхнего квадрата , текстура правого квадрата и текстура верхнего правого квадрата )
Коэффициентом видимости для каждой текстуры являются ее координаты )

Вот так вот все считается :

uniform sampler2D tex;
uniform sampler2D tex1;
uniform sampler2D tex2;
uniform sampler2D tex3;

varying vec2 Texcoord;


void main( void )
{
   
vec4 color1 =  ((texture2D(tex, Texcoord)*(Texcoord.x))
+(texture2D(tex1, Texcoord)*(1-Texcoord.x)))*(Texcoord.y);

vec4 color2 =  ((texture2D(tex2,Texcoord)*Texcoord.x)
+(texture2D(tex3, Texcoord)*(1-Texcoord.x)))*(1-Texcoord.y);


gl_FragColor = (color1+color2)*(color1+color2)*1.5;

}

Это позволяет использовать сколько угодно текстур без всяких слоев =))

Изображение

Щас прикручу бамп и скорее всего все таки через маску сделаю смешивание , а то так как то по дурацкцки трава в камень переходит =)))

#63
10:38, 4 июля 2011

смешивание цветов можно спокойно и без щейдеров делать.
я например через функции комбинировани текстур делал.
Изображение

#64
13:29, 4 июля 2011

Borland C++ Builder detected.
Я думал я последний в этом мире кто его использует :D

Прошло более 9 месяцев
#65
17:44, 12 апр 2012

Mr.TyanVary
> Я думал я последний в этом мире кто его использует :D
ты не последний. хотя я недавно отказался. но считаю как ни прискорбно, но кроме билдера и vcl ничего лучше не придумали. хоть там и малость все криовато, но он все равно достойно смотрится даже на фоне самых последних достижений майкрософт.

#66
20:40, 12 апр 2012

EvilSpirit
+1
Дельфово-Билдеровский дизайнер очень удобный
И что ты выбрал на замену?

P.S. Я делал смешивание цветов на FFP

#67
1:29, 13 апр 2012

Aslan
> И что ты выбрал на замену?
gnu c++ compiler, code blocks. явно идейное сочетание, но от формошлепства далековато)

#68
8:48, 13 апр 2012

EvilSpirit
Меня интересует именно формошлепство :)
wxDesign, Glade (Gtk)

#69
17:57, 13 апр 2012

Aslan
> Меня интересует именно формошлепство :)
пишу свою либу)

#70
18:49, 13 апр 2012

EvilSpirit
Нет нужды, все есть готовое
В Code:Blocks встроен дизайнер для wxWidgets

Страницы: 1 2 3 4 5
ПрограммированиеФорумГрафика

Тема в архиве.