Archive for » June, 2008 «

Monday, June 30th, 2008 | Author: admin

Чтобы сделать обычную Windows-программу приложением DirectX, нужно добавить в конфигурацию проекта некоторые дополнительные данные. Во-первых, нужно добавить сведения о папке, содержащей библиотечные файлы DirectX.
1. В Solution Explorer подведите указатель к имени проекта. Если вы следуете указаниям этой книги, это имя — TriSpin. Щелкните правой кнопкой мыши. В появившемся контекстном меню выберите пункт Properties.
2. Visual Studio отобразит диалоговое окно Property Pages. В списке в левой части этого окна выберите папку Linker и в раскрывшейся папке выберите пункт General.
3. В правой части окна в списке свойств выберите пункт Additional Library Directories. Справа от надписи введите:
С:\DXSDK\lib more…

Tags: КОНФИГУРИРОВАНИЕ, Перемещение, преобразования

Related posts

Wednesday, June 25th, 2008 | Author: admin

Золотое правило моделирования (и вообще физических расчетов) -упрощай. Нужно получать как можно больше от максимально упрощенной модели.
Любой обычный объект чрезвычайно сложен. Он состоит из астрономического количества атомов, взаимодействующих между собой по сложным законам. Смоделировать взаимодействие всех атомов для объектов, которые мы можем видеть невооруженным глазом, невозможно.
Поэтому мы поступим следующим образом. Вероятно, вы заметили, что большая часть объектов вокруг вас сохраняет свою форму с течением времени. Ваша микроволновая печь выглядит сегодня так же, как вчера, если только она не расплавилась от перегрузки. Все объекты, сохраняющие свою форму, мы будем называть твердыми телами (rigid bodies) и предположим, что эти объекты будут сохранять свою форму в течение всего времени их существования.
Любой реальный объект не сохраняет свою форму абсолютно неизменной. Теннисный мяч сплющивается при ударе more…

Tags: КОНФИГУРИРОВАНИЕ, преобразования, тела

Related posts

Wednesday, June 25th, 2008 | Author: admin

Затем метод Update () использует ускорение, чтобы найти новую линейную скорость объекта в конце интервала времени, заданного параметром changelnTime. В строке 17 метод Update () использует скорость (и интервал времени), чтобы найти новое местоположение центра масс объекта.
Вычисления в строках 11, 14 и 17 весьма просты, поскольку мы используем для их выполнения инструменты, созданные в главе 3 «Математические инструменты». Использование векторов делает формулы расчетов простыми. Следующий шаг - преобразование в матричную форму. Оно необходимо, чтобы программа могла использовать преобразования, рассмотренные в главах 4 и 5. Преобразование в матричную форму начинается в строке 24 листинга 7.3.
В строках 24-28 метод Update () вызывает функцию Direct3D D3DXMat-rixTranslation (), чтобы создать матрицу more…

Tags: Вычисления, КОНФИГУРИРОВАНИЕ, тела

Related posts

Wednesday, June 25th, 2008 | Author: admin

После того, как программа выполнила инициализацию геометрической фигуры (треугольника), которую нужно отобразить на экране, начинается обработка поступающих сообщений. Кроме того, начинается обновление кадров и вывод их на экран. Программа отображения вращающегося треугольника настолько проста, что в ней не нужно обрабатывать какие-то сообщения, кроме тех, что уже обрабатывает платформа. Однако обновлять кадры необходимо. Эту операцию выполняет функция Opda-teFrame (), код которой приведен в листинге 4.3.
Листинг 4.3. Функция UpdateFrame() 22 //на начало координат, а “верхом” считается направление
23 // роста координаты у
24 D3DXVECTOR3 eyePoint(0.Of,3.Of,-5.Of) ;
25 D3DXVECTOR3 lookatPoint(0.Of,0.Of,0.Of) ;
26 D3DXVECTOR3 upDirection(0.Of,1.Of,0.Of) ;
27 D3DXMATRIXA16 viewMatrix; more…

Tags: Вычисления, тела, функция

Related posts

Wednesday, June 25th, 2008 | Author: admin

А теперь, чтобы увидеть, как все описанное применяется на практике, используем платформу физического моделирования, рассмотренную в главе 2 «Имитация ЗО-графики с помощью DirectX*, для создания простой программы. Она будет отображать на экране двумерный треугольник, вращая его с помощью заданных матриц преобразований.
Применение платформы физического моделирования
Платформа физического моделирования облегчает процесс подготовки Direct3D к работе. Но это не значит, что все нужное будет сделано за вас. Вам придется создать проект для размещения программы в Visual Studio и настроить его конфигурацию. Затем нужно добавить код в функции платформы.
СОЗДАНИЕ ПРОЕКТА more…

Tags: Вычисления, Применение, функция

Related posts

Friday, June 20th, 2008 | Author: admin

Масштабирование увеличивает или уменьшает расстояния между точками, но оно должно работать относительно некоторого центра. Представьте себе расширяющуюся сферу. Точки на краю этой сферы двигаются быстро, точки, более близкие к центру, двигаются медленнее. Точка в центре сферы совершенно неподвижна. Эта точка называется центром расширения или точкой расширения (expansion point).
Точно так же, как можно поворачивать объект вокруг произвольной точки, объект можно и масштабировать вокруг произвольной точки. Это выполняется так же, как и поворот.
Сначала точка расширения перемещается в начало координат. Затем выполняется масштабирование. После этого точка расширения перемещается в исходную позицию. Эта последовательность операций выражается такой формулой:2Р-преобразования и рендеринг_107
Сочетание преобразований more…

Tags: МАСШТАБИРОВАНИЕ, Матрица, Применение

Related posts

Sunday, June 15th, 2008 | Author: admin

Именно это нам и было нужно - мы смогли выразить новые координаты через старые координаты и угол поворота. По выведенным нами формулам легко вычислить координаты точки после поворота. Однако эти формулы удобнее представить в виде матрицы, и чаще всего так и делается. Определим матрицу, показанную ниже:
cos(6» ) -sin(0 )” sin(0 ) cos(0 )
R=
cos(-0) sin(-<9) -sin(-0) cos(-0)
Выполнять повороты точек можно, умножая их векторы смещения на матрицу R. Поэтому можно записать:
х' = xR
или в компонентном виде
[х' у']=[х у] more…

Tags: Матрица, Применение, функция

Related posts

Tuesday, June 10th, 2008 | Author: admin

Матрицы перемещений перемещают объекты (точки, векторы, геометрические фигуры и так далее), определенные в системе координат, из одного места в другое. Как работает перемещение, показано на рисунке 4.2.
Рис. 4.2. Перемещение точки
Выполнять перемещение довольно просто. Предположим, мы хотим переместить точку р на расстояние Лх по оси х и на расстояние Ду по оси у. Это перемещение можно записать в виде вектора t с компонентами (Ах, Ду). Если вектор v - вектор смещения для точки р, то переместить точку можно, прибавив t к v:
р’ = V + t
Р’х = vx + tx Р’у = vy + *у more…

Tags: norm, Перемещение, сфер

Related posts

Tuesday, June 10th, 2008 | Author: admin

Трансформация, которая изменяет систему координат, называется пассивной трансформацией (passive transformation), поскольку она не влияет на объекты в системе координат. Трансформация, имеющая противоположное действие, называется активной трансформацией (active transformation). Активная трансформация не изменяет координатную систему, но изменяет характеристики векторов (или других объектов) в этой координатной системе.
Пассивные трансформации хорошо подходят для реализации перемещения персонажа в играх вроде Quake, использующих вид «от первого лица», то есть глазами персонажа. Сама по себе окружающая среда в них более или менее неизменна, но персонаж перемещается в ней и изменяет систему координат, в которой эта среда должна отображаться.
Говоря другими словами, персонаж, представляющий вас в игре, неподвижен, если выполняется пассивная more…

Tags: Активные, Перемещение, сфер

Related posts

Thursday, June 05th, 2008 | Author: admin

Объекты компьютерной графики, которые вы видите на экране, обычно описываются как совокупности точек. Каждая точка описывается парой координат (х, у), если вы работаете с 20-графикой. В ЗО-графике для описания одной точки используются три координаты - (х, у, z). Точки, определяющие объекты, называются вертексами. Для нашего приложения, которое должно отображать треугольник, придется определить и треугольник, и его вертексы.
В Direct3D используется формат вертексов, который Microsoft называет гибким форматом вертексов (flexible vertex format). Этот формат позволяет создать вертекс почти любого типа (в определенных пределах), какой может понадобиться вашему приложению. Для простой формы, вроде треугольника, достаточно простейшего формата вертексов с какими-то компонентами и цветом. Более сложные форматы вертексов могут хранить информацию о нормалях, материале и текстуре.Преобразованные и непреобразованные вертексы more…

Tags: Активные, геометрии, Перемещение

Related posts

Thursday, June 05th, 2008 | Author: admin

В главе 3 «Математические инструменты» вы получили немало математических знаний, необходимых для физического моделирования и 3D-программирования. В этой главе мы сможем применить приобретенные знания в компьютерной графике и физике.
20-преобразования
Предположим, что у вас есть вектор, компоненты которого вам известны применительно к какой-то системе координат. Как преобразовать этот вектор в другую систему координат?
Эту задачу решают преобразования координат или трансформации. Трансформация (transformation) пересчитывает координаты вектора в одной системе координат на соответствующие координаты в другой. Обычно трансформации обозначаются заглавными буквами. Если Т -трансформация, то применение этой трансформации к вектору х записывается как Тх. Результатом этого преобразования будут координаты вектора х в новой системе координат.
Предположим, что вы раздобыли древнюю карту, сообщающую, что заколдованный остров находится в 120 милях к more…

Tags: Активные, геометрии, рендеринг

Related posts