Путаница с математической функцией DirectX - PullRequest
2 голосов
/ 28 декабря 2011

Пока я просматривал какой-то старый код DirectX, я прибыл с функциями D3DXVec3Transform и D3DXVec3TransformCoord.Посмотрев их описания, они казались довольно похожими, но я не вижу, в чем разница между ними.Может кто-нибудь объяснить, в чем разница между D3DXVec3Transform и D3DXVec3TransformCoord, а также с математической структурой позади них?

1 Ответ

4 голосов
/ 28 декабря 2011

Когда вы преобразуете трехмерный вектор в матрицу, это приводит к четырехмерному вектору, где w! = 1

трехмерный вектор можно описать как четырехмерный вектор, где w = 1.

D3DXVec3Transform возвращает вектор 4D, где w! = 1. D3DXVec3TransformCoord получает вектор 4D и проецирует его на w = 1, чтобы сделать его вектором 3D.

РЕДАКТИРОВАТЬ: И вот бумага, которую я google'd и нашел, если интересно, как сделать преобразование: http://www.heldermann -verlag.de / JgG / jgg01_05 / jgg0404.pdf

...