качество рендеринга что такое

Что такое рендеринг? И что такое рендер? Словарь разработчиков компьютерных игр!

В продолжении ликбеза по компьютерной графике как для программистов, так и для художников хочу поговорить о том что такое рендеринг. Вопрос не так сложен как кажется, под катом подробное и доступное объяснение!

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

Что такое рендеринг? (для программистов)

Итак, Википедия дает такое определение: Ре́ндеринг (англ. rendering — «визуализация») — термин в компьютерной графике, обозначающий процесс получения изображения по модели с помощью компьютерной программы.

Довольно неплохое определение, продолжим с ним. Рендеринг — это визуализация. В компьютерной графике и 3д-художники и программисты под рендерингом понимают создание плоской картинки — цифрового растрового изображения из 3д сцены.
То есть, неформальный ответ на наш вопрос «Что такое рендеринг?» — это получение 2д картинки (на экране или в файле не важно). А компьютерная программа, производящая рендеринг, называется рендером (англ. render) или рендерером (англ. renderer).

Рендер

В свою очередь словом «рендер» называют чаще всего результат рендеринга. Но иногда и процесс называют так же (просто в английском глагол — render перенесся в русский, он короче и удобнее). Вы, наверняка, встречали различные картинки в интернете, с подписью «Угадай рендер или фото?». Имеется ввиду это 3D-визуализация или реальная фотография (уж настолько компьютерная графика продвинулась, что порой и не разберешься).

Виды рендеринга

В зависимости от возможности сделать вычисления параллельными существуют:

Существует много алгоритмов рендеринга, но все их можно разделить на две группы по принципу получения изображения: растеризация 3д моделей и трасировка лучей. Оба способа используются в видеоиграх. Но трасировка лучей чаще используется не для получения изображений в режиме реального времени, а для подготовки так называемых лайтмапов — световых карт, которые предрасчитываются во время разработки, а после результаты предрасчета используются во время выполнения.

В чем суть методов? Как работает растеризация и трасировка лучей? Начнем с растеризация.

Растеризация полигональной модели

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

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

*возможно следующей статьёй будет обещанный мной разбор графического пайплайна, напишите в комментариях нужен ли такой разбор, мне будет приятно и полезно узнать скольким людям интересно это всё. Я сделал отдельную страничку где есть список разобранных тем и будущих — Для разработчиков игр

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

Сложная модель персонажа состоит из мельчайших треугольников и растеризатор генерирует из неё вполне достоверную картинку. Почему тогда заморачиваться с трассировкой лучей? Почему не растеризовать и все? А смысл вот в чем, растеризатор знает только своё рутинное дело, треугольники — в пиксели. Он ничего не знает об объектах рядом с треугольником.

А это значит что все физические процессы которые происходят в реальном мире он учесть не в состоянии. Эти процессы прямым образом влияют на изображение. Отражения, рефлексы, тени, подповерхностное рассеивание и так далее! Все без чего мы будем видеть просто пластмассовые модельки в вакууме…
А игроки хотят графоний! Игрокам нужен фотореализм!

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

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

Трасировка лучей (англ. ray tracing)

Помните о корпускулярно волновом дуализме? Напомню в чем суть: свет ведёт себя и как волны и как поток частиц — фотонов. Так вот трассировка (от англ «trace» прослеживать путь), это симуляция лучей света, грубо говоря. Но трассирование каждого луча света в сцене непрактично и занимает неприемлемо долгое время.

Мы ограничимся относительно малым количеством, и будем трассировать лучи по нужным нам направлениям.
А какие направления нам нужны? Нам надо определять какие цвета будут иметь пиксели в результирующей картинке. Тоесть количество лучей мы знаем, оно равно количеству пикселей в изображении.

Что с направлением? Все просто, мы будем трассировать лучи в соответствии с точкой наблюдения (то как наша виртуальная камера направлена). Луч встретится в какой-то точке с объектом сцены (если не встретится, значит там темный пиксель или пиксель неба из скайбокса, например).

При встрече с объектом луч не прекращает своё распространение, а разделяется на три луча-компонента, каждый из которых вносит свой вклад в цвет пикселя на двумерном экране: отражённый, теневой и преломлённый. Количество таких компонентов определяет глубину трассировки и влияет на качество и фотореалистичность изображения. Благодаря своим концептуальным особенностям, метод позволяет получить очень фотореалистичные изображения, однако из-за большой ресурсоёмкости процесс визуализации занимает значительное время.

Рендеринг для художников

Но рендеринг это не только программная визуализация! Хитрые художники тоже используют его. Так что такое рендеринг с точки зрения художника? Примерно то же самое, что и для программистов, только концепт-художники выполняют его сами. Руками. Точно так же как рендерер в видео-игре или V-ray в Maya художники учитывают освещение, подповерхностное рассеивание, туман и др. факторы, влияющие на конечный цвет поверхности.

качество рендеринга что такое

К примеру картинка выше, поэтапно прорабатывается таким образом: Грубый скетч — Лайн — Цвет — Объем — Рендер материалов.

Рендер материалов включает в себя текстурирование, проработку бликов — металлы, например, чаще всего очень гладкие поверхности, которые имеют четкие блики на гранях. Помимо всего этого художники сталкиваются с растеризацией векторной графики, это примерно то же самое, что и растеризация 3д-модели.

Растеризация векторной графики

Суть примерно такая же, есть данные 2д кривых, это те контуры, которыми заданы объекты. У нас есть конечное растровое изображение и растеризатор переводит данные кривых в пиксели. После этого у нас нет возможности масштабировать картинку без потери качества.

Читайте дальше

Статьи из рубрики «Ликбез для начинающих разработчиков игр«, скорее всего окажутся очень для Вас полезными, позвольте-с отрекомендовать:

Послесловие

В этой статье, я надеюсь, вы осили столько букв, вы получили представление о том, что такое рендеринг, какие виды рендеринга существуют. Если какие-то вопросы остались — смело задавайте их в комментариях, я обязательно отвечу. Буду благодарен за уточнения и указания на какие-то неточности и ошибки.

Дорогой друг! Тебе есть что сказать? Понравился пост? Не стесняйся! Оставь комментарий, нам очень важно ТВОЕ мнение

Источник

Что такое рендеринг? И что такое рендер? Словарь разработчиков компьютерных игр!

качество рендеринга что такое

В продолжении ликбеза по компьютерной графике как для программистов, так и для художников хочу поговорить о том что такое рендеринг. Вопрос не так сложен как кажется, под катом подробное и доступное объяснение!

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

Что такое рендеринг? (для программистов)

Итак, Википедия дает такое определение: Ре́ндеринг (англ. rendering — «визуализация») — термин в компьютерной графике, обозначающий процесс получения изображения по модели с помощью компьютерной программы.

Довольно неплохое определение, продолжим с ним. Рендеринг – это визуализация. В компьютерной графике и 3д-художники и программисты под рендерингом понимают создание плоской картинки — цифрового растрового изображения из 3д сцены.
То есть, неформальный ответ на наш вопрос “Что такое рендеринг?” – это получение 2д картинки (на экране или в файле не важно). А компьютерная программа, производящая рендеринг, называется рендером (англ. render) или рендерером (англ. renderer).

Рендер

В свою очередь словом “рендер” называют чаще всего результат рендеринга. Но иногда и процесс называют так же (просто в английском глагол – render перенесся в русский, он короче и удобнее). Вы, наверняка, встречали различные картинки в интернете, с подписью “Угадай рендер или фото?”. Имеется ввиду это 3D-визуализация или реальная фотография (уж настолько компьютерная графика продвинулась, что порой и не разберешься).

Виды рендеринга

В зависимости от возможности сделать вычисления параллельными существуют:

