Поместить 3D-модель в окно

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

scaleFactor = ( screenSize / (maxModelSize * constant) )

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

5
задан Artium 14 November 2010 в 23:18
поделиться