Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
aaveNs
0 / 0 / 0
Регистрация: 14.12.2012
Сообщений: 13
#1

Графика и программирование - C++

12.11.2013, 22:16. Просмотров 327. Ответов 8
Метки нет (Все метки)

Недавно дочитал книгу "Философия С++" и половину Страуструпа. И понял, что желаю заниматься графикой и играми в частности. Нашел учебники по OpenGL. Но вопрос такой, что не могу понять вообще как идет взаимодействие с графическими объектами, игровая логика и пр.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2013, 22:16     Графика и программирование
Посмотрите здесь:

Параллельное программирование + графика - C++
Проблема такая: препод сказал написать программу, где будут два квадрата двигаться туда сюда и что бы их прорисовка, движение и т.д. были...

Программирование - C++
Народ,пожалуйста,подскажите как к вот этой задаче программу написать? :Даны два предложения. Для каждого слова первого предложения...

программирование на С - C++
номер 223 д) спасибо большое заранее

Программирование на С - C++
Может кто помочь составить код по заданию ? "Написать программу,которая проверяла бы ,упорядочен ли массив по неубыванию (хi<=xi+1), ...

программирование на С++ - C++
Помогите пожалуйста решить 6 задачек в С++ (или хотя бы несколько), вопрос жизни и смерти... 1. Дано вещественное число X и...

Программирование с файлами - C++
Ведомость абитуриентов содержит ФИО, город проживания, суммарный балл. Вывести информацию об абитуриентах, проживающих в г. Минске и...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
12.11.2013, 22:52     Графика и программирование #2
aaveNs, насколько я понимаю, графика - последствия обработки данных, скрытых от пользователя. То есть если вы делаете крестики-нолики, у вас в программе матрица 3х3 с данными, а на экран вы отрисовываете ее состояние.
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
13.11.2013, 09:13     Графика и программирование #3
Все, что вы видите на экране - это работа видеокарты. OpenGL предоставляет средства для работы с драйвером: рисование, операционная система предоставляет область рисования: окно, экран. Например, используя OpenGL, вы запрашиваете у видеокарты с помощью специальных команд отобразить на предоставленной операционной системой области пиксели в виде какой-нибудь фигуры.
SatanaXIII
Супер-модератор
Эксперт С++
5594 / 2628 / 240
Регистрация: 01.11.2011
Сообщений: 6,469
Завершенные тесты: 1
13.11.2013, 09:40     Графика и программирование #4
Рендеринг.
newbie666
Заблокирован
13.11.2013, 10:06     Графика и программирование #5
Цитата Сообщение от aaveNs Посмотреть сообщение
как идет взаимодействие с графическими объектами, игровая логика и пр.
В современных графических API типа DirectX !!! и OpenGL взаимодействие идёт следующим образом:
Все манипуляции с 3D объектами, светом и прочими эффектами идёт как бы в воображаемом мирке, тоесть в нём делаешь что хочешь и после того как всё сделал на данным момент времени, ну как бы для данного кадра - дальше уже всё это дело из воображаемого 3D мирка начинает проецироваться на 2D - то есть на твой экран. Что попало на экран - ты видишь, ну на пример тебе летит ракета в лоб )) А что как бы в стороне, например слева на тебя в далеке гоблин с топором бежит в воображаемом мирке - ты не видишь, т.к. после проецирования твоего 3д мирка в 2д экран - оказывается, что его координаты где - то в минусе - тоесть если ты смотришь на экран, он у тебя как бы бежит где - то слева в комнате ))) А там экрана нет - и ты его не видишь...

Объекты двигаются просто - просто координаты всех точек объекта модифицируешь, например, согласно перемещению, ну скажем, всем им прибавляешь какое - то число ( в 3д мирке ) и всё - в 3д он сдвинулся
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
13.11.2013, 10:15     Графика и программирование #6
Цитата Сообщение от newbie666 Посмотреть сообщение
Объекты двигаются просто - просто координаты всех точек объекта модифицируешь, например, согласно перемещению, ну скажем, всем им прибавляешь какое - то число ( в 3д мирке ) и всё - в 3д он сдвинулся
в опенгл, директикс для этого применяются матрицы перемещения, вращения, масштаба. Нет смысла двигать каждую вершину обьекта, если видеокарта сделает это в несколько раз быстрее.
newbie666
Заблокирован
13.11.2013, 10:26     Графика и программирование #7
Цитата Сообщение от programina Посмотреть сообщение
Нет смысла двигать каждую вершину обьекта, если видеокарта сделает это в несколько раз быстрее
бугага, ну а ты думаешь я что имел ввиду? А по твоему когда ты применяешь трансформацию матрицей, видео карта не каждую точку по отдельности обрабатывает? )))))
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
13.11.2013, 10:52     Графика и программирование #8

Не по теме:

Цитата Сообщение от newbie666 Посмотреть сообщение
бугага, ну а ты думаешь я что имел ввиду?
Я думаю, что вы имеете в виду это:
всем им прибавляешь какое - то число


Задаются матрицы проекции, вида и модели. Матрица проекции определяет 3д пространство, которое будет проецироваться на экран. Для ее вычисления нужны ширина, высота экрана, угол пирамиды, отсеченной по ближней и дальней границе, и сами расстояния отсечения от точки наблюдателя.
Матрица вида определяет вектор наблюдения, она содержит точку глаза, точку, в которую смотрит глаз и направление вертикальной оси.
Матрица модели - это произведение матриц перемещения, вращения и масштаба обекта в нужной последовательности.
Все эти матрицы умножаются или в самой программе или в шейдере(в видеокарте), в результате чего получается матрица MVP (model, view, projection), которая в видеокарте проецируется при помощи отдельных ее процессоров (вершинный процессор, клиппер и др.) в плоское экранное изображение.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2013, 11:03     Графика и программирование
Еще ссылки по теме:

ПРОГРАММИРОВАНИЕ ФОРМУЛ - C++
Составить алгоритм и программу для вычисления значений функции для нескольких значений аргумента(ов) \формула дана в рисунке.\ Я...

Программирование по юникс - C++
Добрый вечер всем ;) Почти для каждой работы требуется "знакомство/программирование под юникс" . Гуглить я гуглил но до полной...

Оконное программирование - C++
всем привет, кто поможет реализовать закрытие данной программы клавишей ESCAPE? т.е. при нажатии эскапе окно должно закрываться заранее...

Программирование вероятности! - C++
Привет! Помогите решить проблему: Пусть есть наборы: категория-мат.ожидание(не вероятность). Например: ручка - (0,18) карандаш...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
newbie666
13.11.2013, 11:03     Графика и программирование
  #9

Не по теме:

Цитата Сообщение от programina Посмотреть сообщение
при помощи отдельных ее процессоров
ну давай мне ещё и про SM процессоры Kepler и CUDA расскажешь ...

Yandex
Объявления
13.11.2013, 11:03     Графика и программирование
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru