Что такое шейдеры в игре
Перейти к содержимому

Что такое шейдеры в игре

  • автор:

Шейдеры. Что и как

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

Слово «шейдер» в контексте разработки игр очень популярно, слышать его могли и те, кто игры не делает. Само слово изначально появилось от англ. shading (затенение) — первые шейдеры использовались, чтобы передавать глубину с помощью работы со светом, блеском, тенями и прочим. Со временем шейдеры стали использоваться для совершенно разного вида постобработки и вообще отрисовки примерно всего.

Говоря общими словами, шейдер — это просто программа для графической карты. То есть то, что пишется школьниками на паскале (хипстерами на пайтоне) — это программы для вашего центрального процессора (CPU), а шейдеры — для графического (GPU). Особенность же этих программ выходит из особенностей GPU — они работают параллельно на сотнях маленьких ядех вместо нескольких больших, преимущественно осуществляя математические операции.

GPU-ядрышки резвятся на фоне серьезного CPU

Теперь разберемся, как это все работает.

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

Кубик до и после графичекой карты

Процесс отрисовки

Процесс отрисовки, если его достаточно упростить (что я и сделаю в рамках этой статьи), можно поделить на несколько шагов:

1. Получение входных данных из памяти.
2. Выполнение шейдера вершин.
3. Растеризация.
4. Выполнение шейдера пикселей (фрагментов).
5. Проведение тестов «глубины».
6. Отрисовка на текстуру для экрана.

В первом шаге видеокарта каким-то образом получает данные (вершины, плоскости, текстуры) в свою видеопамять, для нас это сейчас не так важно. Далее происходит конвертация координат относительно объекта в координаты на экране относительно камеры. После происходит растеризация — высчитывается, в каких пикселях уже на экране находится объект. Такие пиксели называют фрагментами. Отличие от пикселей заключается в том, что фрагмент помимо информации о пикселе, содержит еще и некоторую побочную информацию, полученную после растеризации. Для упрощения будем считать, что это все просто пиксели на экране. Далее для каждого пикселя выполняется шейдер фрагмента. А затем проверяется, что расстояние от камеры до фрагмента соответствует высчитанному заранее в нужном направлении в буфере глубины. Проще говоря, проверяется, нет ли перед объектом чего-либо еще, и нужно ли его отрисовывать на итоговое изображение.

Что такое шейдеры? Просто о сложном для начинающих

Что такое шейдеры? Просто о сложном для начинающих

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

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

Отрисовка кадра, довольно рутинная работа на самом деле: нужно взять “геометрию” – полигональные модели (мир, персонаж, оружие и т.д.) и растеризовать. Что такое растеризовать? Вся 3d модель состоит из мельчайших треугольников, которые растеризатор превращает в пиксели (то есть “растеризовать” значит превратить в пиксели). После растеризации взять текстурные данные, параметры освещенности, тумана и тп и рассчитать каждый результирующий пиксель игрового кадра, который будет выведен на экран игроку.

Так вот, центральный процессор (CPU – Central Processing Unit) слишком умный парень, чтобы заставлять его заниматься такой рутиной. Вместо этого логично выделить какой-то аппаратный модуль, который разгрузит CPU, чтобы тот смог заниматься более важным интеллектуальным трудом.

Таким аппаратным модулем стал – графический ускоритель или видеокарта (GPU – Graphics Processing Unit). Теперь CPU подготавливает данные и загружает рутинной работой коллегу. Учитывая, что GPU сейчас это не просто один коллега, это толпа миньонов-ядер, то он с такой работой справляется на раз.

Но мы пока не получили ответа на главный вопрос: Что такое шейдеры? Подождите, я подвожу к этому.

Хорошая, интересная и близкая к фото-реализму графика, требовала от разработчиков видеокарт реализовывать многие алгоритмы на аппаратном уровне. Тени, свет, блики и так далее. Такой подход – с реализацией алгоритмов аппаратно называется “Фиксированный пайплайн или конвейер” и там где требуется качественная графика он теперь не встречается. Его место занял “Программируемый пайплайн”.

Запросы игроков “давайте, завозите хороший графоний! удивляйте!”, толкали разработчиков игр (и производителей видеокарт соответственно) все к более и более сложным алгоритмам. Пока в какой-то момент зашитых аппаратных алгоритмов им стало слишком мало.

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

И вот, наконец, мы дошли до ответа на наш главный вопрос.

“Что такое шейдеры?”

Ше́йдер (англ. shader — затеняющая программа) — это программа для видеокарточки, которая используется в трёхмерной графике для определения окончательных параметров объекта или изображения, может включать в себя описание поглощения и рассеяния света, наложения текстуры, отражения и преломление, затенение, смещение поверхности и множество других параметров.

Что такое шейдеры? Картинка с демонстрацией, того какие эффекты можно получить с помощью шейдеров.

Графический пайплайн

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

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

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

Впервые полноценная поддержка шейдеров появилась в видеокартах серии GeForce 3, но зачатки были реализованы ещё в GeForce256 (в виде Register Combiners).

Виды шейдеров

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

Вершинный шейдер (Vertex Shader)

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

Геометрический шейдер (Geometry Shader)

Геометрические шейдеры способны создавать новую геометрию, и могут использоваться для создания частиц, изменения детализации модели «на лету», создание силуэтов и т.п. В отличие от предыдущего вершинного, способны обработать не только одну вершину, но и целый примитив. Примитивом может быть отрезок (две вершины) и треугольник (три вершины), а при наличии информации о смежных вершинах (англ. adjacency) для треугольного примитива может быть обработано до шести вершин.

Пиксельный шейдер (Pixel/Fragment Shader)

Пиксельными шейдерами выполняют наложение текстур, освещение, и разные текстурные эффекты, такие как отражение, преломление, туман, Bump Mapping и пр. Пиксельные шейдеры также используются для пост-эффектов.

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

Вычислительный шейдер (Compute Shader)

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

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

Вычислительные шейдеры доступны и для разработчиков игр, так как современные графические API предоставляют возможность разработчикам игр использовать их для различных задач (среди которых например: GPU-частицы, skinning и т.д.)

На чем пишут шейдеры?

Изначально шейдеры можно было писать на assembler-like языке, но позже появились шейдерные языки высокого уровня, похожие на язык С, такие как: Cg, GLSL и HLSL.

Такие языки намного проще чем C, ведь задачи решаемые с их помощью, гораздо проще. Система типов в таких языках отражает нужды программистов графики. Поэтому они предоставляют программисту специальные типы данных: матрицы, семплеры, векторы и тп.

RenderMan

Все что мы обсудили выше относится к realtime графике. Но существуют non-realtime графика. В чем разница – realtime – реальное время, тоесть здесь и сейчас – давать 60 кадров в секунду в игре, это процесс реального времени. А вот рендерить комплексный кадр для ультрасовременной анимации по несколько минут это non-realtime. Суть во времени.

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

Супер-реалистичная графика в Sand piper

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

*Видео могут забанить на Youtube, если оно не открывается, погуглите pixar sandpiper – короткометражный мультфильм про храброго песочника очень милый и пушистый. Умилит и продемонстрирует насколько крутой может быть компьютерная графика.

Так вот это RenderMan от фирмы Pixar. Он стал первым языком программирования шейдеров. API RenderMan является фактическим стандартом для профессионального рендеринга, используется во всех работах студии Pixar и не только их.

Полезная информация

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

  • Партиклы (системы частиц),- техника создания потрясающих эффектов в современных видео-играх. Обзорная статья и видео с уроками создания эффектов в Unity3d
  • Для начинающего Unity3d программиста,- если Вы задумываетесь о разработке видеоигр, в качестве профессиональной карьеры или хобби, эта статья содержит отличный набор рекомендаций “с чего начать”, “какие книги читать” и т.д.

Если остались вопросы

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

Понравилась статья? Поделиться с друзьями:

Время от времени пишет статьи о разработке игр и проводит интервью с разработчиками. Сейчас работает engine-progremmer’ом в Larian Studios. Большой поклонник игр Naughty Dog.

Что такое компиляция шейдеров и почему из-за нее компьютерные игры тормозят?

Изображение Elden Ring сцены битвы с рыцарем на коне, сражающимся с драконом.

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

В некоторых играх есть тип заикания, который происходит независимо от того, насколько мощный ваш компьютер или какие настройки вы выбираете. Это вызвано процессом, известным как «компиляция шейдеров», и это становится все более серьезной проблемой в компьютерных играх.

Что такое шейдеры?

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

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

Что такое компиляция шейдеров?

Сборник” — это компьютерный термин, который относится к коду, написанному программистом-человеком, и преобразованию его в машинный код, который может понять конкретный процессор, предназначенный для запуска рассматриваемого программного обеспечения. Так, например, вы можете скомпилировать свой код для работы на процессоре Intel или Яблочный кремний.

То же самое необходимо для GPU. Код шейдера должен быть скомпилирован для работы с рассматриваемой маркой и моделью графического процессора. Если вы меняете графический процессор, обновляете его драйверы или игра получает обновление, шейдеры необходимо компилировать заново.

Почему в некоторых компьютерных играх зависает компиляция шейдеров?

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

