Quest3D - Русскоязычное сообщество

Quest3D => Логика => Тема начата: Patiffonka от 06 Января 2010, 10:28:17



Название: как расставить маркеры по карте типа?
Отправлено: Patiffonka от 06 Января 2010, 10:28:17
Каким образом можно привязать 2d text к 3д координатам. Идея в том, что на карте городка при виде сверху должны включаться номера домов над крышами. 3д текст сильно перегрузит сцену.. текстура с альфа каналом на плэйн тоже не катит, домов больше 500.. текстуры рисовать долго.. идеальный вариант привязать 2дтекст к объекту сцены.


Название: Re: как расставить маркеры по карте типа?
Отправлено: DimiS от 06 Января 2010, 22:36:02
ну в общих чертах у меня бы это выглядело так:
имея 3д координаты каждого нужного мне объекта, я бы добавлял к ним некую константную высоту, ну например +10 по y координате. Далее, у вектор оператора имеется функция проэцирования 3д координаты на экран, ориентируясь на эту координату +-ширина текста рисуем необходимый текст с помощью ченела TextOut.
при большом количестве обращений к ТекстАуту предрекаю тормоза, но сделай для начала так, потом думаю разберёшься как и чо подправить.


Название: Re: как расставить маркеры по карте типа?
Отправлено: Patiffonka от 07 Января 2010, 12:07:13
Спасибо!!  )) Сам бы не дошел.. как добью, так напишу как сделал. ))


Название: Re: как расставить маркеры по карте типа?
Отправлено: Patiffonka от 07 Января 2010, 19:33:20
вот впринципе и справился, только я вместо текстаута расставил кнопки, с которых можно посмотреть информацию о здании. вопрос на засыпку. когда используется zoom factor на камере, позиция кнопки смещается (( как бы придумать формулу, которая будет подгонять вектор с учетом зум фактора?


Название: Re: как расставить маркеры по карте типа?
Отправлено: Patiffonka от 09 Января 2010, 16:43:19
Для улучшения производительности судя по всему, удобнее всего использовать Quest3d Text вместо TextOut. Ивозможностей побольше и требования поменьше. А в качестве кнопки его можно юзать с помощью DetectMouseCollision.