• Добро пожаловать на Quest3D - Русскоязычное сообщество.
 

Оптимизированный ландшафт с помощью карты высот

Автор Ruslan, 29 мая 2008, 18:49:01

« назад - далее »

Ruslan

Всем доброго времени суток!
Подскажите пожалуйста, умеет ли Quest3D строить свой собственный оптимизированный ландшафт, с помощью карты высот?
Заранее спасибо.


Ruslan


anval

Всем привет.Добрался я до большого ландшафта и столкнулся с проблемкой.У меня идет подгрузка видимых квадратов по принципу примера с конференции.Использую ShaderFX- vertex shader с картой высот и смешивание дифузных карт с помощью отдельной тексуры по её r,g,b каналам.Но как мне разделить общие карту высот и blend текстуру на части для каждого квадрата?.Пытался с помощью сдвига и масштабирования текстурных координат,но нет точности-будут наклкдки или разрывы на стыках квадратов.Подскажите,пожалуйста, кто знает :).

Viik

Режеш ландшафт на равные части, точно так же режеш текстуры. В шейдере, для карты высот mip\map фильтрацию меняеш с Linear на None. Ну и главное что если у тебя сетка в квадратах разной плотности то на еджах ее нужно сводить к одной.

anval

Спасибо, но ты меня немного не понял:).Из Макса берутся только координаты квадратов и одна плоская mesh.И уже в квесте выдавливается с помощью карты высот.Не буду же ее резать на несколько тысяч квадратов.Так что буду мудрить со сдвигом uv.

Viik

Так без разницы, получаеться что сетка у тебя везде одинаковая. Мапиш квадрат в квесте четко 0..1, потом как ты и написал пересчитываеш УВешки, просто учитывай такую штуку, увешки флот поинт а адресация текселей дискретная, поэтому кроме:
ЦитироватьВ шейдере, для карты высот mip\map фильтрацию меняеш с Linear на None.
имеет сымл округлять полученные увешки до ближайшего текселя текстуры. Грубо говоря, один квадрат использует кусок текстуры 128х128, высчитваеш увешку в единицах текстуры и окургляеш до наименьшего целого, потом делаеш сдвиг на пол текселя, чтобы четко по центру прочитать.

anval


anval

Привет.Столкнулся с очередной проблемкой:).В шейдере,слепленном в ShaderFX, не хотят двигаться ув координаты по второму каналу.Т.е.я хочу масштабировать и сдвигать карту высоты,а к меня двигаются диффузные и соответственно выдавливание не меняется.

Ruslan

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

anval

Так и не смог добиться разного выдавливания со сдвигом uv.
Blend текстура смещается нормально,а disp остается тем же.
Пробовал разные форматы dds,разные типы фильтраций для текстуры,разные каналы UV.Что еще посоветуете:).

anval

У меня уже появился ежедневный ритуал :) - 2 часа на VTF.Все перелопатил на тему Vertex Texture,2Dlod.Но так и не сдвинул UV координаты в вертехном шейдере.Кто нибудь вообще добился этого?Во вложении два шейдера-один из ShaderFX,другой -нашел в инете.Первый работает ,но,как уже говорил,выдавливает только полной текстурой,и почему то работает с любыми текстурами кроме 32 битных,хотя вродебы должнл быть наоборот.Второй так и не удалось заставить работать,ни в комбинации с первым ,ни в чистом виде(само собой с исправлением под квест).Может это моя видюха ати3650?Но с другой стороны в квесте, в texture stage при сдвигеили масштабировании координат - происходит изменение рельефа!?