![]() |
Модераторы: Rickert |
![]() ![]() ![]() |
|
Ravend |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 19.7.2005 Репутация: нет Всего: 1 |
Вы изложили но может у когонибудь есть другое мнение?
|
|||
|
||||
DENNN |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 3 Всего: 43 |
Есть. И даже несколько
![]() 1) Сделать так как нужно. Т.е. открыть учебник математики и использовать формулы центральной проекции для перехода из СК мира в СК экрана и поиска точки пересечения луча с плоск. экрана. На крайний случай просто разобраться как OGL перемножает матрицы и сделать то же самое у себя в программе, благо тут ума много не надо. 2) "Схалявить".По принципу Z-буфера закрасить в своем буфере участки экрана учитывая удаленность объекта. Затем проанализировать координаты мыши в этом буфере. 3) "Метод грубой силы". ПРи щелчке отрендерить баундинг-боксы в бек-буфер каждый уникальным цветом с заливкой без освещения и пр.. Цвет пиксела в месте клика мышкой и есть уникальный идентификатор. Думаю не надо объяснять почему способы расположенны в таком порядке? ![]() |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 7 Всего: 232 |
Среднее - и есть самое оптимальное
![]() -------------------- ![]() |
|||
|
||||
DENNN |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 3 Всего: 43 |
А вот и нет. Умножение вектора на две видовые матрицы обойдется гораздо дешевле, чем операции по заполнению еще одного буфера с анализом "глубины" перекрываемых пикселов в этом буфере. Важен еще и тот факт, что когда объектов много, то аналитический анализ будет давать больший прирост производительности чем буфер, а строк кода будет заметно меньше ![]() |
|||
|
||||
Vitaly333 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 6.11.2006 Где: Volgograd Репутация: нет Всего: 2 |
А поподробнее можно как это сделать на OpenGL Это сообщение отредактировал(а) Vitaly333 - 23.4.2009, 15:12 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Программирование игр, графики и искуственного интеллекта" | |
|
НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |