Используемые данные и их представление
Один метод построения полигональных изображений Василий Терешков Построение изображений трехмерных объектов при помощи компьютера – тема, которая издавна привлекала особое внимание программистов и разработчиков аппаратных средств. С появлением эффективных графических библиотек (Direct3D, OpenGL и т.п.) и специализированных видеокарт интерес к математическим основам машинной графики снизился, поскольку у программистов исчезла необходимость самостоятельно создавать алгоритмы построения изображений. В этом одна из сторон печальной тенденции превращения программирования из искусства в ремесло. Все же немало есть и тех, кто захочет не только получить результат, но и узнать, что лежит между интерфейсом графической библиотеки и готовой картинкой на экране. Для них и предназначена эта статья, в которой мы постараемся изложить суть одного метода построения трехмерных изображений, быть может, не самого эффективного. Терминология Прежде поясним некоторые математические понятия, которыми будем пользоваться в дальнейшем. Мировая система координат – в нашем случае пространственная прямоугольная система координат (СК), две оси которой (X и Y) направлены по сторонам экрана монитора, а третья – от наблюдателя. Экранная система координат – СК в плоскости экрана, ее оси совпадают с осями X и Y мировой СК. Система координат модели – СК, относительно которой в файле заданы координаты всех вершин модели, изображение которой строится. Вектор – направленный отрезок, его положение будем задавать либо координатами начала и конца, либо их разностями (собственно координатами вектора). Длина (модуль) вектора рассчитывается как квадратный корень из суммы квадратов его координат – это следствие теоремы Пифагора. Скалярное произведение векторов – число p, определяемое следующим образом:
Определитель – алгебраическое выражение, записанное в особой форме. Мы будем использовать определители 3-го порядка:
Существует мнемоническое правило вычисления определителей 3-го порядка – так называемое правило Саррюса, с которым можно ознакомиться в специальной литературе. Используемые данные и их представление Возможно, вы обратили внимание на слово «полигональный» в заголовке статьи. Поясним его смысл. «Полигон» в переводе на русский язык означает «многоугольник», а «полигональный» – «составленный из многоугольников». В применении к машинной графике это означает, что для построения изображения произвольного тела сначала создается его модель – сложный многогранник, все грани которого представляют собой многоугольники, как правило, простейшие, - треугольники. В файле с информацией о модели должны быть каким-либо образом заданы координаты всех вершин (их число может достигать нескольких тысяч) и порядок их соединения. Если предполагается наложение текстур, то каждой вершине должны быть приписаны еще два числа – текстурные координаты u, v. Их смысл в следующем. Текстура представляет собой плоское растровое изображение, которое должно быть наложено на пространственную модель без разрывов. Это предполагает неравномерную деформацию текстуры – ее сжатие и растяжение. Но одновременно требуется, чтобы текстура не «сползла», то есть во всех вершинах модели оказались строго определенные точки растра. Эти точки и задаются координатами u, v в системе координат, связанной с текстурой. Хорошей механической аналогией может послужить кусок резины, натягиваемый на каркас и прикрепляемый булавками в вершинах каркаса. С технической точки зрения хранить все эти данные удобнее всего в двоичном файле, содержащем три массива:
Отдельно требуется указать ракурс, под которым будет видна модель. Наиболее удобным для пользователя было бы задание оси вращения в виде вектора и угла поворота вокруг нее. Однако значительно проще реализовать последовательные повороты по трем углам: вокруг оси X, вокруг оси Y’, в которую перешла ось Y при первом повороте, вокруг оси Z’’, в которую перешла ось Z’ при втором повороте.
Популярное: Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... Почему стероиды повышают давление?: Основных причин три... Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной... Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе... ![]() ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (180)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |