Сколько полигонов в сцене 3d max

Сколько полигонов в сцене 3d max

В данной теме даются несколько рекомендаций, которые могут помочь Вам отрендерить тяжёлую сцену или изображение действительно больших размеров в 3d studio max. Довольно распространённый метод работы со сценой, когда промежуточный, тестовый рендеринг делается в разрешении 640×480, затем Вы доходите до момента, когда нужно отрендерить сцену в разрешении 2048 (или больше) пикселей. Нажимаете Render, и. бумс! получаете ошибку нехватки памяти и аварийное завершение работы max-а. Мягко говоря – неприятно.
Вот несколько вещей, которые стоит попробовать (чтобы предотвратить такое) :

1) Перезагрузка: Перед запуском нового рендеринга, перезагрузите систему,
чтобы очистить все дополнительные процессы, которые скопились в оперативной памяти пока вы работали со сценой.

2) Закрыть все другие приложения: Кажется вполне очевидным, но удивительно, как много оперативной памяти могут занимать другие мелкие приложения. Например, iTunes сжирает около 0.1 Гб ОЗУ, хотя по общему представлению – такого рода приложения не должны забирать такое количество памяти.

3) Отключить vfb: Виртуальный буфер кадра ("Virtual Frame Buffer" (vfb)), который теперь называется "Rendered Frame Window" занимает значительный объём памяти. Для того, чтобы видеть ход рендеринга, Вы возможно отдаёте от 200 до 300 Мб ОЗУ, особенно, если рендерите изображение размерами 2000-3000 пикселей. Перейдите в настройки рендера и отключите галочку Rendered Frame Window. Если Вы используете сторонний рендер-движок, например, Brazil, убедитесь, что Вы также отключили кадровый буфер. Затем установите сохранение рендера в файл (в разделе Render Output). Сами понимаете, сколько памяти Вы можете освободить при этом.

4) Использование сетевого рендеринга: Даже для статичных кадров, даже если у Вас всего один компьютер, используя backburner или другую систему сетевого рендеринга можно освободить достаточный объём памяти, поскольку Вам не нужно будет полностью загружать max, чтобы отрендерить сцену. Так, например, я обычно настраиваю мой компьютер и как manager и как server: захожу в max, устанавливаю сетевой рендеринг (netrender), убедившись, что включена галочка "Initially Suspended", затем закрываю max, иду в Monitor и запускаю (инициализирую) поставленную в очередь работу (если Вы забудете включить инициализацию, Ваш компьютер будет загружать 2 копии сцены: одну для сетевого рендеринга, другую – копию сцены, которая уже открыта в max-е, что не очень хорошо). За более подробной информацией об использовании backburner-а или любой другой системы сетевого рендеринга, которую Вы выбрали, обратитесь к руководству пользователя.

5) Рендеринг из командной строки: Чтобы отрендерить свою сцену, Вы также можете воспользоваться рендерингом из командной строки. Подробней об этом: в файле справки max-а: Command Line Rendering.

6) Переходите на 64-битную версию max: Начиная с 9 версии max-а, max выпускается в двух видах: 32-х и 64-битная версии. Чтобы использовать 64-битную версию max-а, нужен компьютер (точнее – процессор), поддерживающий выполнение 64-битных команд и 64-битная ОС, например winXP64 или Windows Vista (Windows7) 64. Такая версия max-а может использовать намного больший объём ОЗУ, по сравнению с обычной 32-битной системой. И Вы можете добавить 4 Гб, 8 Гб (или на сколько у Вас хватит средств и сколько поддерживает Ваша материнская плата) оперативной памяти. В общем, столько, сколько требуют Ваши тяжеловесные сцены, в отличии от стандартного максимального объёма в 2-3 Гб, которые могут использовать 32-битные системы. Одна деталь: пока не все плагины скомпилированные для 32-битной версии max-а перекомпилированы для 64-битного max-а, однако этот процесс продвигается, так что, перед переходом (на 64-битную версию), убедитесь в том, что все необходимые Вам плагины имеют также и 64-битные версии.

7) Отключите отображение (bitmap-)карт в окнах мах-а: Это не снижает расход памяти при сетевом рендеринге, но если Вам нужно выполнять интерактивный рендеринг внутри max-а, вполне возможно, что немалая часть памяти съедается картами, которые отображаются в окнах просмотра Вашей сцены (я, например, однажды очень удивился, когда заметил, что почти пол-гигабайта ОЗУ использовались для отображения немалого количества карт больших размеров в превью-окнах). Для отключения: зайдите в меню Views и нажмите опцию "Deactivate All Maps". С версии max 2008, доступ к этой опции слегка изменили, теперь это делается так: открываем Views, и далее: Show Materials In Viewports As, Standard Display.

Читайте также:  Как получить сборки insider preview

8) Включить "Сохранять память" (Conserve Memory): Если используете Scanline-рендер, зайдите в раздел диалогового окна Render: Renderer, Memory Management, и включите "Conserve Memory". В файле помощи описание этой опции немного расплывчато, но утверждается следующее: "При включённом состоянии, рендеринг использует меньше памяти за счёт небольшого увеличения времени на расчёт. Размеры освобождаемой при этом оперативной памяти варьируются от 15 до 25 процентов. Время расчёта может увеличиться, примерно на 3-4 процента."

9) Битмап-подкачка: Зайдите в Customize, Preferences, Rendering, Bitmap Pager, и включите эту опцию, попробуйте разные значения настроек. Эта опция может значительно уменьшить количество памяти, необходимой для сцен с bitmap-картами больших размеров, или при рендеринге очень больших изображений. Настройки в этом разделе иногда напоминают колдовство (и мне кажется, что на самом деле это так и есть), вот некоторая базовая информация (учитывая её можно понять как это работает), которую я нашёл после нескольких тестов и бесед с некоторыми разбирающимися в этом вопросе людьми: Скажем, у Вас есть сцена с сотней bitmap-карт. У всех bitmap-карт разное разрешение и размеры, предположим, в пределах 100Кб и 11Мб на диске. И допустим, Вашей целью является использовать как можно меньше памяти (хотя стоит отметить: чем меньше используется памяти, тем медленнее будет рендеринг).

  • Установка большего размера значения файла подкачки (Page Size), означает (условно),
    что файл подкачки будет делиться на несколько больших файлов вместо множества
    мелких файликов. Изменение этого значения не сильно влияет на расход памяти, я бы
    установил это значение на наибольшее возможное , чтобы большие изображения
    (для текстурных карт) не разбивались на слишком маленькие части файлов подкачки.
  • Чем меньше значение Bitmap Size Threshold, тем больше файлов содержатся в подкачке.
    Так как при большом количестве файлов, превышающих это значение, они будут
    перемещены в файл подкачки. Таким образом, для меньшей загрузки
    (оперативной) памяти, устанавливайте небольшое значение этой величины.
  • Уменьшение значения Memory Pool означает то, что бóльшая часть информации будет
    располагаться на диске, а меньшая – в оперативной памяти. И чтобы уменьшить расход
    оперативной памяти, устанавливайте для этой величины небольшие значения.

Также обратите внимание, что для изменения настроек может потребоваться перезапуск. Так что, если вы изменили данные настройки, сохраните файл, и перезапустите max, чтобы эти настройки заработали.

10) Уменьшить размеры бакетов (Buckets): При использовании рендер-движков, базирующихся на бáкетах (bucket based renderer) таких как Brazil или Mentalray, попробуйте уменьшить размер бакета. Меньший размер бакета означает, что в памяти будет размещаться меньший объём информации, для того, чтобы отрендерить этот бакет. В результате этого, рендеринг может быть немного медленней, но это также и уменьшает требования к памяти, особенно при использовании высоких значений сэмплинга (high sample rates).

11) Настройки в окне Strips Setup: Это свойство позволяет рендерить изображение по кусочкам, и полезно для рендеринга очень больших картинок. Сначала, запустите сетевой рендер, и когда появится диалоговое окно Network Job Assignment, включите Options → Split Scan Lines, затем нажмите Define для настройки. Для более подробной информации об этой опции и как она работает – см. файл помощи (искать "Strips Setup Dialog").

12) Уменьшите количество полигонов: А теперь, может самое время задаться вопросом: оптимизировали ли Вы количество полигонов в своей сцене? Понятное дело: какой восторг и наслаждение Вы испытывали, когда моделировали каждую мельчайшую деталь, скажем, модели автомобиля. А на самом деле, будет ли виден тот аккуратно смоделированный болтик при рендеринге? Вам действительно необходим цилиндр с 30-ю сторонами для объекта, находящегося вдалеке, с высотой 2 пикселя? Найдите время, чтобы проанализировать Вашу сцену и решить на чём можно сэкономить (в плане количества полигонов), возможно, Вы удивитесь тому, что можете обнаружить.

