можно ли сделать динамическую смену текстуры по дальности?

Автор
Сообщение
На сайте c 31.03.2011
Сообщений: 9943
Renderfarm

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

просто сейчас есть сцена, территория 250 кв км с копейками, по которой идет трасса, под нее из сас планеты была выдрана съемка, разрешение получилос 88к на 26к, разумеетсяцеликом такую текстуру сохранить в понятные для макса форматы не удалось, ну это и понятно, поскольку только в свежих версиях ФШ появилась поддержка таких гига разрешений, в итоге съемку разбил на 52 равных куска примерно по 6500 пикселей в обе стороны, все это дело грамотно и бесшовно легло на предварительно порезанную поверхность, но появилась другая проблема, при рендере из-за текстур сжирается 10 с копейками гиг памяти, т.е. текстуры загружаются в память даже, если их нет в ракурсе, и это только текстуры на плоской поверхности с 52 полигонами, а когда будет собрана вся сцена целиком, то жор памяти при рендере будет вообще адский именно по текстурам, поскольку большая часть геометрии делаться будет через рейлклон и она в принципе памяти вообще не есть из-за хитрых алгоритмов

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

как это сделать с лесными массивами то я знаю, форестпаком тут можно схитрить по замене лодов, а вот по текстурам ступор

На сайте c 10.12.2009
Сообщений: 5680
Kalevan

Если под анимацию - имхо бессмысленно ибо по мере движения камеры будут бОльшие текстуры подгружаться и памят ьвсё равно съестся.

Для статики... Самое простое сделать дополнительные слои количеством по числу камер и под каждую камеру включать свой слой с настроенным лодом. А на рендер отправлять в бэкбёрнер поракурсно. Ну это что сразу в голову пришло.

На сайте c 31.03.2011
Сообщений: 9943
Renderfarm
Revered если метод не найдется, то попробую разбить карту на более мелкие фрагменты, может и памяти будет жрать приемлемое количество, сейчас сами эти 52 куска суммарно весят 1.5 гига, но на рендере жрут 10, вот, что неясно
На сайте c 10.12.2009
Сообщений: 5680
Kalevan

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

В том же Ментале например есть какие-то встроенные консервалки памяти и кэшилки картинок. Из их описания как я понял они как раз для таких случаев.

А так в принципе можно ещё развлечься со сборкой слоёв. посчитать отдельно ландшафт и отдельно всё остальное на однотонной поверхности. (ну или с картинкой ландшафта в меньшем разрешении если нужны отражения например) Саму поверхность потом исключить по маске а нижним слоем поставить предварительно посчитанный ландшафт. Сессно отдельным номером нужен будет слой с тенями.  Вариант подходит и для статики и для анимации.

ЗЫ

Вообще честно говоря для меня сомнительна необходимость использования ТАКИХ огромных карт. Например во многих современных игровых движках с огромным открытым миром для этих целей используют грамотно смешиваемые композитки.

На сайте c 07.10.2010
Сообщений: 1709
Минск
xpp_nd_ruphus можно используя скрипт контроллер на объекте(в вашем случае земля) заставить его использовать разные материалы/текстуры при различных расстояниях от объекта до камеры, например, и также подключить функцию freescenebitmaps() для очистки памяти при смене материала.
На сайте c 31.03.2011
Сообщений: 9943
Renderfarm
Sean а вот это уже интересно, буду копать в этом направлении
Читают эту тему: