четверг, 7 февраля 2013 г.

привязка камеры к обьекту opengl

А попробовать?anonymous (08.01.12 23:06) Ответ на: от anonymous 08.01.12 23:06дак пока не на чем. (08.01.12 23:40) Согласно разделу 2.12.1 спецификации OpenGL ES 2.0.25 координаты левого нижнего угла области вывода, её ширину и высоту (т.е., фактически, диапазон используемых оконных координат) можно задать при помощи функции glViewport(int x, int y, GLsizei w, GLsizei h). Ну а дефолтные значения этой функции зависят, очевидно, от реализации. (09.01.12 00:12) Тут дело не во viewport, точнее не только в нем. Ты задаешь точку в model space (некая произвольная система координат, удобная тебе для задания объекта).Потом ты задаешь modelview matrix (некая трансформация твоего пространства, связанного с объектом, так, чтобы поместить его в пространстве с учетом того, что камера находится в точке (0, 0, 0) и смотрит в направлении -z. Эта матрица переводит точки из model space в eye space. Потом ты задаешь projection matrix (это матрица, которая задает проекцию (перспективную или ортографическую). Эта матрица переводит объекты уже из eye space (в котором они находятся после трансформации с помощью modelview matrix) в clip space. Clip space в OpenGL это куб размером 2x2x2. Где по оси z значения это просто значения из depth buffer'а, а по x и y это значения в нормализованных экранных координатах. То есть x = -1 левый край экрана, +1 правый, y = -1 низ, +1 верх. Поэтому да, в OpenGL (в direct3d это не так) (0, 0) это центр экрана. Так как мой lib_astral.so подсказывает, что скорее всего у тебя ортографическая проекция и скорее всего MODELVIEW_MATRIX у тебя это едининая матрица (identity), то xy-координаты в object space просто равны xy-координатам в eye space и поэтому да, у тебя центр тоже в (0, 0).За подробностями читать эту длинную книжку, если очень хочется вникнуть. anonymous (09.01.12 02:12) Что за дурацкий вопрос? Как камеру задашь, так и будет.а по дефолту, да, в центре и viewport обычно задан - держи замечательную книжку по OpenGL ES 2.0, тут все достаточно хорошо описано, и как с камерами работать и как рисовать. Книга без привязки к какой-то определенной платформе.Примеры из книги можно взять . Примеры для разных платформ, в том числе и для iPhone.Если что, спрашивай, хотя я сам еще нуб в этом, но может чем помогу. (09.01.12 02:21) Все зависит от проекции. Если сделаешь glOrthox (0, width << 16, height << 16, 0, 1, (2 << 16)), то получишь для выводимых точек привычные координаты, в которых левый верхний угол соответствует 0, 0 а правый - width, height. (09.01.12 02:25)

Так где же он на самом деле ?

Гугление привело к мысли, что он в центре ( )

До этого момента думал что как и в случае использования canvas это левый верхний угол, но почитав книгу по iOS наткнулся на строчку, в которой говорится что он в левом нижнем.

Не подскажите ли где находится центр координат для OpenGL ES ?

Центр системы координат OpenGL ES - Development - Форум

Комментариев нет:

Отправить комментарий