Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Масштабирование 3D (OpenGL)

5.3K
01 июля 2007 года
Somebody
185 / / 24.12.2006
Моя программа рисует некоторое количество линий. Потом они поворачиваются с помощью glRotate. Мне надо после этого смасштабировать изображение (без сохранения пропорций), чтобы эти линии заняли весь экран (проекция ортографическая). Если все повороты рассчитывать самому, тогда смысла от 3D никакого. Наверное, можно как-то по-другому узнать координаты после поворота. Но я нигде не нашёл, как это сделать. Может, кто-нибудь знает?
9
01 июля 2007 года
Lerkin
3.0K / / 25.03.2003
glScale - не катит?
5.3K
02 июля 2007 года
Somebody
185 / / 24.12.2006
Цитата:

glScale - не катит?


С какими параметрами его надо вызывать? Я не знаю, какие минимальные и максимальные координаты стали после поворота, а мне нужно, чтобы всё это растянулось до размеров экрана. Нужно или узнать координаты после поворота, или любым другим способом растянуть это до размеров экрана.

9
02 июля 2007 года
Lerkin
3.0K / / 25.03.2003
Получи через getMatrix матрицы MODELVIEW и PROJECTION. Путем нехитрых математических манипуляций с ними - получишь размер объекта.
5.3K
02 июля 2007 года
Somebody
185 / / 24.12.2006
Или я, или не я, но кто-то из нас это всё не понял.
Непосредственно из самих матриц я размер не получу. Если же умножать самому координаты всех точек на матрицы, то это и получится расчёт всех координат вручную. Это я могу сделать, но, как я уже говорил, смысла от 3D в таком случае никакого не будет. Меня интересует более оптимальный вариант (если он есть).
9
03 июля 2007 года
Lerkin
3.0K / / 25.03.2003
Цитата: Somebody
Или я, или не я, но кто-то из нас это всё не понял.
Непосредственно из самих матриц я размер не получу. Если же умножать самому координаты всех точек на матрицы, то это и получится расчёт всех координат вручную. Это я могу сделать, но, как я уже говорил, смысла от 3D в таком случае никакого не будет. Меня интересует более оптимальный вариант (если он есть).


Ну, а какое отношение имеет 3D-библиотека к определению экранных размеров объекта? Функции получения и записи матриц, как раз для таких задач и предусмотрены. Это обще-распространенная практика. Да и оптимизировать это дело - весьма просто. Достаточно использовать XMM-расширения процессора, т.е. не очень большая ассемблерная вставка, или можно юзать intrinsics.

5.3K
07 июля 2007 года
Somebody
185 / / 24.12.2006
Вот теперь сам же и отвечаю...
glRenderMode(GL_FEEDBACK) - это как раз то, что мне было нужно. Про оптимальность такого решения не знаю, но получить координаты после поворота получилось.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог