Можно ли рендерить на видеокарте
Всем привет. За что мы любим 3д графику? За то, что она не дает заскучать, скорость появления новых технологий зашкаливает и нам нужно постоянно держаться на гребне волны, чтобы быть в теме. Мы можем просиживать за компьютером сутками ̶и̶ ̶г̶у̶с̶я̶м̶и̶ . Кто то любит ковыряться в машинах, а мы собираем своих франкенштейнов своими руками, чтобы увеличить скорость рендера на 5%, разгоняем процессоры, жжем материнки и видеокарты, ведь адреналин может выделяться не только в экстримальных местах, но и прямо за рабочим креслом :) С выходом Vray 3.5 сильно захотелось попробовать ГПУ рендеринг, и это превратилось в этот пост. Под катом все подробности выбора железа, установки, настройки, все подводные камни и ощущения от нереальных скоростей :)
После просмотра демо ролика мне буквально не сиделось на месте и я начал собирать информацию о ГПУ рендере везде где только мог, выяснилось что Bulgarov уже давно переехал на ГПУ:
и собрал какого-то нереального монстра с водяным охлаждением, а так же небезызсвестный DabartiCGI тоже перешел на ГПУ и во всю пропагандирует вегетарианство и сыроедство его.
У него система уже попроще, но всё равно довольно дорогая. Основные тезицы которые я почерпнул исследовав интернет такие:
1. Видеокарты могут быть разными(но просчет только Nvidia)
2. Количество памяти может быть разным. Оно не суммируется и используется наименьший объем памяти из всех доступных у видеокарт
3. Можно сочетать Ati/AMD(для отображения изображения с мониторов) и Nvidia для рассчетов
4. Sli режим не нужен, достаточно просто выбрать нужное количество видеокарт для просчетов
5. Основная проблема это охлаждение и питание.
Первым делом выяснилось, что просто так вставить 7 видеокарт в одну материнскую плату невозможно, даже если в ней есть 7 PCI-express-x16, они попросту туда не влезут, поэтому покупать специальную материнскую плату не надо. Достаточно любой "Gaming" с 4хPCIexpress-x16(это стандартные длинные пазы для видеокарт) и 3xPCIexpress-x1(урезанные, обведены красным)
К сожалению моя настольная материнка была с тремя большими ГПУ слотами и совсем не подходила даже для простой ГПУ станции, поэтому я пошел на балкон:
У нормальных людей на балконе можно найти много чего полезного, а у меня там - рендерферма :) С открытым окном в минус 30 рендерится очень хорошо:) Оказалось что почти все материнки для Xeon "нормальные" и я выбрал Gigabyte x99 Gaming 5:
Она компануется 4мя длинными и 3мя короткими PCI через 1, что позволяет воткнуть 4 видеокарты в обычный корпус MidiTower за 1000 рублей. Вы спросите, а как же всё таки воткнуть все 7 видеокарт в одну материнскую оплату? Оказалось, что тут без рукожопства уже не обойтись и найти детали в обычном супермаркете электроники около дом нереально, потому что нужно расширить короткие PCIexpress слоты с помощью специальных расширителей - "Raiser" или "Extender PCI". Они есть разных видов, но мне посоветовали вот такие:
Попутно выяснилось что Fedex,DHL и все скоростные доставщики больше физлицам в РФ не отправляют ничего, продавец прискорбно сообщил об этом и добавил мне к заказу ещё 2 удлинителя(к 20 которым я купил) и отправил всё Почтой россии/EMS, я превратился в ждуна и собрал 4хГПУ систему:
До этого у меня была 980GTX 4 GB и я решил оставить её для тестов рендера с разной памятью. Zotac был самый дорогой, в металлическом корпусе, с диодной подсветкой и т п + ещё одна самая дешевая 1070gtx от нвидии из пластика и с всего 8 пинами питания вместо 16 как у остальных.
Проблемы при сборке:
1. Видеокарты очень длинные (возможно кому то придется вырезать мешающиеся запчасти)
3. Видеокарты лучше втыкать по одной, почему то на двух материнках изначально заработало только во втором слоте ГПУ с одной видеокартой(в биосе стоит по умолчанию первый PCIe)
4. Биос стартует гораздо дольше!
5. Windows может после старта висеть с черными экранами 2-5 минут каждый запуск(проверено на 7ке и 10ке). Просто ждите :)
Ну и вот так это всё примерно выглядит.
Я перешел на 4к рендеринг видео, поэтому мощностей всегда не хватает. Например этот 21 секундный ролик в Corona рендерился почти неделю, это конечно не приемлиемо:
Даже с использованием Vray один кадр с 4к честным дофом или моушен блюром рендерится около 2х часов на моем 44ядерном Xeon, что то типа такого:
GPU на 4х видеокартах рендерит подобные кадры за 25-30 минут. При этом стоимость видеокарт в сумме около 2000$ , а процессор 2500$ Конечно настраивать ГПУ сцены несколько сложнее, некоторые вещи ещё не поддерживаются, но доработка практически любой сцены не занимает много времени.
Первый тест ГПУ я провел на сцене изначально сделанной под ЦПУ :
Превью рендеринг анимации 480*320 с честным дофом занял 3 часа, пока я ездил в магазин за едой на одном компьютере! Это очень круто.(сетка немного глючит изза неверного подбора ФПС, именно за этим такие тесты и прогоняются :)
Остальные видеокарты ушли во второй рабочий комп моему напарнику, и в ожидании удлинителей пока всё останется так как есть, а потом будем добивать рабочий объем до 7 ГПУ :) но это уже в следующем посте, а пока все - итак сильно затянул, не забывайте ставить оценки, если вам понравилось и репостить где надо и не надо.
Компьютер это не просто игрушка, как многие могут подумать. Для кого-то, ПК может стать инструментом для самовыражения, работы или создания развлекательного контента со всеми вытекающими. Но, как это не странно, рабочая система значительно отличается от игровой. На чём же стоит сделать особый акцент – на процессоре или видеокарте?
И так – для начала определимся, в чём разница между игровым и профессиональным ПК. В играх, важна картинка, которою начинает обрисовывать процессор, а видеокарта дорабатывает и показывает её на мониторе. К тому же, именно видеокарта имеет наибольшее влияние на фрейм-рейд и его номинал.
В рабочих приложениях ситуация значительно отличается… Процессор начинает играть куда более значительную роль, а во время рендера, вычислительная мощность CPU становится основополагающей.
Стоит ли говорить, что процессор в работе важнее видеокарты? Нет… Дело в том, что ныне актуальные приложения умеют работать с GPU ничуть не хуже. К тому же, несмотря на меньшую тактовую частоту видео чипа, количество ядер становится главным показателем в GPU. Так что в рабочих задачах важен не процессор и не видеокарта в отдельности, а их тандем.
Процессор работает с визуализацией проекта как в продакшене, так и в пред продакшене значительно хуже. Наличие даже бюджетной видеокарты сократит время рендера по меньше мере в полтора или два раза. Забавный факт – разница между условной GTX1650 Super и RTX2070 Super в работе будет не так велика, как в играх, но что значительно улучшится, так это предпросмотр. Количество кадров, визуализация наложенный цветокорректирующих эффектов будет на порядок лучше.
И того получаем, что рабочий ПК нуждается в многоядерном процессоре (от 6 ядер и 12 потоков) и хотя бы в простенькой видеокарте. Выбор видеокарты на скорость рендера сильно не повлияет, но предпросмотр на старших GPU будет комфортнее. Так что, собирая ПК для монтажа и рендеринга не делайте особый акцент на графическом ускорителе и постарайтесь выдержать баланс.
Подписывайтесь на I Ti , и нашу группу ВКонтакте . Участвуйте в жизни канала и получайте больше актуальных новостей. Познавайте мир технологий вместе с Нами!
Рендер (Рендеринг) — это процесс создания финального изображения или последовательности из изображений на основе двухмерных или трехмерных данных. Данный процесс происходит с использованием компьютерных программ и зачастую сопровождается трудными техническими вычислениями, которые ложатся на вычислительные мощности компьютера или на отдельные его комплектующие части.
Процесс рендеринга так или иначе присутствует в разных сферах профессиональной деятельности, будь то киноиндустрия, индустрия видеоигр или же видеоблогинг. Зачастую, рендер является последним или предпоследним этапом в работе над проектом, после чего работа считается завершенной или же нуждается в небольшой постобработке. Также стоит отметить, что нередко рендером называют не сам процесс рендеринга, а скорее уже завершенный этап данного процесса или его итоговый результат.
Что такое Предварительный рендер?
К предварительному рендеру прибегают тогда, когда скорость не стоит в приоритете, и нужды в интерактивности нет. Данный тип рендера используется чаще всего в киноиндустрии, в работе с анимацией и сложными визуальными эффектами, а также там, где нужен фотореализм и очень высокое качество картинки.
В отличие от Рендера в реальном времени, где основная нагрузка приходилась на графические карты(GPU) В предварительном рендере нагрузка ложится на центральный процессор(ЦП) а скорость рендера зависит от количества ядер, многопоточности и производительности процессора.
Нередко бывает, что время рендера одного кадра занимает несколько часов или даже несколько дней. В данном случаи 3D художникам практически не нужно прибегать к оптимизации, и они могут использовать 3D модели высочайшего качества, а также текстурные карты с очень большим разрешением. В итоге, картинка получается значительно лучше и фото-реалистичней по сравнению с рендером в реальном времени.
1. Scanline (сканлайн).
Сканлайн рендер — выбор тех, кто приоритет отдаст скорости, а не качеству. Именно за счет своей скорости, данный тип рендера зачастую используется в видеоиграх и интерактивных сценах, а также во вьюпортах различных 3D пакетов. При наличие современного видеоадаптера, данный тип рендера может выдавать стабильную и плавную картинку в реальном времени с частотой от 30 кадров в секунду и выше.
Основные типы рендеринга:
В глобальном плане, есть два основных типа рендеринга, главными отличиями которых является скорость, с которой просчитывается и финализируется изображение, а также качество картинки.
3. Radiosity.
Вместо «метода трассировки лучей», в данном методе просчет работает независимо от камеры и является объектно-ориентированным в отличие от метода «пиксель по пикселю». Основная функция “radiosity” заключается в том, чтобы более точно имитировать цвет поверхности путем учета непрямого освещения (отскок рассеянного света).
Преимуществами «radiosity» являются мягкие градуированные тени и цветовые отражения на объекте, идущие от соседних объектов с ярким окрасом.
Достаточно популярна практика использования метода Radiosity и Raytrace вместе для достижения максимально впечатляющих и фотореалистичных рендеров.
Иногда, выражение «рендерить» используют не только в работе с компьютерной 3D графикой, но и при работе с видеофайлами. Процесс рендеринга видео начинается тогда, когда пользователь видеоредактора закончил работу над видеофайлом, выставил все нужные ему параметры, звуковые дорожки и визуальные эффекты. По сути, все что осталось, это соединить все проделанное в один видеофайл. Этот процесс можно сравнить с работой программиста, когда он написал код, после чего все что осталось, это скомпилировать весь код в работающую программу.
Как и у 3D дизайнера, так и у пользователя видеоредактора, процесс рендеринга идет автоматически и без участия пользователя. Все что требуется, это задать некоторые параметры перед стартом.
Скорость рендеринга видео зависит от продолжительности и качества, которое требуется на выходе. В основном, большая часть просчета ложиться на мощность центрального процессора, поэтому, от его производительности и зависит скорость видео-рендеринга.
Ведь видеокарта с рендерингом справится лучше. Нет я понимаю если видеокарта затычка, то она не способна ни на что. Но вот если у человека мощная видеокарта есть и он рендерит ра центральном процессоре, то зачем рендеиить на центральном процессоре я вот не пойму. Просто смотрел тесты рендеринга один и тот же двухминутный ролик с кучей эффектов и цветокоррекцией на процессоре рендрился полчаса, а на видеокарте 13 минут. Так вот щачем использовать процессор для рендеринга, если есть мощная видеокарта, которая лучше справляется с рендерингом? И да в игры поиграть не получится во время рендеринга, так процессор и видеокарта в играх зависит друг от друга и если процессор занят рендером, то он не сможет раскрыть видеокарту в играх. Так зачем использовать процессор для рендера, если видеокарта с рендером справляется лучше?
Тогда почему если поставить допусти rtx 3090, на супер слабый процессор к примеру pentium на 775 сокете, то почему видеокарта не покажет больше 100 фпс в гта 5?
Имя скрыто Искусственный Интеллект (614288) Семён Семёныч, может потому что твой дохлый пентиум не сможет выполнить свои задачи, не? В том же рендеринге видеокарта спокойно будет работать в 100%! Изучи матчасть сначала!
Центральный процессор позволяет закодировать видео с максимальной точностью ценой огромного времени (на видеокартах порой на порядки быстрее). Использование кодеков работающих на графических процессорах значительно ускоряет время кодирования, но может незначительно снизить качество видео.
Во время рендера в игры поиграть и так и так не получится, что если в казуалки какие-то. И нет, центральные процессоры в принципе не занимаются "раскрыванием" графических процессоров, у процессоров есть реальные задачи, а не задача "раскрыть другой процессор".
Есть мнение что более медленный рендеринг на проце делает видео качественнее, чем быстрый на видеокарте
markus mak-frank Искусственный Интеллект (293668) Семён Семёныч, настройка качество в программе для заточенного под рендеринг железа видеокарты ничего не даст. Быстрота рендеринга самой видеокарты обойдёт эти настройки или сделает их минимальными, потому что у неё в мозгу прописано на уровне железа как и что делать. Поэтому и получается быстрее, без оглядки на софт и его настройки.
GPU рендеринг в Octane, Redshift и других рендерерах, использующих ресурсы видеокарты, а не процессора, поначалу вызывает настоящий восторг. Время рендера по сравнению, например, с V-ray уменьшилось в разы, можно в реальном времени оценить результат изменений в сцене, можно быстро посмотреть как все будет выглядить на финальных рендерах и многое другое будет говорить, казалось бы, о несомненном доминировании рендера на видеокарте.
Однако не все так просто! Давайте оставим за рамками вопросы подходит ли GPU рендер под требования производства отдельных видов графики, отсутствие полноценного продакшен GPU рендера и все такое. Представим, что у вас небольшая банда из 3 визуализаторов, вы делаете преимущественно рекламные ролики и вот вы перешли на GPU рендеринг. Давайте посмотрим на 7 проблем, которые вас подстерегают:
- Высокая стоимость видеокарт, дорогостоящее скалирование мощностей
Большинство специализированных GPU решений предполагают, что добавление видеокарт дешевле покупки полного компьютера, но только при покупке специальных серверных шкафов и систем для работы большого количества видеокарт. Сами такие решения недешевы и требуют определенных навыков. Но представим, что мы пошли по пути покупки стандартных компьютеров и установки в них 2-3-4 видеокарт. Сравните стоимость в дальнейшем апгрейда процессора и апгрейда этих 2-3-4 GPU.
2. Маленькое влияние крутых видеокарт на всю систему
В отличие от апгрейда CPU, который окажет влияние на работу всех приложений, видеокарты окажут влияние только на сокращение времени рендера. Их присутствие никак не повлияет на работу ОС и любых 3d приложений для работы с графикой. За исключением, разве что, игр. Но вы же не играете на своем рабочем компьютере, правда? )
Проще говоря, когда вы тратите деньги на GPU в целях работы, это дает вам весьма узкие и специфичные преимущества.
3. Постоянный шум и тепловыделение
Охлаждение практически любой видеокарты гораздо шумнее работы охлаждения CPU. Еще важнее, что постоянная работа 2-3 видеокарт быстро создает в помещении невыносимую температуру.
4. Вопросы масштабирования
Если у вас несколько GPU машин, рано или поздно встает вопрос покупки дополнительных лицензий и возможны проблемы совместимости видеокарт различных производителей и разных моделей. По мере обновления парка столкновение поколений видеокарт неизбежно. А вы же помните что, если в одной системе стоит, например, видеокарта с 8гб памяти и 12гб, то память будет ограничена меньшим значением.
5. Капризы видеокарт и драйверов
Обычное обновление драйвера может обрушить все. Видеокарты в любой системе — основной источник зависаний и сбоев. Любая проблема с обновлением драйверов, их совместимостью, багами и прочими прелестями однозначно ведет к тому, что и в рендере будут проблемы! Нужно ли говорить, что при рендере на CPU этих проблем нет.
6. Ограниченная память
В настоящее время в GTX 1080Ti всего 12 Гб памяти, которые не увеличить вставив планку памяти как в обычных компьютерах. И она не суммируется при установке нескольких карт. Если, например, установить таких 3 карты, то под сцены будет доступно так же 12 Гб. При превышении доступного объема памяти на рендере, все просто крашится. Вариантов как на CPU с использованием файла подкачки, который хоть и замедляет рендер, но все же делает его возможным — нет.
7. Ограниченный круг ПО
Рендер на GPU поддерживает ограниченное количество графических приложений и рендеров, что накладывает свои ограничения.
В завершении, отмечу. что несмотря на недостатки GPU рендеринг имеет и безусловные достоинства, которые значительно перевешивают и существующие недостатки.
Построение изображения.
Как уже говорилось ранее, рендеринг — это один из самых сложных технических этапов, ведь во время рендеринга идут сложные математические вычисления, выполняемые движком рендера. На этом этапе, движок переводит математические данные о сцене в финальное 2D-изображение. Во время процесса идет преобразование 3d-геометрии, текстур и световых данных сцены в объединенную информацию о цветовом значение каждого пикселя в 2D изображение. Другими словами, движок на основе имеющихся у него данных, просчитывает то, каким цветом должен быть окрашено каждый пиксель изображения для получения комплексной, красивой и законченной картинки.
Метод Raycasting.
Алгоритм работает на основе «бросания» лучей как будто с глаз наблюдателя, сквозь каждый пиксель экрана и нахождения ближайшего объекта, который преграждает путь такого луча. Использовав свойства объекта, его материала и освещения сцены, мы получаем нужный цвет пикселя.
Нередко бывает, что «метод трассировки лучей» (raytrace) путают с методом «бросания лучей» (raycasting). Но на самом деле, «raycasting» (метод бросания луча) фактически является упрощенным «raytrace» методом, в котором отсутствует дальнейшая обработка отбившихся или заломленных лучей, а просчитывается только первая поверхность на пути луча.
Что такое Рендеринг в реальном времени?
Рендеринг в реальном времени зачастую широко используется в игровой и интерактивной графике, где изображение должно просчитываться с максимально большой скоростью и выводиться в завершенном виде на дисплей монитора моментально.
Поскольку ключевым фактором в таком типе рендеринга есть интерактивность со стороны пользователя, то изображение приходится просчитывать без задержек и практически в реальном времени, так как невозможно точно предсказать поведение игрока и то, как он будет взаимодействовать с игровой или с интерактивной сценой. Для того, чтоб интерактивная сцена или игра работала плавно без рывков и медлительности, 3D движку приходится рендерить изображение со скоростью не менее 20-25 кадров в секунду. Если скорость рендера будет ниже 20 кадров, то пользователь будет чувствовать дискомфорт от сцены наблюдая рывки и замедленные движения.
Большую роль в создание плавного рендера в играх и интерактивных сценах играет процесс оптимизации. Для того, чтоб добиться желаемой скорости рендера, разработчики применяют разные уловки для снижения нагрузки на рендер движок, пытаясь снизить вынужденное количество просчетов. Сюда входит снижение качества 3д моделей и текстур, а также запись некоторой световой и рельефной информации в заранее запеченные текстурные карты. Также стоит отметить, что основная часть нагрузки при просчете рендера в реальном времени ложиться на специализированное графическое оборудование (видеокарту -GPU), что позволяет снизить нагрузку с центрального процессора (ЦП) и освободить его вычислительные мощности для других задач.
Программы для рендеринга.
Сейчас, на рынке присутствует большое количество рендеринг движков, которые отличаются между собой скоростью, качеством картинки и простотой использования.
Как правило, рендер движки являются встроенными в крупные 3D программы для работы с графикой и имеют огромный потенциал. Среди наиболее популярных 3D программ (пакетов) есть такой софт как:
Многие из этих 3D пакетов имеют уже идущие в комплекте рендер движки. К примеру, рендер-движок Mental Ray присутствует в пакете 3Ds Max. Также, практически любой популярный рендер-движок, можно подключить к большинству известных 3d пакетов. Среди популярных рендер движков есть такие как:
Хотелось бы отметить, что хоть и процесс рендеринга имеет очень сложные математические просчеты, разработчики программ для 3D-рендеринга всячески пытаются избавить 3D-художников от работы со сложной математикой лежащей в основе рендер-программы. Они пытаются предоставить условно-простые для понимания параметрические настройки рендера, также материальные и осветительные наборы и библиотеки.
Многие рендер-движки сыскали славу в определенных сферах работы с 3д графикой. Так, например, “V-ray” имеет большую популярность у архитектурных визуализаторов, из-за наличия большого количества материалов для архитектурной визуализации и в целом, хорошего качества рендера.
Этимология слова «Рендер».
Слово Рендер (Рендеринг) — это англицизм, который зачастую переводится на русский язык словом “ Визуализация ”.
Алгоритм работы:
Идея Raytrace алгоритма заключается в том, что для каждого пикселя на условном экране, от камеры прослеживается один или несколько лучей до ближайшего трехмерного объекта. Затем луч света проходит определенное количество отскоков, в которые может входить отражения или преломления в зависимости от материалов сцены. Цвет каждого пикселя вычисляется алгоритмически на основе взаимодействия светового луча с объектами в его трассируемом пути.
Что такое Рендеринг в 3D?
Чаще всего, когда мы говорим о рендере, то имеем в виду рендеринг в 3D графике. Сразу стоит отметить, что на самом деле в 3D рендере нету трех измерений как таковых, которые мы зачастую можем увидеть в кинотеатре надев специальные очки. Приставка “3D” в название скорее говорит нам о способе создание рендера, который и использует 3-х мерные объекты, созданные в компьютерных программах для 3D моделирования. Проще говоря, в итоге мы все равно получаем 2D изображение или их последовательность (видео) которые создавались (рендерелись) на основе 3-х мерной модели или сцены.
Рендеринг — это один из самых сложных в техническом плане этапов в работе с 3D графикой. Чтоб объяснить эту операцию простым языком, можно привести аналогию с работами фотографов. Для того, чтоб фотография предстала во всей красе, фотографу нужно пройти через некоторые технические этапы, например, проявление пленки или печать на принтере. Примерно такими же техническими этапами и обременены 3d художники, которые для создания итогового изображения проходят этап настройки рендера и сам процесс рендеринга.
2. Raytrace (рейтрейс).
Этот тип рендера создан для тех, кто хочет получить картинку с максимально качественной и детализированной прорисовкой. Рендеринг именно этого типа, имеет очень большую популярность у любителей фотореализма, и стоит отметить что не спроста. Довольно часто с помощью рейтрейс-рендеринга мы можем увидеть потрясающе реалистичные кадры природы и архитектуры, которые отличить от фотографии удастся не каждому, к тому же, нередко именно рейтрейс метод используют в работе над графиков в CG трейлерах или кино.
К сожалению, в угоду качеству, данный алгоритм рендеринга является очень медлительным и пока что не может использоваться в риал-тайм графике.
Методы визуализации.
Большинство рендер движков использует три основных метода вычисления. Каждый из них имеет как свои преимущества, так и недостатки, но все три метода имеют право на своё применение в определенных ситуациях.
Алгоритм работы:
Вместо рендеринга «пикселя по пикселю», алгоритм функционирования «scanline» рендера заключается в том, что он определяет видимую поверхность в 3D графике, и работая по принципу «ряд за рядом», сперва сортирует нужные для рендера полигоны по высшей Y координате, что принадлежит данному полигону, после чего, каждый ряд изображения просчитывается за счет пересечения ряда с полигоном, который является ближайшим к камере. Полигоны, которые больше не являются видимыми, удаляются при переходе одного ряда к другому.
Преимущество данного алгоритма в том, что отсутствует необходимость передачи координат о каждой вершине с основной памяти в рабочую, а транслируются координаты только тех вершин, которые попадают в зону видимости и просчета.
Читайте также: