Форум программистов, компьютерный форум, киберфорум
OpenGL
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
2395 / 1238 / 210
Регистрация: 26.02.2009
Сообщений: 4,939
Записей в блоге: 5
1

Сколько реальных пикселей занимает нарисованный квад в зависимости от расстояния камеры

15.01.2013, 15:12. Просмотров 897. Ответов 7
Метки нет (Все метки)

Доброго времени!

Ищу формулу по которой можно это вычислить. Точнее наоборот. Мне нужно найти расстояние до квада при котором рисуемый квад в 3д занимал бы точно 256 на 256 пикселей экрана для более качественного отображения текстуры.

Подробнее:
Квадрат рисуется на плоскости XY в центре координат, реальный размер его известен, например 100 на 100
Камера двигается по оси Z и смотрит в сторону квадрата.
Проекция камеры перспективная:
Delphi
1
2
3
4
5
6
7
8
9
10
11
  glViewport( 0, 0, ClientWidth, ClientHeight );
  glMatrixMode( GL_PROJECTION );
  glLoadIdentity;
  gluPerspective( 45.0, ClientWidth/ClientHeight, 0.01, cam.Position.z + 5.0 );
  glMatrixMode( GL_MODELVIEW );
  //=======================
  glLoadIdentity;
  center := cam.Position + cam.ViewDir;
  gluLookAt(  cam.Position.x, cam.Position.y, cam.Position.z,
                  center.x, center.y, center.z,
                  cam.UpDir.x, cam.UpDir.y, cam.UpDir.z );
Проблема в том что при изменении размеров окна квад тоже масштабируется в соответствии с выстотой viewport'a. В моём случае этого не должно происходить.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.01.2013, 15:12
Ответы с готовыми решениями:

Перебор пикселей на изображениях занимает очень много времени
Программа получает на вход два изображения(300х300 и 50х50).Также создаю полностью черное...

Оцените, сколько места на компакт-диске занимает видеоинформация и сколько звуковая дорожка
На компакт-диске записана видеозапись допроса обвиняемого в формате MPEG4 - сжатый формат. Размер...

Обработка изображения с веб камеры на предмет движущихся объектов\изменившихся пикселей
Специально для тех кто долго дрючил свои мозги, перерыл пол гугля и нихрена не нашёл выкладываю...

Построить график зависимости расстояния
Доброго времени суток. Помогите пожалуйста решить задачу 1.2, желательно с комментариями))

7
Модератор
3309 / 2099 / 334
Регистрация: 13.01.2012
Сообщений: 8,160
15.01.2013, 15:30 2
Цитата Сообщение от snake32 Посмотреть сообщение
при изменении размеров окна квад тоже масштабируется
почему? может что-то делать и с 45?
0
2395 / 1238 / 210
Регистрация: 26.02.2009
Сообщений: 4,939
Записей в блоге: 5
15.01.2013, 16:37  [ТС] 3
Цитата Сообщение от vxg Посмотреть сообщение
почему? может что-то делать и с 45?
Что именно? ставил 30, 45, 60 разницы особо не заметил
0
Модератор
3309 / 2099 / 334
Регистрация: 13.01.2012
Сообщений: 8,160
15.01.2013, 16:56 4
сразу скажу что с gluPerspective не кувыркался однако логично что если мы меняем соотношение сторон (например, тянем по оси игрек - увеличиваем высоту окна) то у нас так же измениться и угол ибо про него сказано Specifies the field of view angle, in degrees, in the y direction
0
2395 / 1238 / 210
Регистрация: 26.02.2009
Сообщений: 4,939
Записей в блоге: 5
16.01.2013, 11:14  [ТС] 5
Вопрос можно поставить по другому:
Как вычисляется нужный уровень мипмапа текстуры?
(Думаю, эта формула мне поможет)
0
Модератор
3309 / 2099 / 334
Регистрация: 13.01.2012
Сообщений: 8,160
16.01.2013, 13:39 6
не знаю. по поводу уродывания квадрата при ресайзе окна с коррекцией соотношения сторон но без коррекции угла иллюстрация тут http://profs.sci.univr.it/~col... s_018.html по идее можно через тангенсы посчитать ребро квадрата на интересующем вас удалении который будет отображаться четко в нужное кол-во точек
1
1229 / 596 / 74
Регистрация: 01.10.2012
Сообщений: 2,844
16.01.2013, 15:40 7
Цитата Сообщение от snake32 Посмотреть сообщение
Ищу формулу по которой можно это вычислить. Точнее наоборот. Мне нужно найти расстояние до квада при котором рисуемый квад в 3д занимал бы точно 256 на 256 пикселей экрана для более качественного отображения текстуры.

Подробнее:
Квадрат рисуется на плоскости XY в центре координат, реальный размер его известен, например 100 на 100
Камера двигается по оси Z и смотрит в сторону квадрата.
Проекция камеры перспективная:
Угол зрения (view_angle) известен, напр 45 градусов. Размер выводимой картинки (viewport) известен (W). Находим фокальное расстояние в пикселях

focal = W / 2 / tan(view_angle_radian / 2);

Тогда

visible_size = real_size * focal / distance;
distance = real_size * focal / visible_size;

Не по теме:


С памятью ниже средней я никогда не любил OpenGL, но увы, избежать его мне не удалось.

1
2395 / 1238 / 210
Регистрация: 26.02.2009
Сообщений: 4,939
Записей в блоге: 5
16.01.2013, 16:03  [ТС] 8
Igor3D, Спасибо. Работает!!

Не по теме:

Цитата Сообщение от Igor3D Посмотреть сообщение
С памятью ниже средней
Что уж обо мне тогда говорить...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.01.2013, 16:03

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Сколько занимает bool
Вопрос тупой, я знаю. Но сколько памяти занимает bool и new bool?

Задача в Excel (стоимость билета в зависимости от расстояния)
Здраствуйте, чет не могу решить эту задачу. Билет на пригородном поезде стоит 5 руб., если...

Сколько занимает смена "авторства"
Ситуация, думаю знакомая многим - пишешь статью на актуальную тему, выкладываешь, в одном из...

Сколько памяти занимает указатель
А сколько памяти занимает указатель?И от чего это зависит?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.