2009-08-29 2 views
0

Я хотел бы отобразить из нормализованных координат устройства обратно в пространство просмотров.отображение из координат нормализованного устройства для просмотра пространства

Другой способ Arround работает следующим образом:

viewspace -> клип пространство: умножить однородные координаты на матрицу проекции

клип пространство -> нормализованное координаты устройства: разделить (х, у, г , ж) по ж

сейчас в нормированной координаты устройства все координаты, которые были в пределах вид усеченного падения в куб х, у, г е [-1,1] и ш = 1

Теперь я как преобразовать некоторые точки на границе t cube обратно в координаты просмотра. Матрица проецирования неособая, поэтому я могу использовать обратное, чтобы получить от clipace до viewpace. но я не знаю, как добраться из нормализованного пространства устройства в пространство клипов, так как я не знаю, как вычислить «w» мне нужно умножить другие координаты.

Может кто-нибудь мне помочь? благодаря!

ответ

2

Если вы действительно не хотите восстановить значения пространства клипов по какой-либо причине, вам не нужно вычислять W. Умножьте точку вашего NDC на обратную матрицу проекции, а затем разделите ее на W, чтобы вернуться к просмотру пространства.

+0

спасибо Вы уверены, что я просто нужно разделить на W? Я запутался из-за этой страницы: http://www.opengl.org/wiki/GluProject_and_gluUnProject_code Я particularily смущают последние четыре строки из [3] = 1,0/из [3] ; objectCoordinate [0] = out [0] * out [3]; objectCoordinate [1] = out [1] * out [3]; objectCoordinate [2] = out [2] * out [3]; они делят значения x, y, z на значение W, но они заменяют значение W на 1/W - так что возвращаемые однородные координаты не имеют 1 в W-координате и поэтому должны быть разделены AGAIN на новую W в чтобы получить эффективные координаты x, y, z – 2009-08-30 14:09:24

+0

Значение W не возвращается функцией gluUnProject, вы заметите, что значение 1/W не копируется в objectCoordinate vector. Компонент W всегда будет одним, если unproject op преуспел, поэтому нет смысла предоставлять его вызывающему. –

Смежные вопросы