|
24.12.2011, 00:12
|
#16
|
ПроЭктировщик
Регистрация: 24.02.2011
Сообщений: 188
Написано 13 полезных сообщений (для 18 пользователей)
|
Ответ: DirectX 9 доступ к вершинам объекта
Хммм... А как же мне делать свою систему коллизий если позиция вершин отлична от позиции объекта(даже близко к вершинам)?Переводить их из локального пространства в мировое?
|
(Offline)
|
|
24.12.2011, 00:22
|
#17
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: DirectX 9 доступ к вершинам объекта
Храниш у каждого объекта позиции, у каждого объекта делаешь метод draw, который перед отрисовкой генерит матрицу и делает ее текущей. Колиззии как делать, смотришь позиции нужных объектов, если входит в bounding box, то уже проходишьтя по плоскостям, тут я тебе не советчик, проще взять физический движок
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
03.01.2012, 18:57
|
#18
|
ПроЭктировщик
Регистрация: 24.02.2011
Сообщений: 188
Написано 13 полезных сообщений (для 18 пользователей)
|
Ответ: DirectX 9 доступ к вершинам объекта
Не могу понять что делаю не так, но позиция вершин остаётся прежней при развороте,масштабировании объекта.
Вот как я считываю позицию вершин:
Vertex* vertices;
//---Цикл---
model.pMesh->LockVertexBuffer(0,reinterpret_cast<VOID**>(&vertices));
Text("Вершина0=",vertices[0],50,250);
Text("Вершина1=",vertices[1],50,300);
Text("Вершина2=",vertices[2],50,350);
model.pMesh->UnlockVertexBuffer(); //разблокировать буфер
Почему выводится одно и тоже число при повороте объекта. Ведь как мне известно при развороте изменяются вершины объекта.
|
(Offline)
|
|
03.01.2012, 19:49
|
#19
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: DirectX 9 доступ к вершинам объекта
при повороте меняется матрица трансформации.
но не сетка.
|
(Offline)
|
|
03.01.2012, 20:17
|
#20
|
ПроЭктировщик
Регистрация: 24.02.2011
Сообщений: 188
Написано 13 полезных сообщений (для 18 пользователей)
|
Ответ: DirectX 9 доступ к вершинам объекта
при повороте меняется матрица трансформации.
но не сетка.
|
Хорошо. А что мне нужно сделать чтоб позиции вершин были в мировой системе координат?
|
(Offline)
|
|
03.01.2012, 22:16
|
#21
|
Дэвелопер
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений (для 2,920 пользователей)
|
Ответ: DirectX 9 доступ к вершинам объекта
Умножить локальные координаты вершины на мировую матрицу.
С любовью, кэп.
|
(Offline)
|
|
03.01.2012, 23:35
|
#22
|
ПроЭктировщик
Регистрация: 24.02.2011
Сообщений: 188
Написано 13 полезных сообщений (для 18 пользователей)
|
Ответ: DirectX 9 доступ к вершинам объекта
Как правильно это сделать?
|
(Offline)
|
|
03.01.2012, 23:58
|
#23
|
Дэвелопер
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений (для 2,920 пользователей)
|
Ответ: DirectX 9 доступ к вершинам объекта
vertexWorldPosition = worldMatrix * vertexLocalPosition
|
(Offline)
|
|
04.01.2012, 00:09
|
#24
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: DirectX 9 доступ к вершинам объекта
Прочитай книжку уже наконец!!! Хватит всех мучить.
Пример задания матрицы для объекта, перед его отрисовкой
D3DXMatrixRotationX(&matRotateX, indexv);
indexv = 0.0;
D3DXMatrixRotationY(&matRotateY, indexh);
indexh = 0.0;
D3DXMatrixMultiply(&matRotateResY, &matRotateIn, &matRotateY);
D3DXMatrixMultiply(&matRotateResX, &matRotateIn, &matRotateX);
D3DXMatrixMultiply(&matRotateRes, &matRotateResX, &matRotateResY);
d3ddev->SetTransform(D3DTS_WORLD, &matRotateRes);
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:54.
|