Основы программирования трехмерной графики в DirectX. Часть II: Точки, вершины и модели

Очевидно, что для представления любой точки в трехмерной плоскости нужно задать координаты по всем трем осям X, Y и Z. Для представления на экране монитора примитива (треугольник, квадрат, прямоугольник, ромб и так далее) необходимо задать N-количество точек, соединив которые между собой вы получите заданный примитив. То есть с помощью определенного количества точек в пространстве можно нарисовать примитив любой формы.

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

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

Модель

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

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