
- •Какова выводная схема для получения матрицы соответствующей операции поворота трехмерной точки вокруг заданной оси?
- •Каковы матрицы вращения модели вокруг осей Ox, Oy, Oz?
- •Как получить матрицу соответствующей операции поворота модели вокруг оси отличной от Декартовых (Ox, Oy, Oz)?
- •Какова выводная схема для получения матрицы соответствующей операции масштабирования?
- •Что такое матрица масштабирования?
- •Что такое однородные координаты?
- •Как найти пересечение луча, по направлению заданного вектора и треугольника?
- •Как можно задать матрицу расположения модели объекта сцены с учетом расположения «камеры»?
- •Интерполяция (определение, для каких целей используется в кг)
- •Дать определение понятия полигональная модель (вершины, полигоны, полигональные поверхности, каркасные модели).
- •Алгоритм z-буфера.
- •Алгоритмы разделения пространства.
- •Алгоритм морфируемой анимации
- •Алгоритм скелетной анимации
- •Алгоритм удаления невидимых граней полигональной модели основанный на использовании так называемых «лицевых» и «нелицевых» граней полигональной модели.
- •Формат файлов хранения полигональных моделей DirectX.
- •Какие существуют технологии получения полигональных моделей (3ds Max, PhotoModeler, 3dRipper)?
Формат файлов хранения полигональных моделей DirectX.
Формат X файла — формат файла для хранения 3D объектов, созданный компанией Microsoft.
Этот формат хранит информацию о геометрии 3D объекта (координаты вершин и координаты нормалей), текстурные координаты, описание материалов, пути и названия к текстурам, которые используются. Хранится иерархия объектов, хранится анимация, и хранятся привязки вершин к «костям» с описанием весов. В X файле может отсутствовать какая-либо информация об объекте (например в X файле могут содержаться только координаты вершин).
X файл может быть текстовым либо бинарным. В начале X файла идёт заголовок, затем идёт описание информации об объекте. Описание информации может быть в произвольном порядке, но заголовок всегда идёт в самом начале.
Заголовок всегда в текстовом виде и обычно выглядит так: xof 0303txt 0032
Далее, обычно, идёт описание Templates. Это своеобразная подсказка, чтобы лучше понять какие данные и в каком виде представлены. Вообще порядок описания данных в X файле может быть произвольным. После описания Templates обычно следует описание самого объекта (может следовать и анимация). Сам объект может быть простым или составным. Для того чтобы хранить сложные составные объекты разработали иерархию связей, через которую можно понять, какой объект с каким связан или от какого зависим. Эти данные используются например в скелетной анимации. Если двигать «кость» плеча, то должны двигаться и все зависимые от неё «кости» (объекты) — это вся рука. В иерархии связь так и хранится в явном виде. На вершине находится плечо, затем предплечье, затем кисть, далее от кости идёт несколько пальцев, которые друг от друга независимы, но зависимы от кисти, и далее следуют фаланги пальца.
В X-файле иерархия описана через ключевое слово Frame. За ключевым словом следует имя данного узла иерархии и фигурные скобки.
Какие существуют технологии получения полигональных моделей (3ds Max, PhotoModeler, 3dRipper)?
Полигональное моделирование (polygonal modeling) — это самая первая разновидность трехмерного моделирования, которая появилась в те времена, когда для определения точек в трехмерном пространстве приходилось вводить вручную с клавиатуры координаты X, Y и Z. Как известно, если три или более точек координат заданы в качестве вершин и соединены ребрами, то они формируют многоугольник (полигон), который может иметь цвет и текстуру. Соединение группы таких полигонов позволяет смоделировать практически любой объект. Недостаток полигонального моделирования состоит в том, что все объекты должны состоять из крошечных плоских поверхностей, а полигоны должны иметь очень малый размер, иначе края объекта будут иметь ограненный вид. Это означает, что если для объекта на сцене предполагается увеличение, его необходимо моделировать с большим количеством полигонов (плотностью) даже, несмотря на то, что большинство из них будут лишними при удалении от объекта.
3ds Max располагает обширными средствами по созданию разнообразных по форме и сложности трёхмерных компьютерных моделей реальных или фантастических объектов окружающего мира с использованием разнообразных техник и механизмов, включающих следующие:
полигональное моделирование в которое входят Editable mesh (редактируемая поверхность) и Editable poly (редактируемый полигон) — это самый распространенный метод моделирования, используется для создания сложных моделей и моделей для игр;
моделирование на основе неоднородных рациональных B-сплайнов (NURBS) — в 3ds max этот метод моделирования не очень хорошо реализован, и довольно-таки неудобен;
моделирование на основе порций поверхностей Безье (Editable patch) — подходит для моделирования тел вращения;
моделирование с использованием встроенных библиотек стандартных параметрических объектов (примитивов) и модификаторов.
Методы моделирования могут сочетаться друг с другом.
Моделирование на основе стандартных объектов, как правило, является основным методом моделирования и служит отправной точкой для создания объектов сложной структуры, что связано с использованием примитивов в сочетании друг с другом как элементарных частей составных объектов.
3D Ripper DX — уникальная утилита. Она позволяет извлечь из трехмерных игр модели персонажей, техники, оружия и даже целые локации. По понятным причинам использовать все эти ресурсы в коммерческих проектах нельзя, а вот для создания бесплатных дополнений — вполне.
Для захвата 3D-сцен нам потребуется, во-первых, сам 3D Ripper DX (для захвата всей геометрии, текстур и шейдеров, отрендеренных в текущем кадре), а во-вторых, D3DX9_29.dll — файл библиотеки для DirectX, необходимый для работы 3D-риппера.
3D Ripper работает по следующему принципу. При запуске программы необходимо указать путь к exe-файлу игры, из которой нужно извлечь ресурсы, и настроить ряд параметров захвата. После этого игра грузится не напрямую, а через 3D Ripper.
Если игра поддерживает DirectX 9.0, то в левом верхнем углу программы высветится сообщение Ready to Capture, информирующее о том, что можно приступать к захвату. Остается лишь добраться до того места, которое необходимо «сфотографировать», и нажать горячую клавишу.
Даже при наличии мощной машины 3D-риппер повесит запущенную игру на несколько секунд, а то и минут. За этот промежуток времени он собирает необходимые данные (геометрия уровня, шейдеры, текстуры, наложенные на объекты).
PhotoModeler является одним из наиболее известных в мире пакетов фотограмметрического ПО, предназначенным для получения трехмерных моделей: эскизов на основе фотографий, которые создаются путем преобразования двумерной информации, содержащейся в фотографиях, в точно рассчитанные трехмерные точки, линии и плоскости, а затем могут быть экспортированы в AutoCAD, 3dStudio и другие пакеты для дальнейшей обработки.
Какова общая структура программно-аппаратной системы интерактивной динамической трехмерной графики (СИДТГ)?
Каково место библиотеки DirectX в структуре СИДТГ?
DirectX позволяет процессору с видеокартой. DI – позволяет «общаться» клавиатуре с процессором.
Какие существуют способы описания множества трехмерных точек в виде таблиц (MS Excel)?
Таблицы точек и их трехмерные координаты. Задание формулами. Графики (точечный и каркасный).
Как реализуется выполнение математической операции над множеством точек (MS Excel)?
Посредством функции МУМНОЖ осуществляется работа по перемножению матриц. Задаем операцию для одной ячейки (или сразу строки, или для каждой ячейки строки в отдельности), а затем растягиваем на все столбцы.
Как реализовать вычисление последовательности нескольких операций над множеством трехмерных точек (в MS Excel)?
Последовательным применением функции МУМНОЖ
Что такое типовая последовательность операций при размещении модели в пространстве сцены (MS Excel)?
Расположение внутри сцены (комнаты):
Масштабировать модель куба в нужные габаритные размеры (получим модель объекта);
Повернуть модель так, как она должна быть повернута относительно сцены (комнаты);
Расположение вместе со сценой (комнатой):
Переместить модель внутри сцены (комнаты);
Повернуть модель так, как повернута вся сцена;
Переместить модель так, как перемещена вся сцена.
Как описать сцену, состоящую из нескольких моделей (MS Excel)?
Все модели в одну таблицу и двигаем всё вместе сразу, если нужно.
Как «обвести» множество трехмерных точек, чтобы получить каркасную модель (MS Excel)?
Зажимать ctrl и выделять связанные вершины
Как задать операции над множеством пространственных точек в виде матрицы (MS Excel)?
Нужно забить матрицы переноса, поворота и т.п. в Excel, применять МУМНОЖ.
Как задать последовательность операций в виде матрицы (MS Excel)?
Последовательно умножать матрицы (применять МУМНОЖ)
Как выполнить расчет результирующего множества трехмерных точек (MS Excel)?
Умножить на все матрицы или на результирующую.
Какова общая технология создания сцены из каркасных моделей в MS Excel?
Все от описания точек модели до помещения на график
Библиотека Microsoft.DirectX.Direct3D (основные используемые в программах КГ классы и функции).
Device (Родительский объект всех графических объектов сцены), Mesh (Манипулирует объектами сетки), Vertex (класс вершин), Material (ExtendedMaterial)( Задает свойства материала), Texture (Управляет текстурными ресурсами), BeginScene, EndScene, Present, девайс.Clear(), DrawSubset (Рисует подмножество сетки), Mesh.Box (Использует левую систему координат для создания сетки, содержащей выровненный по осям блок (прямоугольный параллелепипед)), FromFile, DrawUser...
Структура шаблона типовой программы интерактивной трехмерной компьютерной графики?
- область объявления глобальных переменных;
- область инициализации;
- область перерисовки;
- область пользовательского ввода (обеспечения интерактивности).
Для чего используется область объявления глобальных переменных?
Для объявления глобальных переменных, таких как: девайс, визуальные объекты, материалы и некоторые исходные данные, которые будут использоваться не в отдельном методе, а в нескольких.
Какие части постановки задачи компьютерной графики отражается в глобальных переменных?
Mesh - Образы.
Для чего используется область инициализации?
Для инициализации Девайса, загрузки 3D-моделей, установки матрицы проекции, расстановки света (и установки некоторых других значений по умолчанию).
Какие части постановки задачи КГ реализует область перерисовки сцены?
Метод. Интерактивная и динамическая реализация метода.
Исходя из каких требований постановки задачи КГ ясно что перерисовка сцены должна выполняться многократно?
Из требований динамики результирующей модели.
Какая часть постановки задачи КГ реализуется в области пользовательского ввода?
Методы решения проблемного вопроса посредством интерактивности.
Как установить матрицу проекции в приложении Managed DirectX? Какого типа матрица получается функцией Matrix.PerspectiveFOVLH?
В области инициализации девайс.Transform.Projection = Matrix.PerspectiveFovLH (угол обзора, отношение ширины к высоте, ближняя плоскость вида (ближе не будет видно), дальняя плоскость вида (дальше не будет видно)). Получается матрица перспективной проекции с углом обзора и левой системой координат.