Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2011, 13:08   #1
mikethepurple
Новичок
Джуниор
 
Регистрация: 24.04.2011
Сообщений: 8
По умолчанию Удобные координаты в OpenGL

Проблема следующая: прикрутил OpenGL к C# через Tao Framework. В ней есть почти все из gl, glu и glut. Пока заметил отсутствие только GLsizei. Раньше я рисовал, как и все, в местных матричных координатах. Теперь же мне необходимо сделать пиксельные координаты, чтобы я мог задавать их относительно экрана и размером единичной клетки в пиксель. В идеале - создавать куб не там, где сейчас центр координат, то есть, в некотором translated() от центра экрана, а в произвольной точке с координатами (x,y,z). Скорее всего, я просто неопытен и такое давно реализовано, но я что-то не смог найти ничего по нормальной работе с координатами. Есть у кого какие идеи?
mikethepurple вне форума Ответить с цитированием
Старый 24.04.2011, 13:59   #2
RomiKon
Форумчанин
 
Регистрация: 11.04.2010
Сообщений: 143
По умолчанию

Если я правильно понял то вам нужно сделать вывод не относительно координат OpenGL а относительно координат окна. И как я понимаю тебе это нажно для вывода 2D объектов. Если это так то вам достаточно вызвать функцию glOrtho(0, ШИРИНА_ОКНА, ВЫСОТА_ОКНА, 0); После этого вы получить ортографическую проекцию где начало координат OpenGL совпадает с началом координат окна, а ось OY направлена вниз. Но имейте ввиду что здесь не будет ни какой перспективы, то есть рисовать 3D пространство не получится
RomiKon вне форума Ответить с цитированием
Старый 24.04.2011, 14:17   #3
mikethepurple
Новичок
Джуниор
 
Регистрация: 24.04.2011
Сообщений: 8
По умолчанию

Нет, не для 2D. Про glOrtho я, конечно же, знаю, но проблема в том, что рисовать мне нужно именно что трехмерные кубы.
mikethepurple вне форума Ответить с цитированием
Старый 24.04.2011, 14:19   #4
mikethepurple
Новичок
Джуниор
 
Регистрация: 24.04.2011
Сообщений: 8
По умолчанию

И мне, кстати, gluOrtho2d больше нравится
mikethepurple вне форума Ответить с цитированием
Старый 24.04.2011, 14:31   #5
mikethepurple
Новичок
Джуниор
 
Регистрация: 24.04.2011
Сообщений: 8
По умолчанию

Попробую описать задачу так - мне нужно, чтобы у меня по экрану двигались трехмерные объекты. Я должен уметь создавать их в произвольном месте произвольной формы, заданными координатами. Я должен уметь двигать их, соответствуя заданной функции опять же, заданной через координаты. И я подумал, что было бы нифига не удобно каждый раз переводить это все в координаты OpenGL, а написать небольшой классик, умеющий делать вот такой перевод, чтобы я мог интуитивно программировать, а не париться насчет матриц и их преобразований.
mikethepurple вне форума Ответить с цитированием
Старый 24.04.2011, 14:37   #6
RomiKon
Форумчанин
 
Регистрация: 11.04.2010
Сообщений: 143
По умолчанию

Не в ту сторону думаешь, не разрывайся между координатами окна и OpenGL, а смело переходи на на систему координат OpenGL. В них и работай. При обновлении кадра возращаешь единичную матрицу преобразований. Рисуешь объекты и так далее. Это всё будет в разы проще чем то чем ты собираешься заниматся. А если тебе сё это нужно для выделения объектов, то у OpenGL есть для этого свои средства=)
Да кстати на будущие тебе, glOrtho2D не позволяет работать с буфером глубины
RomiKon вне форума Ответить с цитированием
Старый 24.04.2011, 14:56   #7
mikethepurple
Новичок
Джуниор
 
Регистрация: 24.04.2011
Сообщений: 8
По умолчанию

Понимаешь, у меня задача поставлена так, что на вход я обязан подавать координаты окна. Тут уж ничего не поделаешь. Если бы я писал трехмерный шутер, я бы не парился и делал бы все в родных координатах. Но здесь я просто напросто должен подавать координаты и новые пересчитанные координаты в, черт подери, координатах.
Считай, что я пишу 3дМакс.
mikethepurple вне форума Ответить с цитированием
Старый 24.04.2011, 15:25   #8
RomiKon
Форумчанин
 
Регистрация: 11.04.2010
Сообщений: 143
По умолчанию

Есть такая книжечка Красного по OpenGL, так там в шестой главе создаётся жалкое подобие 3dsmax =) Есть небольшая глава посвящёная связи экраных координат с пространсвеными, к сожалению на Delphi но может чем поможет?
RomiKon вне форума Ответить с цитированием
Старый 24.04.2011, 15:31   #9
mikethepurple
Новичок
Джуниор
 
Регистрация: 24.04.2011
Сообщений: 8
По умолчанию

Да, давай, возможно, будет полезно. Я тут новенький, если знаешь кого еще на форуме, кто разбирается, может скинешь им ссылку на тред, было бы очень приятно ^^
mikethepurple вне форума Ответить с цитированием
Старый 24.04.2011, 15:32   #10
.pixel
c++, dx/ogl
Форумчанин
 
Аватар для .pixel
 
Регистрация: 10.11.2008
Сообщений: 131
По умолчанию

mikethepurple
Цитата:
проблема в том, что рисовать мне нужно именно что трехмерные кубы.
Рисуй свои 3д объекты в текстуру, а потом накладывай ее на прямоугольник и рисуй где надо в орто режиме.
“Batch, Batch, Batch:” What Does It Really Mean?
I am a donut! Ask not how many tris/batch, but
rather how many batches/frame!
.pixel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Координаты в OpenGL Delphi Gelirgwenn Помощь студентам 2 20.04.2011 10:09
OpenGL координаты zumm Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 06.07.2010 09:19
Координаты A_Orlov Паскаль, Turbo Pascal, PascalABC.NET 0 09.06.2010 20:17
Координаты х у Onek Помощь студентам 4 17.05.2010 16:37
координаты Aram Общие вопросы C/C++ 5 08.06.2007 20:03