Читайте также:  Как сохранить эксель в html

13) Уменьшите размеры Bitmap-карт: В том же духе, что и рекомендация №12: Вам на самом деле нужна карта размером 4000 пикселей для объекта, высота которого на экране равна 10-ти пикселям? Всегда сохраняйте резервные копии карт с высоким разрешением, никогда точно не знаешь где они могут пригодиться; но вместо считывания всей карты с разрешением 4000 в max-е, попробуйте сделать версию этой же карты размером в 1000 или 512 пикселей, и посмотрите насколько сильно заметна визуальная разница. При этом несомненно одно: разницу в расходовании памяти Вы заметите точно.

14) Удаление ненужных текстурных координат (Mapping Coordinates): UV-раскладки занимают память (несомненно ;-), и если у вас 10000 полигональных объектов с 3 или 4 UV-раскладками (т.е. Вы назначили некоторое количество модификаторов UVWMapping или UVWUnwrap, в которых задано больше одного map-канала), а для материала объекта не нужны такие UV-раскладки, Вы впустую теряете очень много памяти. Воспользуйтесь, например, утилитой Remove UVs Utility для удаления таких неиспользуемых текстурных координат, тем самым освобождая ещё часть памяти.

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

Никита, здесь дело именно в специализации среды, в которой происходит работа. Теоретически, сцена может быть какой угодно. Но, т.к. 3ds Max не оптимизирован под работу с большими сценами, большими в смысле большого количества объектов и их сложности, если количество полигонов переваливает за какую-то отметку, то начинаются большие проблемы в работе со сценой. Также насущна проблема т.н. z-файтинга, когда грани, находящиеся в одной плоскости начинают мигать, бороться за то, какая же из них отобразится в данный момент.

Первый недостаток в ограничении полигонов или общей сложности объектов является причиной того, что в 3ds Max, все объекты находятся "наготове", в расчете на то, что ты сейчас выберешь любой из них и будешь делать какие-то изменения. Это не Google Earth, в котором разработчики все продумали за тебя и четко ограничили возможности, за счет чего программа сама знает когда можно сэкономить и выгрузить из памяти ту или иную порцию информации. Поэтому идея города со всеми домами сразу и детализированными прусаками 🙂 в каждом не оправдает себя в смысле превышения порога производительности, как на аппаратном, так и на софтверном уровне.

Вторая проблема, проблема отображения, исходит из того, что 3ds max расширяет шкалу единиц, в которых работает вьюпорт в зависимости от габаритов всей сцены. Другими словами, в 3ds Max есть предельная дискретность размера, которая не увеличивается при увеличении габаритов сцены. А так чтоб понятно стало, разницу в расстоянии двух объектов можно увидеть только на N-ном расстоянии габаритов всей сцены. А чтоб вообще понятно было, то в сцене нормально видны только самые крупные объекты, мелкие мигают и пропадают.

Казалось бы, есть функция адаптивной деградации (кнопка O), когда при движении вида вьюпорта некоторые объекты отображаются боксами, для ускорения. У каждого объекта есть свойство Display as Box, которое заставляет отображать объект боксом постоянно, что позволяет постоянно ускорить работу во вьюпорте. Есть функционал XRef, с помощью которого можно собирать сцену из других сцен и отображать и, таким образом, не держать абсолютно все объекты «наготове». Есть даже технология vray прокси, которая во вьюпорте работает как и XRef и с ней можно отображать целые куски сцены боксами или каждым N-ным полигоном. Но это все банально не поможет, когда речь идет о целом городе и и клоузапе одновременно 🙄

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

а можна больше узнать про функцию адаптивной деградации:?)

и еще, такая же ситуация и в пакете Maya:?
или так как то по другому реализовано?) 😐

Читайте также:  Материнка msi 870 c45

