Получить положение экрана из мировой позиции - PullRequest
0 голосов
/ 20 ноября 2011

Я хочу получить Положение экрана из Мировой позиции в DirectX.

Я могу получить мировую позицию своего мяча.Но я не могу знать, как я могу преобразовать его в положение экрана.

1 Ответ

2 голосов
/ 20 ноября 2011

У вас есть преобразование вида / глаза V (то, которое «помещает» вашу «камеру») и преобразование проекции P.

Координаты пространства клипа достигаются

clip_position = P * V * world_space_position

Из пространства клипа вы достигнете пространства NDC, разделив координаты пространства клипа на 4-ю координату пространства клипа w, то есть

ndc_x = clip_x / clip_w
ndc_y = clip_y / clip_w
ndc_z = clip_z / clip_w
ndc_w = clip_w / clip_w = 1

Затем координаты XY области просмотра достигаются путем сопоставления диапазона [-1,1] сРазмеры окна просмотра.Разница между OpenGL и DirectX заключается в том, что в OpenGL диапазон глубины [-1,1] отображается на [0, DEPTH_BUFFER_RESOLUTION], тогда как в DirectX диапазон глубины [0, 1] отображается в диапазон значений буфера глубины.

...