Исходный размер 2917x4096

СРАВНИТЕЛЬНЫЙ АНАЛИЗ ШЕЙДЕРНЫХ ПОДХОДОВ К ДЕФОРМИРУЕМОМУ СНЕГУ В REAL-TIME

Данный проект является учебной работой студента Школы дизайна или исследовательской работой преподавателя Школы дизайна. Данный проект не является коммерческим и служит образовательным целям

Аннотация

В работе выполнен сравнительный анализ шейдерных подходов к деформируемому снегу в real-time рендеринге.

Типы шейдеров (вершинные, тесселяционные, геометрические, пиксельные) сопоставлены на единой базовой сцене в Unity URP.

Оптимизированная гибридная сцена достигла 242 FPS при 114 FPS базовой.

Сформулированы рекомендации по выбору и комбинированию подходов.

Описание предметного поля

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

По способу получения этих кадров рендеринг принято делить в литературе на два основных типа: «в реальном времени» (real-time) и «офлайн рендеринг» (pre-render, offline-render) [1]

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

В зависимости от степени гравитационного линзирования изображения, для создания одного изображения в формате IMAX при работе на десяти процессорных ядрах обычно требуется от 30 минут до нескольких часов

Так в своей работе пишет команда ученых, занимавшаяся расчетом преломления света от гравитационного линзирования для фильма «Интерстеллар». Такой рендеринг требует значительных вычислительных ресурсов и объёмов данных.

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

0

Рендеринг в реальном времени – быстрая генерация изображения на компьютере. Часто действия зрителя могут немедленно влиять на содержание следующего кадра.

This cycle of reaction and rendering happens at a rapid enough rate that the viewer does not see individual images

Этот цикл реакции и рендеринга происходит с такой скоростью, что зритель не видит отдельных изображений

Tomas Akenine-Moller
Real-Time Rendering

В этом случае скорость отображения измеряется в кадрах в секунду (frame per second или FPS). При 1 FPS интерактивность почти отсутствует.

Исходный размер 480x268

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

Ощущение отклика появляется примерно с 6 FPS. В играх стремятся достичь 30, 60 или более FPS. Для 60 FPS на отрисовку одного кадра есть примерно 16,7 миллисекунды, это и отличает рендеринг в реальном времени.

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

Исходный размер 1005x635

график не отражает математическую функции зависимости, а демонстрирует порядок значений

Шейдеры

Термин «шейдер» (Shader) в компьютерной графике появился в 1980‑е годы в компании Pixar в рамках языка описания материалов RenderMan Shading Language (RSL) — специализированного языка программирования, предназначенного для описания внешнего вида поверхностей, свет, объём.

Шейдеры RSL выполнялись на процессоре (CPU) в офлайн‑конвейере. [3]

В 1987 году была представлена видеокарта IBM 8514/A — одна из первых графических плат, реализующих так называемый конвейер с фиксированной функциональностью (fixed-function pipeline).

IBM 8514/A

Это означает, что видеокарта способна выполнять только те операции, которые изначально заложены её производителем.

Можно было нарисовать треугольник, наложить текстуру или выполнить простые операции с освещением, чем и пользовались разработчики игр для real-time рендеринга. Но тогда еще не было возможности создать свой собственный эффект. [4]

Исходный размер 640x400

«Mission», Loriciels, 1987

Это продолжалось до 1999 года. Разработчики могли пользоваться исключительно фиксированным конвейером. Трансформация вершин, освещение, растеризация были жестко заданы и можно было только настраивать их отдельные параметры. [5]

«Resident Evil 2», Capcom R&D Division 4, 1998

В августе 1999 года выходит видеокарта GeForce 256

Исходный размер 1920x1080

Nvidia GeForce 256

Был оснащён аппаратным блоком преобразований и освещения (Transform and Lighting, T&L) [6].

Данный модуль позволил перенести вычисление геометрических преобразований и модели освещения с центрального процессора на графический, что существенно повысило пропускную способность графического конвейера при сохранении архитектуры с фиксированным функционалом (fixed-function pipeline).

«Deus Ex», Ion Storm, 2000

«Counter-Strike», Valve, 2000

Уже в феврале 2001 года выходит GeForce 3, а вместе с ней и программируемые шейдеры: Vertex Shader 1.1 и Pixel Shader 1.1 [7].

С этого момента конвейер становится программируемым. DirectX 8, а затем OpenGL 2.0 с GLSL закрепили модель шейдеров как основу пайплайна в 2004 году.

Исходный размер 1280x720

«Resident evil 4», Capcom, 2005

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

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

Исходный размер 1554x770

Схема последовательности этапов конвейера

СРАВНИТЕЛЬНЫЙ АНАЛИЗ ШЕЙДЕРНЫХ ПОДХОДОВ К ДЕФОРМИРУЕМОМУ СНЕГУ В REAL-TIME
Проект создан 26.03.2026
Глава:
1
2
3
4