![]() |
|
Модераторы: 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. |