Я хотел бы отобразить из нормализованных координат устройства обратно в пространство просмотров.отображение из координат нормализованного устройства для просмотра пространства
Другой способ Arround работает следующим образом:
viewspace -> клип пространство: умножить однородные координаты на матрицу проекции
клип пространство -> нормализованное координаты устройства: разделить (х, у, г , ж) по ж
сейчас в нормированной координаты устройства все координаты, которые были в пределах вид усеченного падения в куб х, у, г е [-1,1] и ш = 1
Теперь я как преобразовать некоторые точки на границе t cube обратно в координаты просмотра. Матрица проецирования неособая, поэтому я могу использовать обратное, чтобы получить от clipace до viewpace. но я не знаю, как добраться из нормализованного пространства устройства в пространство клипов, так как я не знаю, как вычислить «w» мне нужно умножить другие координаты.
Может кто-нибудь мне помочь? благодаря!
спасибо Вы уверены, что я просто нужно разделить на 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
Значение W не возвращается функцией gluUnProject, вы заметите, что значение 1/W не копируется в objectCoordinate vector. Компонент W всегда будет одним, если unproject op преуспел, поэтому нет смысла предоставлять его вызывающему. –