Adaptive degradation в 3ds Max может улучшать производительность вьюпорта во время трансформации объектов, смене вида или проигрывания анимации. Это достигается временным уменьшением точности отображения определенных объектов. Например, отображая большие объекты или те, которые ближе к камере, боксами (bounding box) вместо полноценной формы с шейдированием. Без адаптивной деградации, геометрия отображается как обычно, даже если это ужасно замедляет прокрутку во вьюпорте или проигрывание анимации. В анимации могут даже пропускаться кадры, если видео-карта не успевает отображать движение в реальном времени.

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

Существуют даже подробные настройки адаптивной деградации в меню Customize > Viewport Configuration > Adaptive Degradation panel и опция Never Degrade (никогда не деградировать) в свойствах любого объекта. В настройках можно выставить в каких случаях, какие и до какой формы должны упрощаться объекты, а опция Never Degrade может быть полезна в анимации, когда не хотелось бы, чтобы главный персонаж превратился в кубики 🙂

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

Показанный тобой движок имеет вполне сносную графику, если учесть, что 3d сцены создавались архитектором. Современные игры смотрятся лучше лишь потому, что с каждой текстурой возился фотограф, на каждой моделью в игре потел художник, над анимацией старались десятки аниматоров, а потом, это все собиралось вместе и финальный вид доводился с учетом атмосферы игры. Бюджет, а он и есть показатель проделанной работы, современных игр затягивает за сотни миллионов долларов (. ). Ну как можно сравнивать несколькочасовую работу архитектора, в 3d над одной сценой, с игрой? Никак, а потому и результат не сравним.

А вот удобнее сделать — это запросто 🙂 Тут уже маркетинг: продвигать существующее, даже не самое лучшее, проще и дешевле. А точнее, с другой стороны, на продвижение неизвестно-чего нужна уйма средств.

Как бы там ни было, это уже оффтоповая философия 🙄

Tasha, Oksi,

Customize => Preferences => Viewports-non-scaling object size

Выждал импорт модели с архикад (3ds вывод как есть), 2600 объектов, более 1кк полигонов.
Вроде бы жить можно, отцентрировал все пайвоты, перевёл в поли, смерджил в новую сцену, лаги немного отлегли. Сгрупировал модель, соответственно проверил нет ли лишней геометрии, отцентрировал, сделал вюпорт клипинг. Но проблема в следующем : много объектов имеют bounding box огромного размера, двадцатикратно больше размера самой сцены. По-сути можно сделать детач из поли каждого объекта и багнутую геометрию удалить, но таких обьектов много, а по баундинг боксу их не выделить. Что можете посоветовать, коллеги? Уже полезли мысли о collapse to, но 12 этажное здание с кучей деталей цельным объектом звучит ужасающе.

Кстати, отличный портал, много интересного для себя нашёл. 👍

Обычно таким вопросом задаются, если надо уменьшить количество полигонов в 3ds Max или хотя бы не превысить их максимально возможное для этого проекта число. Да и вообще полезно знать, не эта ли маленькая табуреточка на миллион полигонов так тормозит сцену во вьюпортах.

Инструкцию пишу на примере 3ds Max 2017, но для предыдущих версий тоже вполне подходит.

Клик по плюсику в левом верхнем углу вьюпорта, в меню выбираем Configure Viewport.

В открывшемся окне переходим на вкладку Statistic, ставим галочки на параметрах, которые хотим видеть.

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

Используйте горячую клавишу «7», чтобы включить или выключить отображение статистики во вьюпорте. Данные отображаются в левом верхнем углу — цифры желтого цвета.

Совет. Не держите статистику постоянно включенной! В сложных сценах это может замедлять работу во вьюпортах.

Ссылка на основную публикацию
Сервер не поддерживает символы не ascii
Многие из нас пользуются замечательным FTP сервером FileZilla Server. Думаю, не я один столкнулся с проблемой некорректного отображения русских букв...
Ресивер пионер vsx 528
5.1 канальный AV ресивер Pioneer VSX-528 с 6x HDMI, AirPlay, DLNA, MHL, сквозным сигналом Ultra HD 4K и Интернет-радио vTuner....
Ресивер для нтв плюс какой лучше
Телекомпания НТВ‑ПЛЮС гарантирует получение качественных услуг, а также обеспечение корректного доступа к каналам и дополнительным сервисам Телекомпании, только при условии...
Сервера для обновления nod32 бесплатно
Отличие полной версии от триальной Полные (не триальные) антивирусные базы и программные компоненты Eset Antivirus и Eset Smart Security! Отличия...
Adblock detector