Render.ru

Текстурирование сложного hipoly ландшафта и связанные с этим трудности.

[hidden]

Активный участник
Рейтинг
5
#1
Всем привет!

Начну по порядку. Итак, стоит задача создать ландшафт. Метод создания стандартный - плоскость, карта высот, дисплейс.

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

результат на прикрепленной картинке.

внимание вопрос! как сие текстурить? суть проблемы в том, что при наложении битмаповской текстурки, на участках где гора идет вверх (на всех отвесных участках) текстура оказывается растянута. обычное явление при проецировании текстуры плоскостью, но так как модель очень высокоплигональная, uvw unwrap отпадает.

специально для тех мест, где растяжки особенно заметны, я могу нарисовать отдельные текстуры, но их нужно же и наложить так, чтобы не было искажений... то есть уж никак не плоскостью сверху, а под углом... тоесть если стены уж совсем отвесные, как на второй картинке, одной текстурой уж никак не обойтись...

ребята, подскажите, что делать?

P.S. а еще я попробовал плагин dreamscape. вещь интересная, особенно тем, что там нет вообще сетки как таковой :) но если отказаться от геометрии, то проблема текстурирования еще более усугубляется - там вообще никак нельзя этот процесс контролировать...

Надеюсь, суть вопроса ясна.

Всем заранее спасибо за ответы!!!
 

Вложения

Wats

Знаток
Рейтинг
25
#2
В Dreamscape есть карта Terrain Map (по моему так), вот она и позволяет текстурить в зависимости от наклона и высоты... В хелпе DS даже был урок как ей пользоваться... И сетка там тоже есть :rolleyes:
 

[hidden]

Активный участник
Рейтинг
5
#3
я знаю как работает эта карта. она в данном случае не поможет. да, она может выбрать нужные части модели (например с нужным наклоном), но это немного не то.

вопрос в том, как наложить _битмапы_ на такую сложную поверхность, чтобы эти битмапы не искажались.
 

carabus

Активный участник
Рейтинг
12
#4
видимо, вся проблема в том, что после дисплейса появляются новые вершины, ув координаты которых не были заданы в исходной, не смещенной поверхности, они конечно интерполируются после дисплейса, но карту то вы применяете к исходной поверхности...
попробуйте от обратного- создайте дисплейс-мех отдельно, затекстурируйте его, а полученную карту (с большим разрешением) примените в другом дисплейсе уже к исходной поверхности, при этом надо быть уверенным, что при обоих операциях дисплейса генерируется одинаковое число вершин, ув координаты исходных и дисплейс- мехов тоже одинаковые (хотя это изврашение, на мой взгляд)...
 

carabus

Активный участник
Рейтинг
12
#6
ну... у вас ведь есть поверхность, к которой вы дисплейс применяете...
...вы наложили на нее координаты и приготовили карту битмап...
...но после дисплейса на каждую оригинальную вершину будут приходится несколько новых, каждая со своими текстурными координатами, которые высчитываются исходя из оригинальных (распихиваются между ними) вот тут-то и появится растяжение, так как в этой операции происходит не просто увеличение вершин, как при тесселейт, например, но и изменение геометрии...
...поэтому, если вам так надо идти этим путем, необходимо как-то выполнить одну предварительную операцию дисплейса для получения конечной сетки с конечными координатами-которую вы сможете затекстурировать без растяжек и получить текстуру высокого разрешения...

...а уж ее вы накладываете на исходную сетку и производите дисплейс...
единственным условием всего этого является полная тождественность двух операций дисплейсов, того с которого вы карту получили , и того скоторым вы будете эту карту рендерить (я вам этого никак не могу гарантировать)...

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

...но ,может, я сам чего-то не понял..
 
Сверху