Сегодня вашему вниманию хочу предложить статью о всевозможных рендерерах, используемых в 3D пакетах. Статья через чур техническая и тяжеловата для восприятия, но дает общие представления о том, что происходит при рендере.
Для многих людей слово "рендеринг" прочно ассоциируется с другим: "ожидание". Для небольшого же количества людей слово "рендеринг" означает комплекс математических операций с широким диапазоном возможных результатов. Эта статья, я надеюсь, поможет людям, далеким от программирования, понять, что же происходит внутри компьютера во время рендеринга. Мы рассмотрим несколько способов рендеринга и примеры их применения на практике.
Большинство 3D моделлеров, художников и аниматоров плохо представляют как проходит рендеринг, и чем занимается программа рендерер в процессе работы. Программа рендерер рассматривает 3D сцену с математической точки зрения, вычисляет, как должна выглядеть сцена и затем создает итоговое изображение. Мы все знаем, что разные программы используют разные технологии рендеринга – трассировка лучей (raytrasing), ретуширование (shading) и сглаживание контурных неровностей (antialiasing), для достижения максимальной похожести искусственного изображения на реальную жизнь. Мы также прекрасно знаем, что чем сложнее сцена и выше качество выходного изображения, тем дольше длится процесс рендеринга. Возможно, вы также слышали такой термин, как "потоковый рендеринг" (rendering pipeline). Но в сущности, мало кто задумывался, каким образом происходит процесс рендеринга и от чего зависит конечный результат. Я думаю, вам интересно будет узнать об особенностях различных рендереров, их возможностях и различиях.
Начнем с цифр – вы наверное не догадывались, но существует более 500 (пятьсот) различных программ для рендеринга. Одни из них встроены в пакеты 3D моделирования, другие поставляются как отдельные продукты, одни могут выполнять огромное число задач, другие созданы для специфических целей. Существуют рендереры, созданный специально для определенных индустрий (например, для военных целей), для определенного оборудования (Амига), для определенных операционных систем (Линукс), и других, иногда самых неожиданных целей (3D аудио). Кроме того, существует некоторое количество бесплатных рендереров, созданных энтузиастами.
Вы спросите зачем столько различных программ одинаковой направленности? Одна из причин - это то, что люди и компании создают подобные программы уже на протяжении 15 лет, кроме того, существует более дюжины платформ, способных поддерживать процесс рендеринга. Посчитаем: если каждая платформа имеет 2-3 real-time рендерера (в основном для игр), 2-3 non-real-time рендерера (коммерческие 3D пакеты), 2-3 специализированных рендерера (созданных для военной, либо другой индустрии), добавим сюда неопределенное количество свободно распространяемых рендереров (чаще всего написанных студентами, хакерами и начинающими программистами) – вот мы и приблизились к реальному числу.
Совершенно необязательно знать про все эти системы рендеринга. Но в зависимости от работы, которую вам необходимо выполнить, вам возможно понадобятся некоторые знания, касающиеся различных программ рендеринга. Например, если вы разрабатываете сцены для игровой индустрии, вам необходимо знать возможности real-time рендерера, на основе которого будет работать игра.
Большинство рендереров делятся на две категории: real-time и non-real-time. Кроме того, все рендереры можно разделить по принципу используемых технологий – scan-line и raytrace. Мы рассмотрим основных представителей этих категорий и их различия, чтобы вы смогли самостоятельно выбрать наиболее для вас подходящий.