Russian Qt Forum
Ноябрь 24, 2024, 06:58 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2] 3 4   Вниз
  Печать  
Автор Тема: Передача координат вершин фигуры по сети  (Прочитано 18917 раз)
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #15 : Март 28, 2014, 21:25 »

Спасибо большое! А есть ли туториалы для новичков с ориентацией на Qt?
Зачем?
От Qt требуется создать окно (контекст opengl), все остальное делается средствами opengl.
Записан
8Observer8
Гость
« Ответ #16 : Март 28, 2014, 21:31 »

Пожалуй, Вы правы. Классы-обёртки Qt можно по Qt-примерам и Qt-документации посмотреть.

Я бы себе вот эту книжку купил, если бы умел заказывать на amazon.com и были бы деньги) В сети её не нашёл: http://www.amazon.com/OpenGL-Tutorials-using-Omid-Sakhi-ebook/dp/B00DHR9S9C
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #17 : Март 28, 2014, 21:38 »

В сети есть ответы на любые вопросы. Улыбающийся
Не занимайтесь собирательством книг, лучше начинайте делать программу: придумайте идею, проектируйте, пишите код.
Заглядывайте в книги за ответами на конкретные вопросы, а не читайте их от корки до корки.
Вам нужна интересная тема, для вас интересная.
Записан
8Observer8
Гость
« Ответ #18 : Март 28, 2014, 21:54 »

Спасибо огромное! Очень дельные советы! Буду придерживаться Улыбающийся
Записан
OKTA
Гость
« Ответ #19 : Март 28, 2014, 22:03 »

Может находил, на мало ли

http://www.gamedev.ru/code/articles/OpenGL_Qt4
http://habrahabr.ru/post/132674/
Записан
8Observer8
Гость
« Ответ #20 : Март 28, 2014, 22:11 »

Большое спасибо! Первую ссылку находил, а вторую нет Улыбающийся Первую находил ещё летом, просто скопировал код, запустил, работало. Читал описание, но почти ничего не понял. Завтра попробую отдалять и приближать пирамиду (с помощью колёсика мыши) и чтобы в другом окне тоже менялось. С вращением нормально работает:


« Последнее редактирование: Март 28, 2014, 22:13 от 8Observer8 » Записан
kamre
Частый гость
***
Offline Offline

Сообщений: 233


Просмотр профиля
« Ответ #21 : Март 28, 2014, 22:15 »

А есть ли туториалы для новичков с ориентацией на Qt?
Про использование OpenGL в Qt можно почитать:
http://qt-project.org/doc/qt-5/qtgui-openglwindow-example.html
http://www.kdab.com/opengl-in-qt-5-1-part-1/

Выше уже написали, что ориентации на Qt особо нет в OpenGL tutorials, т.к. это независимые вещи. В Qt есть некоторые классы для удобства, но их совсем не обязательно использовать.
Записан
8Observer8
Гость
« Ответ #22 : Март 28, 2014, 22:28 »

Спасибо большое! Улыбающийся

Я ещё такие примеры нашёл:

- примеры NeHe (на панели справа): http://nehe.gamedev.net/
- примеры NeHe на русском: http://pmg.org.ru/nehe/

- примеры NeHe на Qt:
- http://www.digitalfanatics.org/projects/qt_tutorial/chapter14.html
- http://qt-project.org/wiki/NeHe_in_Qt

P.S. Пока не знаю насколько эти примеры могут пригодиться Улыбающийся
Записан
8Observer8
Гость
« Ответ #23 : Март 29, 2014, 06:53 »

Если пользователь у себя в программе приближает (отдаляет) фигуру, то зачем другому пользователю видеть у себя эти изменения? Не представляю где бы нужна была такая функциональность.

Но зато здесь появляется вопрос: при увеличении фигуры в клиенте мы не можем просто передать серверу только лишь: xRotate и yRotate или матрицу ориентации. Нам нужно передавать положение наблюдателя (камеры). Как в OpenGL узнать координаты наблюдателя относительно начала координат?
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #24 : Март 29, 2014, 07:35 »

Но зато здесь появляется вопрос: при увеличении фигуры в клиенте мы не можем просто передать серверу только лишь: xRotate и yRotate или матрицу ориентации.
Нужно будет передать еще дистанцию, которую и устанавливать на сервере в glTranslatef.
Но можно передавать и матрицу трансформации, там уже будут учтены все повороты и перемещения.

Нам нужно передавать положение наблюдателя (камеры). Как в OpenGL узнать координаты наблюдателя относительно начала координат?
Почитать документацию. Улыбающийся
По умолчанию камера находится в центре системы координат.
Мы можем двигать фигуру относительно статичной камеры или двигать камеру относительно статичной фигуры или двигать и то и другое. В вашем примере, камера статична, находится в центре системы координат, а двигается фигура.
Записан
8Observer8
Гость
« Ответ #25 : Март 29, 2014, 07:52 »

Что там относительно чего двигается, я пока не понимаю Улыбающийся

Про матрицу трансформации попытаюсь найти что-нибудь доходчивое. Спасибо! Улыбающийся
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #26 : Март 29, 2014, 07:55 »

Попробуйте это: http://u3d.agava.ru/doc/theory/matrix_ops.shtml
Записан
8Observer8
Гость
« Ответ #27 : Март 29, 2014, 08:00 »

Спасибо огромное! Ох, уж эти матрицы Улыбающийся
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #28 : Март 29, 2014, 09:54 »

Завтра попробую отдалять и приближать пирамиду (с помощью колёсика мыши) и чтобы в другом окне тоже менялось. С вращением нормально работает:
Не будем притворяться, понимания это не добавляет, дело сводится к запоминанию вызова glXXX который "это делает" Улыбающийся А если действительно хотите понять, то вот задачка

Есть фигура (хоть та же пирамида) матрица которой известна (т.е. она уже как-то смещена/повернута). Написать 2 ф-ции

1) Вращения фигуры вокруг мировой оси Y  
2) Вращения фигуры вокруг локальной оси Y

Полагаем что ось вращения проходит через центр фигуры, а угол поворота - аргумент ф-ций

[OFF]Не, не потянет [/OFF]
Записан
8Observer8
Гость
« Ответ #29 : Март 29, 2014, 09:59 »

Спасибо большое за упражнение! Но я пока не знаю, чем отличаются локальная и мировая ось. Точнее, не знаю, что такое локальная ось. Мировая ось связана с началом системы координат.
« Последнее редактирование: Март 29, 2014, 10:07 от 8Observer8 » Записан
Страниц: 1 [2] 3 4   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.051 секунд. Запросов: 22.