Как то читал книгу по unity3d, и там было написано что для выбора модели в пространстве используются какие то алгоритмы. Вот вопрос, какие есть алгоритмы, с помощью которых можно понять на какую модель в пространстве я кликнул мышкой? Точно не помню, но вроде бы ещё был какой то вариант, что надо бросать луч как то и с помощью луча уже узнавать какой объект пересекается с ним.
Если вопрос не понятен, то повторяю, нужно знать способы, чтобы выбрать 3d модель в пространстве, ну можно и спрайт, а то я спрайт выбираю обычно по координатам, но может есть более технологичный способ. Если будут примеры кода, то пусть они будут на си или с++, мне так будет понятно.
Есть пара общепринятых вариантов:
Выводить в невидимый буфер все объекты разными цветами, и для выбора объекта, читать пиксель из буфера, и смотреть какого он цвета. Спосов применяется и работает до сих пор, если у вас много разной сложной геометрии (к примеру, гора из 100 000 вилок). Не забудьте отключить антиалиасинг и убедитесь, что не идет смешивания цветов из-за него. В зависимости от типа и динамики сцены, рисовать в буфер можно только при изменении сцены, и только тот 1 пиксель, что лежит под курсором.
Так называемый ray-picking - когда вы кастуете луч из под курсора в пространстве камеры и проверяете с каким ближайшим объектом он пересекается. Соответственно, гранулярность объектов и поиска пересечений вы задаете сами. Если сцена простая, то можете просто все треугольники всех моделей перебирать. Если чуть сложнее пары кубов и шарика, то для начала, можете все объекты обернуть в BB (Bounding Boxes), для упрощения грубого поиска и при попадании в BB уже проверять этот объект подробнее. Сами объекты можно так же поделить через Octree на фрагменты и искать пересечения с непосредственно треугольниками из каждого фрагмента.
Подход к типу и иерархии поиска объекта под курсором во многом диктуется типом сцены. То что лучше работает для RTS, не всегда подходит шутеру или CAD.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Прохожу курс по с++ и там в рекомендуемом решении задачи написано:
Стоит задача: поднять сервер с бд, с несколькими таблицами, в которые юзеры будут заносить значенияВ дальнейшем эти значения нужно будет...