OpenGL - Урок 10 - Первые шаги в 3D. Учимся осматриваться - управление камерой.

preview_player
Показать описание
Версия OpenGL 1.1

Это видео для тех, кто ни разу не использовал OpenGL или другие графические движки. Но прошел предыдущие 9 уроков.

В этом видео мы:
+ узнаем как работать с камерой
+ научимся ходить в 3Д пространстве

Уроки по теме:

Безвозмездная помощь каналу:
VTB - 5368 2900 3162 0349 Антон.
Рекомендации по теме
Комментарии
Автор

Народ! Очень вас прошу воздержаться от оскорблений. Посты с оскорблениями буду удалять. Демократия демократией, но давайте уважать друг друга и право любого человека на свое мнение.

beginend
Автор

Ничего лучше в сети по OpenGL не видел. От новичков одно пожелание - Антон, обязательно продолжай, мы хотим освоить GL с самого начала, так как такой подход, думаю, проще для освоения.

mtp
Автор

Антоха! Да ты реально круть! Давай, жги! Жду следующие выпуски с нетерпением. =)

BrownAleks
Автор

Да блин, понял я, по меньше буду сидеть. Лучше книжку почитаю. Спасибо за урок по 3D!

icwxqww
Автор

Спасибо большое! Самая лучшая и простая реализация камеры. Странно что я об этом сразу не подумал

Qwaz_
Автор

На 5:55 автор перемудрил и написал интуитивно непонятный код, где pos.x почему-то зависит от синуса, а pos.y - от косинуса, хотя вроде как всех в школе учили, что наоборот, x - косинус, а y - синус. Объясняю, как сделать код понятным (для наглядности представляйте в голове единичную окружность из тригонометрии).

На 28-й строчке нужно убрать минус перед zAlfa и приплюсовать дополнительно 90 градусов (а потом перевести в радианы). Дело в том, что движение камеры вперёд, которое выбрано здесь в качестве базового движения без изменения угла ugol - это движение вверх (в сторону Y) в двумерной системе координат OXY. А так как угол, равный нулю, направлен в сторону X, нам требуется дополнительный разворот на 90 градусов, а не минусование zAlfa, чтобы просчитать перемещение камеры вперёд.

На 32-й строчке нужно не отнять, а прибавить pi/2 к переменной ugol, так как движение влево - это движение в сторону, противоположную X, движение в сторону pi на единичной окружности, то есть к нашему базовому углу в 90 градусов надо прибавить ещё 90, чтобы получить 180 градусов или pi на единичной окружности - желаемое направление.

На 33-й строчке - наоборот, нужно отнять pi/2 от угла, так как движение вправо - это движение в сторону нуля на единичной окружности, и базовый угол в 90 градусов надо уменьшить на 90 градусов.

Ну и наконец, на 36 и 37 строчках надо поменять синус и косинус местами, чтобы иксу соответствовал косинус, а игреку - синус, как и должно быть.

rachansky
Автор

хороший урок урок по песку и воде можно применить и в других местах

tvnnrbt
Автор

Поначалу я думал, что у меня скорость воспроизведения видео стоит на 1, 5. Оказалось. Я чуть не обалдел. Вот так скорость набора. Парень талантище

ajaymansur
Автор

Камера настолько сильная, что двигает всю систему координат

stephenhotking
Автор

Ураааа!!!! Давай Skyrim! Первая в мире 3D игра на C!

warriorofredoran
Автор

А где вы все это изучали? Книги, сайты?

highest
Автор

Круто! У меня появился вопрос: насколько эффективно вращать/перемещать систему координат, а не саму камеру? Не будет ли это приводить к лагам в какой-нибудь простенькой 3D игре?

schwabbe
Автор

Привет, можешь посоветовать книги, по изучению WinApi, OpenGL? И стоит ли сразу переходить к OpenGL без знания WinApi?

kirillpupkov
Автор

Помню когда на ОГЛ сидел там была и другая типо современная функция работы с камерой вида.

atlasua
Автор

Антон хочу купить курс ваш, подскажите когда выйдет?

eprst
Автор

Здравствуйте!, у меня случилась кое какая проблема у меня при запуске появляется чёрный экран в место поля

bl.exagear
Автор

Добрый день. Благодарю за прекрасные уроки. Вопрос - ф-я GetKeyState(VK_SHIFT) после однократного нажатия SHIFT бесконечно возвращает 1, следующие нажание и она бесконечно возвращает 0, так по кругу. Не могу понять это в системе дело, исходнике, или ещё где-го. Публикация исходников помоглабы разбираться с таки моментами. Может они где-то выложены?

korvinliquid
Автор

можеш написать урок как сделать сохранения и загрузки например в редакторе который создавал в 34 уроке

tvnnrbt
Автор

Все очень класно, но есть вопрос: glRotatef() после вызова изменяет матрицу (очевидно), но ведь когда мы поворачиваем камеру уже по 2й оси - glRotatef() логично будет изменять текущую матрицу, то есть ту которая получилась после первого поворота, а не старую (та которая до 1го поворота), и в таком случае логично вращение является некоректным, разве нет?

KloiUA
Автор

Почему ты используешь собственный BOOL, а не стандартный _Bool (или bool из stdbool.h )?

zx_gamer