Увеличение и уменьшение масштаба в OpenGl ES - PullRequest
1 голос
/ 06 октября 2009

Для увеличения и уменьшения масштаба лучше использовать glOrtho или glScale?

Ответы [ 3 ]

2 голосов
/ 06 октября 2009

Это действительно зависит от того, что вы называете масштабированием.

В типичной настройке камеры (скажем, полученной с перспективы) увеличение достигается за счет уменьшения поля зрения (как на реальной камере!). См. Документацию по gluPerspective для фактической математики от поля зрения до стандартной матрицы перспективы.

glOrtho не генерирует перспективную камеру, поэтому вы на самом деле не имитируете стандартный зум. Это больше похоже на 2-мерное увеличение изображения (Вы в настоящее время используете glOrtho? Это не дает 3D-вид вашей сцены, не так ли?)

1 голос
/ 06 октября 2009

Если вы настроили параллельную проекцию с помощью glOrtho, то, как вы предлагаете, вы можете увеличивать и уменьшать масштаб, либо изменяя параметры на glOrtho, либо используя glScale.

Я бы предпочел использовать glScale, потому что проще подумать о настройке 20% -ного увеличения, масштабируя на 1,2, а не пересчитывать левую / правую / верхнюю / нижнюю плоскости.

Я бы не сказал, что это "лучшая практика".

0 голосов
/ 16 октября 2009

glOrtho обычно используется для настройки матрицы проекции; glScale обычно используется при настройке матрицы вида модели в сочетании с различными другими преобразованиями.

Большинство разработчиков устанавливают свои матрицы проекций только в начале дня или при изменении размера окна. «Масштабирование» подразумевает, что вы будете менять матрицу каждый кадр, поэтому кажется, что она должна принадлежать виду модели.

Подводя итог: увеличьте масштаб вашей модели и используйте glScale.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...