2013-09-19 4 views
0

Я переношу метод GLU gluUnproject в современный OpenGL.I обычно понимаю алгоритм, лежащий за ним, но мой вопрос в том, почему нам нужна матрица модельного вида? Может ли это быть только матрица просмотра? координаты в мировом пространстве, поэтому зачем мне также поставлять матрицу модели какого-либо объекта (как часть представления модели)? Или, может быть, я неправильно понимаю, как использовать этот метод? Я никогда не использовал фиксированный конвейер.gluUnproject model-view matrix

+0

Вы хотите сказать матрицу проекции по матрице? – Nobody

+0

Я имею в виду, что в примере использования gluUnproject с фиксированным контуром запрашивается GL_MODELVIEW. Он содержит также некоторую модельную матрицу 3D-объекта? –

+0

Модельная матрица содержит преобразование модели в мировое пространство и из пространства мира в пространство глаз, но не в проекцию. – Nobody

ответ

1

gluUnproject обычно описывается как трансформирование координат с экрана (назад) в объект пространство. Тем не менее, вы всегда можете использовать любые матрицы, которые вам нравятся, чтобы попасть в какое-то другое пространство, поэтому просто используя матрицу вида, вы дадите вам мировые космические ценности, о которых вы, похоже, заботитесь. Контейнер с фиксированной функцией GL никогда не использовал явное пространство мира и всегда работал непосредственно над сопутствующей моделью и матрицей представлений.

+0

Итак, основываясь на том, что вы сказали, я могу отказаться от части модели, если она является мировым по умолчанию (личность)? –

+0

@MichaelIV: да. обратная идентичность все еще идентична, поэтому не имеет значения, используете ли вы только V или используете M = I и используете V * M в качестве матрицы просмотра модели. – derhass

+0

Хорошо, теперь я получаю тебя. Это, вероятно, необходимо, если непрозрачность происходит в разных пространствах, чем в мире. Спасибо за разъяснение. –

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