Подвисания при компиляции были особенно вопиющими в играх на Unreal Engine 4, широко распространенном и популярном игровом движке. В частности, эти заикания становятся проблемой при запуске игры под DirectX 12. Отчасти это связано с тем, что DirectX 12 меняет способ компиляции шейдеров, предоставляя разработчикам больший контроль. Однако это также означает, что у разработчиков может не быть лучшего способа оптимизировать компиляцию шейдеров с использованием последней и лучшей версии DirectX.

Почему на консолях компиляция шейдеров не тормозит?

Заикание при компиляции шейдеров — проблема, полностью отсутствующая в таких консолях, как PS5 и Xbox Series X|S. Это просто потому, что разработчики точно знают, какое оборудование находится внутри каждой консоли, поэтому они могут предварительно скомпилировать все шейдеры; нет необходимости компилировать их в локальной системе, потому что вы уже знаете, на какой графический процессор вы ориентируетесь.

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

Что вы можете сделать с компиляционным заиканием?

К сожалению, в большинстве случаев разработчикам приходится исправлять проблемы компиляции шейдеров. Хорошая новость заключается в том, что в конечном итоге они справятся с процессом. Unreal Engine 5.1 может включать автоматизированная функция это поможет разработчикам с кэшированием без столь серьезного влияния на производительность.

Список вещей, которые вы можете сделать, чтобы уменьшить заикание, невелик, но некоторые из этих вариантов могут помочь:

  • Если игра позволяет предварительно скомпилировать шейдеры, разрешите это. Это может занять некоторое время, но игра будет работать без заиканий.
  • Если обновление игры не включает исправление зависаний шейдеров, подождите, пока вы не закончите играть, иначе шейдеры могут скомпилироваться снова.
  • Отложите обновления драйверов графического процессора, пока вы не закончите текущую игру, на случай, если она снова вызовет компиляцию.
  • Когда в игре начинается заикание компиляции, нажмите кнопку паузы и подождите, пока оно не закончится, прежде чем играть дальше.
  • Используйте DirectX 11 вместо DirectX 12 версии игры. Часто заикание шейдера уменьшено или отсутствует, хотя в придачу вы откажетесь от функций DX12.
  • Вместо этого играйте в игру на консоли.

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

Похожие посты:

  1. Как загрузить Android 12 и 12L для Google Pixel и других устройств Android
  2. Список пользовательских прошивок Android 11 — неофициально обновите свой телефон Android!
  3. Новое обновление патча Minecraft: Bedrock Edition распространяется на всех игроков
  4. Как установить программное обеспечение из исходного кода . и затем удалить его
  5. Это лучшие игры для вашего телефона Android
  6. Ответы на ваши вопросы о новой консоли Sony в разделе «Ultimate FAQ» для PS5
  7. Как удалить кэш шейдеров DirectX в Windows 11/10
  8. Лучшие компьютерные игры для покупки: фантастические игры для добавления в вашу коллекцию
  9. Лучшие компьютерные игры для покупки 2022: фантастические игры для добавления в вашу коллекцию
  10. Список пользовательских прошивок Android 13: неофициально обновите свой смартфон Android!

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

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

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

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

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

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

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

Рендер

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

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

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

  • многопоточный рендеринг – вычисления выполняются параллельно в несколько потоков, на нескольких ядрах процессора,
  • однопоточный рендеринг – в этом случае вычисления выполняются в одном потоке синхронно.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Что такое рендиринг? Взгляд со стороны художников

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

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

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

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

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

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

  • Что такое шейдеры? – простое объяснение сложных и страшных шейдеров
  • Партиклы — система частиц – Полезный обзор частиц и подборка видео-уроков, по созданию спецэффектов в Unity3d

Послесловие

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

Понравилась статья? Поделиться с друзьями:

Время от времени пишет статьи о разработке игр и проводит интервью с разработчиками. Сейчас работает engine-progremmer’ом в Larian Studios. Большой поклонник игр Naughty Dog.

Помечаю для себя, что еще не рассказано: Forward/Deferred Rendering, хочу сделать обзор Unity 2017, там будет новая фича с возможностью модификации rendering-цикла на C#, очень интересная тема, кмк. Попытаюсь распросить опытных коллег, что они об этом думают 🙂

Добрый день, подскажите пожалуйста какую книгу почитать по паттернам и по разбору чего то как SOLID. Спасибо)

Привет, немного не о рендеринге вопрос 🙂
По Паттернам даже и не знаю что посоветовать, наверное Head first Patterns, потому что оригинал от банды четырёх читать сильно сложнее. А про SOLID – в принципе все на википедии написано, но понимание их приходит с опытом, кмк.

Спасибо, да просто читал статью и решил спросить)
Думал что может еще что то есть о паттернах интересное, а эти 2 книги я уже скачал для изучения)

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

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