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

Ваш аккаунт

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

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

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

Масштабы координат.

279
16 июня 2005 года
bave
456 / / 07.03.2004
Ну, вот возьмём для рассмотрения
следующие команды:
glTrancelated
glTrancelatef
у первой аргументами являются три целых числа -
при таком задании оси координат переносятся
на число пикселей заданных в команде.
В glTrancelatef коррдинаты типа float, и при
задании glTrancelatef(1.0f, 1.0f, 1.0f);
оси перенесуться на определённое значение -
ВОПРОС НА КАКОЕ, т. е. сколько пикселей
в одном 1.0f
8.2K
16 июня 2005 года
Akela
64 / / 13.05.2005
Во-первых, glTrancelated это на самом деле glTranslated, а glTrancelatef - glTranslatef. У первой функции аргументами являютя не целые, а вещественные числа типа double, у второй - типа float. Каждая из функций переносит наблюдателя в мировом пространстве на соответствующие значения по каждой из осей. То есть, glTranslatef(x, y, z) установит камеру в позицию (-x, -y, -z) в мировой системе координат. Вопрос "Сколько пикселей в одном 1.0f?" не имеет абсолютно никакого смысла.

P.S. Читайте литературу по компьютерной графике и аналитической геометрии.
279
16 июня 2005 года
bave
456 / / 07.03.2004
Ну фиг с ним что с написанием названий функций
ошибся - я всегда думал что glTranslated c
целыми аргументами работает, потому как туда
всегда целые аргуметны подставлял,а
вопрос имееет смысл потому как
я вывовожу ландшафт по карте высот - число
общее число вершин 4096 - если перемещаться
через glTranslatef и glTranslated перенос
при одинаковых значениях аргументов происходит
на разные растояния - НУ, ГЕНИЙ, в чём причина?
Добавлю что при использовании glTranslated на
меньшее -
собсно это объясняя последнюю часть моего
вопоса.
8.2K
16 июня 2005 года
Akela
64 / / 13.05.2005
Извини, конечно, но помочь я тебе смогу только тогда, когда ты научишься строить нормальные осмысленные связные предложения, а не "Добавлю что при использовании glTranslated на меньшее - собсно это объясняя последнюю часть моего вопоса".
255
17 июня 2005 года
Dart Bobr
1.4K / / 09.04.2004
Цитата:
Originally posted by bave
Ну фиг с ним что с написанием названий функций
ошибся - я всегда думал что glTranslated c
целыми аргументами работает, потому как туда
всегда целые аргуметны подставлял,а
вопрос имееет смысл потому как
я вывовожу ландшафт по карте высот - число
общее число вершин 4096 - если перемещаться
через glTranslatef и glTranslated перенос
при одинаковых значениях аргументов происходит
на разные растояния - НУ, ГЕНИЙ, в чём причина?
Добавлю что при использовании glTranslated на
меньшее -
собсно это объясняя последнюю часть моего
вопоса.


Во-первых, умник, количество пикселей зависит от разрешения монитора, если прога в полном экране, или от того какие параметры ты передавал glViewPort(). По пропорции - считаешь учитывая, что по умолчанию все пространство - куб, сл сторонами от -1 до 1. Есс-но всякие glFrustum и glPerspective обламывают это правило, так как расширяют видимое пространство. При задании параметров функции glTranslatef больше размера твоего видимого пространства НИЧЕГО корректного утебя нарисоваться не может. Все нужно масштабировать. А вообще по этому поводу есть неплохая книжка. Автор - Краснов. RTFM!

279
17 июня 2005 года
bave
456 / / 07.03.2004
Ну, пусть так:
1. Из-за чего разница в расстоянии переноса
при использовании упомянутых команд:
Допустим я использую glTranslatef(0.0f, y, 0.0f);
Я переместился по оси -Y на определённое значение - y.
2. Теперь тоже самое с использованием -
glTranslated(0.0f, y, 0.0f);
Здесь значение аргумета y такое же - но визуально
результат другой.
Вот я и спроил - если из одной точки перемешать
оси кординат(или как ты говоришь устанавливать камеру на другие координаты в мировой системе координат) - есть или нет разница какую команду
использовать - у меня почему-то получается что
есть - glTranslated совсем на чуть - чуть
камеру переносит.
----------------------------------------------
Да - зависит от разрешения монитора, и от
того на сколько камера уже перенесена вглубь.
Вопрос конечно некоректен был изночально,
но не бесмысленен, но чтоб вы поняли почему я упомянул пиксели мне тут долго печать бы пришлось-
а уже собсно услышал что хотел, что glTranslated
работает с нецецелым типом.
(до этого я эту коменду применял только при
работе с плоским экраном (glOrtho) - собсно
поэтому у меня было мнение что она для целых
аргументов, применив её уже в трёхмерном режиме
и когда у меня камера стала переноситься не так как надо я и подумал - что она в независимости от
режима делает перенос такой же как в glOrtho -
сейчас знаю что это нетак и причину того
что камера переноситься некоректно ищу в другом,
понятней я объяснить не могу, так что если до сих
пор не понятно забейте.)

255
19 июня 2005 года
Dart Bobr
1.4K / / 09.04.2004
Цитата:
Originally posted by bave
Ну, пусть так:
1. Из-за чего разница в расстоянии переноса
при использовании упомянутых команд:
Допустим я использую glTranslatef(0.0f, y, 0.0f);
Я переместился по оси -Y на определённое значение - y.
2. Теперь тоже самое с использованием -
glTranslated(0.0f, y, 0.0f);
Здесь значение аргумета y такое же - но визуально
результат другой.
Вот я и спроил - если из одной точки перемешать
оси кординат(или как ты говоришь устанавливать камеру на другие координаты в мировой системе координат) - есть или нет разница какую команду
использовать - у меня почему-то получается что
есть - glTranslated совсем на чуть - чуть
камеру переносит.
----------------------------------------------
Да - зависит от разрешения монитора, и от
того на сколько камера уже перенесена вглубь.
Вопрос конечно некоректен был изночально,
но не бесмысленен, но чтоб вы поняли почему я упомянул пиксели мне тут долго печать бы пришлось-
а уже собсно услышал что хотел, что glTranslated
работает с нецецелым типом.
(до этого я эту коменду применял только при
работе с плоским экраном (glOrtho) - собсно
поэтому у меня было мнение что она для целых
аргументов, применив её уже в трёхмерном режиме
и когда у меня камера стала переноситься не так как надо я и подумал - что она в независимости от
режима делает перенос такой же как в glOrtho -
сейчас знаю что это нетак и причину того
что камера переноситься некоректно ищу в другом,
понятней я объяснить не могу, так что если до сих
пор не понятно забейте.)



А назад ты камеру переносишь? То есть выглядит ли утебя прорисовка обьекта так:

glTranslatef(a,b,c);
// собственно прорисовка
glTranslatef(-a,-b,-c);

Если прорисовка организована так(в обоих случаях) и есть глюки то давай исходнеик. Я так не могу сказать что у тебя там глючит. Уж точно не OpenGL. :)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог