А как насчет случая, когда проекция является перспективной?

у отображать модели разных размеров, встроенных в вид, чтобы вся модель была видна внутри экрана.
Каков наилучший способ сделать это? Я попытался масштабировать (используя glScale) модель, используя эту формулу

scaleFactor = ( screenSize / (maxModelSize * constant) )

Где размер высота или ширина, в зависимости от того, что больше.
Константа есть1 / (length of one screen pixel in OpenGL units)
Есть две проблемы с этим:
1. После выполнения некоторых преобразований я хочу иметь возможность вернуться к этому начальному масштабу (модель масштабируется по размеру окна) с помощью Identity. В настоящее время вызов идентичности приведет модель к ее исходным размерам (до «фиксации» масштаба).
2. «Константа» - это то, что я получил методом проб и ошибок, мне кажется, что я ошибаюсь. Я также подозреваю, что это не константа вообще, и зависит от разрешения экрана, и бог знает, что еще.

Ответы на вопрос(1)

Ваш ответ на вопрос