Russian Qt Forum

Qt => OpenGL => Тема начата: qtkoder777 от Ноябрь 08, 2017, 11:11



Название: Выбор позиции камеры для попадания объекта в видимую область
Отправлено: qtkoder777 от Ноябрь 08, 2017, 11:11
Как выбрать позицию камеры, обеспечивающую видимость объекта при известном направлении взгляда?

Можно перемножить матрицы модели-вида и проекции, зависящии от параметра. Решив неравенство, определить, при каких позициях глаза, объект попает в единичный куб.

Или будем удваивать радиус-вектор глаза, определяем попал ли объект в единичный куб, перемножив матрицы, до тех пор пока не попадёт.

Что-то работать с матрицами не хочется, нет ли решения получше?


Название: Re: Выбор позиции камеры для попадания объекта в видимую область
Отправлено: Igors от Ноябрь 08, 2017, 13:52
Можно перемножить матрицы модели-вида и проекции, зависящии от параметра. Решив неравенство, определить, при каких позициях глаза, объект попает в единичный куб.
Это проходит только для изометрии (glOrtho), но не для перспективной проекции

Или будем удваивать радиус-вектор глаза, определяем попал ли объект в единичный куб, перемножив матрицы, до тех пор пока не попадёт.
Что-то работать с матрицами не хочется, нет ли решения получше?
Полегче нет, зато правильное решение потруднее :) Чтобы определить попал ли объект в куб Вам придется каждый его вертекс умножить на матрицу MVP - и не забудьте потом поделить на w. Да, придется так бегать на каждой итерации.