Существует много алгоритмов рендеринга, но все их можно разделить на две группы по принципу получения изображения: растеризация 3д моделей и трасировка лучей. Оба способа используются в видеоиграх. Но трасировка лучей чаще используется не для получения изображений в режиме реального времени, а для подготовки так называемых лайтмапов – световых карт, которые предрасчитываются во время разработки, а после результаты предрасчета используются во время выполнения.

В чем суть методов? Как работает растеризация и трасировка лучей? Начнем с растеризация.

Растеризация полигональной модели

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

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

*возможно следующей статьёй будет обещанный мной разбор графического пайплайна, напишите в комментариях нужен ли такой разбор, мне будет приятно и полезно узнать скольким людям интересно это всё. Я сделал отдельную страничку где есть список разобранных тем и будущих – Для разработчиков игр

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

Сложная модель персонажа состоит из мельчайших треугольников и растеризатор генерирует из неё вполне достоверную картинку. Почему тогда заморачиваться с трассировкой лучей? Почему не растеризовать и все? А смысл вот в чем, растеризатор знает только своё рутинное дело, треугольники – в пиксели. Он ничего не знает об объектах рядом с треугольником.

А это значит что все физические процессы которые происходят в реальном мире он учесть не в состоянии. Эти процессы прямым образом влияют на изображение. Отражения, рефлексы, тени, подповерхностное рассеивание и так далее! Все без чего мы будем видеть просто пластмассовые модельки в вакууме…
А игроки хотят графоний! Игрокам нужен фотореализм!

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

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

Трасировка лучей (англ. ray tracing)

Помните о корпускулярно волновом дуализме? Напомню в чем суть: свет ведёт себя и как волны и как поток частиц – фотонов. Так вот трассировка (от англ “trace” прослеживать путь), это симуляция лучей света, грубо говоря. Но трассирование каждого луча света в сцене непрактично и занимает неприемлемо долгое время.

Мы ограничимся относительно малым количеством, и будем трассировать лучи по нужным нам направлениям.
А какие направления нам нужны? Нам надо определять какие цвета будут иметь пиксели в результирующей картинке. Тоесть количество лучей мы знаем, оно равно количеству пикселей в изображении.

Что с направлением? Все просто, мы будем трассировать лучи в соответствии с точкой наблюдения (то как наша виртуальная камера направлена). Луч встретится в какой-то точке с объектом сцены (если не встретится, значит там темный пиксель или пиксель неба из скайбокса, например).

При встрече с объектом луч не прекращает своё распространение, а разделяется на три луча-компонента, каждый из которых вносит свой вклад в цвет пикселя на двумерном экране: отражённый, теневой и преломлённый. Количество таких компонентов определяет глубину трассировки и влияет на качество и фотореалистичность изображения. Благодаря своим концептуальным особенностям, метод позволяет получить очень фотореалистичные изображения, однако из-за большой ресурсоёмкости процесс визуализации занимает значительное время.

Рендеринг для художников

Но рендеринг это не только программная визуализация! Хитрые художники тоже используют его. Так что такое рендеринг с точки зрения художника? Примерно то же самое, что и для программистов, только концепт-художники выполняют его сами. Руками. Точно так же как рендерер в видео-игре или V-ray в Maya художники учитывают освещение, подповерхностное рассеивание, туман и др. факторы, влияющие на конечный цвет поверхности.

качество рендеринга что такое

К примеру картинка выше, поэтапно прорабатывается таким образом: Грубый скетч – Лайн – Цвет – Объем – Рендер материалов.

Рендер материалов включает в себя текстурирование, проработку бликов – металлы, например, чаще всего очень гладкие поверхности, которые имеют четкие блики на гранях. Помимо всего этого художники сталкиваются с растеризацией векторной графики, это примерно то же самое, что и растеризация 3д-модели.

Растеризация векторной графики

Суть примерно такая же, есть данные 2д кривых, это те контуры, которыми заданы объекты. У нас есть конечное растровое изображение и растеризатор переводит данные кривых в пиксели. После этого у нас нет возможности масштабировать картинку без потери качества.

Читайте дальше

Статьи из рубрики “Ликбез для начинающих разработчиков игр“, скорее всего окажутся очень для Вас полезными, позвольте-с отрекомендовать:

Послесловие

В этой статье, я надеюсь, вы осили столько букв, вы получили представление о том, что такое рендеринг, какие виды рендеринга существуют. Если какие-то вопросы остались – смело задавайте их в комментариях, я обязательно отвечу. Буду благодарен за уточнения и указания на какие-то неточности и ошибки.

Источник

ВЫСОКИЕ ТЕХНОЛОГИИ


Рендеринг 3d-моделей

Что такое рендеринг?

Рендеринг – это процесс в ходе которого получается фотореалистичное 2d изображение, сделанное по модели или по другим данным, например, описанию геометрических данных объектов, положении точки наблюдателя, описанию освещения и т.д., (от англ. rendering — «визуализация»). Все действия осуществляются с помощью специальных компьютерных программ.

Вот, например, этот снимок, как вы считаете — это фотография или рендеринг? Ответ вас будет ждать в конце статьи, а пока продолжим.

качество рендеринга что такое

Область применения

Своё применение рендеринг нашел во многих областях:
— кино индустрия;
— анимация;
— видеоигры;
— реклама;
— дизайн интерьеров;
— дизайн ювелирных украшений;
— создание мебельных каталогов;
— ремонт и строительство домов;
— картографии;
— промышленность и военное производство (создание деталей, рам и различных конструкций) и т.д.

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

Как это происходит

Чаще всего строится полигональная модель, все видели подобную модель в виде сетки. Все поверхности в данной модели представляются двухмерными примитивами – треугольниками, четырехугольниками и т.д. Эти примитивы называются полигоны.

качество рендеринга что такое

Также возможно использовать поверхностное моделирование и твердотельное моделирование в различных CAD/CAM-системах.

Такая модель несет только лишь математическую модель, которая оговаривает ее геометрию и ничего больше. Для придания цвета на эти полигоны накладывается текстура. Текстура представляет собой обычный рисунок или фотографию, которые и накладываются на модель.

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

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

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

качество рендеринга что такое

Таким образом за рендерингом скрываются определенные математические формулы векторной математики, геометрии и т.д. и огромный расчет.

Создание фотореалистичного изображения модели состоит из 6 этапов и рендеринг — это 5 этап.

Моделирование или создание объемных объектов. На этом этапе используются очень много различных способов. Самые популярные: использование кривых и полигонов.

Текстурирование – это создание текстуры и материалов поверхностей моделей. Это целое искусство и отдельная отрасль в производстве.

Оснастка – по-другому риггинг. Процесс создания скелета и мышечной массы объекта для дальнейшей анимации.

Анимация – оживление созданного объекта.

Рендеринг – непосредственная визуализация объекта и запись.

Композитинг – объединения всех созданных объектов в одну сцену.

Методы, применяемые к объектам, зависят от выбранного процесса рендеринга:

— Сканирование строк (scanline rendering) – при таком рендеринге объекты визуализируются горизонтально построчно. Он применяется для создания видимой поверхности. Широко применяется в кино индустрии. Так как кадр появляется на экране доли секунды и качество и реалистичности при этом не столь важно. Главный недостаток – для создания теней приходится прибегать к другим методам. На нем работают: Pixar’s RenderMan и Electric Image’s Camera.

— Трассировка лучей (ray tracing rendering) – при таком методе отслеживается взаимодействие световых лучей с поверхностью предмета. Применяется в обработке фотографии и создании фото 3D моделей. Главный недостаток – большие временные затраты. На нем работают: Softimage, NewTek LightWave или Discreet 3D Studio MAX.

