forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   C++ (http://forum.boolean.name/forumdisplay.php?f=22)
-   -   DirectX 9 доступ к вершинам объекта (http://forum.boolean.name/showthread.php?t=16065)

Mind 24.12.2011 00:12

Ответ: DirectX 9 доступ к вершинам объекта
 
Хммм... А как же мне делать свою систему коллизий если позиция вершин отлична от позиции объекта(даже близко к вершинам)?Переводить их из локального пространства в мировое?

pozitiffcat 24.12.2011 00:22

Ответ: DirectX 9 доступ к вершинам объекта
 
Храниш у каждого объекта позиции, у каждого объекта делаешь метод draw, который перед отрисовкой генерит матрицу и делает ее текущей. Колиззии как делать, смотришь позиции нужных объектов, если входит в bounding box, то уже проходишьтя по плоскостям, тут я тебе не советчик, проще взять физический движок

Mind 03.01.2012 18:57

Ответ: 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();  //разблокировать буфер

Почему выводится одно и тоже число при повороте объекта. Ведь как мне известно при развороте изменяются вершины объекта.

HolyDel 03.01.2012 19:49

Ответ: DirectX 9 доступ к вершинам объекта
 
при повороте меняется матрица трансформации.
но не сетка.

Mind 03.01.2012 20:17

Ответ: DirectX 9 доступ к вершинам объекта
 
Цитата:

при повороте меняется матрица трансформации.
но не сетка.
Хорошо. А что мне нужно сделать чтоб позиции вершин были в мировой системе координат?

Knightmare 03.01.2012 22:16

Ответ: DirectX 9 доступ к вершинам объекта
 
Умножить локальные координаты вершины на мировую матрицу.
С любовью, кэп.

Mind 03.01.2012 23:35

Ответ: DirectX 9 доступ к вершинам объекта
 
Как правильно это сделать?

Knightmare 03.01.2012 23:58

Ответ: DirectX 9 доступ к вершинам объекта
 
vertexWorldPosition = worldMatrix * vertexLocalPosition

pozitiffcat 04.01.2012 00:09

Ответ: 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);



Часовой пояс GMT +4, время: 13:33.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot