Вопрос про объём видеопамяти обычно задают в виде «сколько видеопамяти нужно», и универсального ответа на него нет. Зато есть точный способ выяснить это за десять минут на собственном проекте, не полагаясь на чужие рекомендации.
Сейчас по порядку: сколько памяти съедают разные типы задач, как замерить своё потребление, что делать, когда не помещается, и на каком объёме остановиться при покупке.
Почему память важнее скорости
Разница принципиальная. Недостаток скорости означает, что вы подождёте дольше. Недостаток памяти означает, что задача не выполнится вовсе.
Когда сцена не помещается, происходит одно из двух. Либо рендер отказывается запускаться с ошибкой нехватки памяти. Либо система начинает подкачивать данные из системной памяти, и скорость падает не на проценты, а в разы.
Второй случай коварнее: формально всё работает, но рендер, который должен занять час, идёт восемь. Причину при этом ищут в настройках.
Что именно занимает память
Полезно понимать составляющие, потому что оптимизировать можно каждую отдельно.
Геометрия. Вершины, полигоны, нормали. Обычно не главная статья, если вы не работаете с многомиллионными скульптами.
Текстуры. Чаще всего самая крупная статья. Одна карта четыре тысячи пикселей занимает десятки мегабайт, а на полноценном ассете их от 5 до 7 штук.
Ускоряющие структуры. Служебные данные, которые движок строит для быстрого поиска пересечений лучей. Занимают заметную долю и растут вместе с числом объектов.
Буферы кадра. Сам просчитываемый кадр и вспомогательные слои. Растут с разрешением вывода квадратично.
Симуляции и объёмные эффекты. Дым, огонь, жидкость. Самая тяжёлая категория: сетка симуляции может занять больше, чем вся остальная сцена.
Таблица по типам работы
Ориентиры для типичных задач. Цифры приблизительные и зависят от аккуратности сцены, но порядок верный.
Учебные сцены, простые предметы, текстуры до двух тысяч: до 4 ГБ. Помещается практически везде.
Предметная визуализация, один объект, текстуры четыре тысячи: от 4 до 8 ГБ.
Персонаж с полным набором карт, интерьер одной комнаты: от восьми до двенадцати.
Игровые ассеты, сборка уровня, анимация без тяжёлых симуляций: от восьми до шестнадцати.
Архитектурный экстерьер с растительностью: от шестнадцати и выше, легко уходит за двадцать четыре.
Симуляции дыма и жидкости в приличном разрешении: от двадцати четырёх, верхней границы практически нет.
Продакшен-сцены с текстурами восемь тысяч: от тридцати двух.
Как замерить своё потребление
Самый надёжный способ, потому что учитывает именно вашу манеру работы.
Откройте свой самый тяжёлый проект и запустите рендер. Параллельно смотрите на потребление видеопамяти любым монитором нагрузки.
Записывайте не среднее, а пиковое значение. Именно оно определяет, поместится сцена или нет.
Повторите для двух до трёх разных проектов, чтобы понять разброс.
Умножьте максимум на полтора: это запас на рост проектов и на то, что часть памяти всегда занята системой и самой программой.
Полученное число и есть ваш требуемый объём. Оно почти всегда отличается от того, что советуют в обзорах, потому что зависит от задач, а не от класса карты.
Что делать, когда не помещается
Прежде чем менять железо, стоит попробовать уложиться. Приёмы перечислены в порядке эффективности.
Снизить разрешение текстур. Самый быстрый выигрыш. Четыре тысячи вместо восьми экономит три четверти памяти на каждой карте, а на рендере это часто незаметно.
Использовать экземпляры вместо копий. Тысяча деревьев как копии занимают тысячу раз по объёму одного дерева, как экземпляры один раз.
Рендерить слоями. Разбить сцену на планы и считать по очереди, собирая потом в композиторе.
Упростить то, что не видно. Объекты за кадром и за другими объектами можно убрать вовсе.
Снизить разрешение симуляций. Дым и жидкость почти всегда можно считать грубее, чем кажется необходимым.
Проверить настройки движка. Часть движков умеет держать текстуры в системной памяти ценой скорости. Это выручает, когда до порога не хватает немного.
Сколько брать при покупке
Практические рекомендации по профилям, исходя из замера выше.
8 ГБ. Для обучения и простых задач. Сегодня это нижняя граница, и упереться в неё получится быстро.
Двенадцать. Разумный минимум для работы. Закрывает предметную визуализацию и игровые ассеты.
Шестнадцать. Комфортная точка для большинства специалистов. Запас на несколько лет при типовых задачах.
Двадцать четыре и больше. Нужны под архвиз, симуляции и продакшен. Для остальных это переплата, которая не окупится.
Важное дополнение: две карты не складывают память. Сцена должна помещаться в каждую по отдельности, и для увеличения доступного объёма нужна одна карта побольше, а не две поменьше.
Как объём соотносится с другими характеристиками при выборе конкретной модели, разобрано в материале про выбор видеокарты под 3D.
Вьюпорт против рендера
Две разные нагрузки, и требования к ним отличаются.
Во вьюпорте память тоже расходуется, но обычно меньше: движок показывает упрощённые версии текстур и не строит полные ускоряющие структуры.
Практическое следствие: сцена может нормально крутиться во вьюпорте и не запускаться на рендер. Это нормально и не означает поломку.
Обратная ситуация тоже бывает: при работе с несколькими открытыми программами память занята ими, и рендер падает, хотя сам по себе поместился бы.
Если параллельно идёт генерация
Отдельный сценарий, который становится частым.
Локальный запуск моделей генерации занимает память так же, как рендер, и эти нагрузки складываются. Держать одновременно открытую тяжёлую сцену и загруженную модель на карте среднего объёма не получится.
Практический подход: закрывать сцену перед генерацией либо выделять под это отдельное время. Требования конкретно к генерации разобраны в материале про локальный запуск 3D-генераторов.
Системная память тоже участвует
Частая ошибка при планировании: смотреть только на видеокарту.
Подготовка сцены, загрузка текстур с диска, запекание симуляций, работа модификаторов происходят в системной памяти. Её нехватка проявляется как общие тормоза до того, как дело дойдёт до рендера.
Практический ориентир: системной памяти вдвое больше, чем видеопамяти. При 16 ГБ на карте разумно иметь тридцать два в системе.
Как это соотносится с остальными компонентами при сборке, разобрано в материале про сборку ПК для 3D-рендеринга.
Текстуры: где память уходит незаметно
Раз это самая крупная статья расхода, стоит разобрать её отдельно.
Одна карта четыре тысячи пикселей в несжатом виде занимает около 60 МБ. Полный набор PBR это цвет, нормали, шероховатость, металличность, иногда карта высоты и окклюзия. Шесть карт на один материал, и это уже под 400 МБ.
Умножьте на число уникальных материалов в сцене, и станет понятно, куда девается память.
Что с этим делать практически.
Не все карты нужны в одном разрешении. Шероховатость и металличность прекрасно работают вдвое меньше цветовой карты, разницы не видно.
Объединять карты в каналы. Шероховатость, металличность и окклюзия это карты в градациях серого, и их можно упаковать в три канала одного изображения. Экономия трёхкратная.
Переиспользовать материалы. Пять объектов с одинаковым пластиком должны делить один материал, а не иметь пять копий.
Проверять неиспользуемое. В сценах со временем накапливаются текстуры, подключённые к узлам, которые ни на что не влияют. Память они занимают исправно.
Разрешение вывода тоже считается
Статья расхода, о которой вспоминают в последнюю очередь.
Буферы кадра растут квадратично с разрешением. Переход с полного кадра высокой чёткости на четыре тысячи по ширине увеличивает их вчетверо.
Добавьте вспомогательные слои: глубина, нормали, отдельные проходы для композитинга. Каждый это ещё один буфер того же размера.
Практический приём при нехватке: считать в меньшем разрешении и увеличивать результат, либо разбивать кадр на части и собирать. Второе надёжнее, но требует аккуратности со швами.
Признаки того, что упираетесь именно в память
Отличить нехватку памяти от нехватки скорости несложно.
Ошибка нехватки памяти при запуске рендера. Однозначный признак.
Рендер внезапно замедлился в разы после добавления объектов или повышения разрешения текстур. Началась подкачка.
Вьюпорт стал дёргаться при вращении хотя сцена не усложнялась визуально.
Программа закрывается без сообщений на тяжёлых сценах.
Если же всё работает, но медленно и равномерно, дело не в памяти, а в вычислительной мощности, и решается оно другими средствами.
Частые вопросы
Сколько видеопамяти нужно для Blender?
Зависит не от программы, а от сцены. Для учебных задач хватит 4 ГБ, для предметной визуализации восьми, для интерьеров и персонажей двенадцати до шестнадцати, для архвиза и симуляций от двадцати четырёх.
Можно ли рендерить на процессоре, если памяти не хватает?
Да, и системной памяти обычно больше. Но скорость упадёт в разы, поэтому это выход для разового случая, а не рабочая схема.
Помогает ли увеличение системной памяти при нехватке видеопамяти?
Косвенно. Часть движков умеет использовать её как резерв, но с большой потерей скорости. Полноценной заменой она не является.
Почему одна и та же сцена требует разного объёма в разных программах?
Движки по-разному хранят данные и строят служебные структуры. Разница до полутора раз между движками это норма.
Стоит ли брать карту с запасом на будущее?
В части памяти да, потому что требования растут, а докупить её нельзя. В части скорости нет: она обесценивается быстрее и всегда есть возможность просто подождать дольше.
Не гадайте по обзорам. Запустите свой самый тяжёлый проект, посмотрите пик занятой видеопамяти и умножьте на полтора. Полученное число и есть ваш ответ.