Основной этап визуализации – ретуширование. Его используют для получения изображения высокого качества. Он использует ряд методов для визуализации поверхности при различном освещении:
— отражение света;
— поглощение света;
— рассеивание света;
— смешивание различных источников освещения.

Программы для визуализации делятся на два вида: Real-Time и Non-Real-Time. Выбор зависит от поставленных целей и конечного результата.

Real-Time

Такие рендеры (программы) работают на методе сканирования строк. Они были созданы для быстроты обработки, но при этом значительно теряется качество изображения. Эти программы были созданы для создания игр, симуляторов времени и включены во многие пакеты 3d моделирования. Для достижения ими высокого качества приходится одну и туже сцену просчитывать несколько раз с различных точек видения. Применяются дополнительные трюки.

Non-Real-Time

Эти рендеры используют для создания фотографий очень высокого качества. Их основа метод трассировки лучей и процесс нацелен на результат, но занимает длительное время. Они позволяют создавать изображения высочайшего качества, когда можно разглядеть все подробности в надежде найти недостатки. Они могут обрабатывать большие сложные сцены с различным освещением.

Большинство современных систем используют оба метода. Выбирая самостоятельно в зависимости от поставленной задачи.

Рендеринг сегодня

Индустрия рендеринга не стоит на месте, а постоянно развивается. Создаются все новые и более совершенные программы, которым требуется все меньше и меньше времени на визуализацию объектов. В скором времени, на этот процесс будут уходить секунды. Сама работа с программными пакетами становится гораздо проще, буквально на уровне интуиции. Уже не требуется сложная многочасовая настройка компонентов. Сегодня можно поместить объект в сцену, выбрать материалы для поверхностей и уже получите неплохой результат.

Яркий пример применения рендеринга – это каталог мебели и аксессуаров компании IКЕА. 75% продуктов и 35% интерьеров в каталоге это 100% рендеринг. Но и остальная часть каталога только на четверть состоит из реальных фотографий без добавления визуализации.

качество рендеринга что такое

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

Разработка

Для визуализации моделей создано более 500 различных программ. Часть из них включены в большие пакеты 3d моделирования, а остальные являются самостоятельными программами выполняющие различные задачи.

Если провести краткий анализ основных программ, то можно выделить следующие:

— Wavefront Maya – лучшая программа для анимации мягких тел, с помощью ее можно создать очень реалистичные ткани и текстуру воды.

— NewTek LightWave – считается самой быстрой и точной. Применяет 96-битную глубину цвета, осуществляет анимацию методом Radiosity.

— Pixar RenderMan – это самая быстрая программа для рендеринга, ее повсеместно используют в кино индустрии. Но она предназначена только для визуализации, все остальные процессы придется делать в других программах.

— Discreet 3D Studio MAX – это основа и рабочая площадка для всей 3d анимации. Вы можете добавлять в нее необходимые функции для решения поставленных задач.

Сегодня модули рендеринга и визуализации входят в состав современных инженерных CAD/CAM-систем, применяемых для автоматизированного проектирования изделий и технологической подготовки производства к их изготовлению. Таким образом в данных пакетах можно спроектировать изделие, сделать рендеринг, спроектировать управляющие программы для станков с ЧПУ и начать их изготовление на станке и всё это в рамках одной программы. Пример такого модуля CAD/CAM-системы можно посмотреть здесь.

А вот уже и ответ, думаю, если статья была бы о гонках, то никто бы и не догадался, что это был рендеринг, за которым скрывается обычная 3d-модель, а не реальная фотография из машины пилота.

качество рендеринга что такое

Заключение

За прошедшие 15 лет рендеринг превратился в крупную и постоянно развивающуюся индустрию. Это уже давно не просто красивое изображение, а серьезный и крупномасштабный инструмент, используемый во многих отраслях. Его развитие позволило сократить затраты труда и энергоресурсов, представить будущий объект еще на первоначальном этапе и даже заглянуть в космические дали — это многого стоит.

Источник


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *