Отображение 3D-моделей на экране

Как на двумерном экране показать трёхмерную модель? В этом вопросе столько математики, что может показаться, будто это какая-то магия.

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

Чтобы компьютер понял, как это всё отобразить, нужен наблюдатель, чьими глазами он будет смотреть на сцену, — камера. А чтобы мы могли хоть что-то разглядеть, нужен источник света.

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

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

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

Всё это транслируется на плоскость проекции (англ. viewport) — двумерный квадрат в трёхмерном пространстве. Эта плоскость уже используется для того, чтобы составить изображение, которое будет показано на мониторе.

Процесс перевода 3D-сцены в 2D-изображение называется рендерингом (англ. rendering) или отрисовкой.

https://www.facebook.com/SilakoffProduction
https://www.facebook.com/SilakoffProduction
11
Начать дискуссию