На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Елена Кружкова (Все сообщения пользователя)

Поиск  Пользователи  Правила  Войти
Форум » Пользователи » Елена Кружкова
Выбрать дату в календареВыбрать дату в календаре

Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 71 След.
Рисование 3d объекта с помощью функций из m3dapi
 
Отрисовка трехмерного объекта, имеющегося на карте, производится функцией m3dPaintObject (m3dapi.h).
Отрисовка пользовательского объекта, которого нет на карте и он создается программно, выполняется функцией m3dPaintUserObject.
Вызов отрисовки отдельных объектов производится после вызова функции рисования всей модели, между вызовами функций начала рисования 3D сцены и окончания.
Например:[CODE] m3dBeginPaint(Context3D);

 m3dPaintModel(Map3D, &ModelParm);
 m3dPaintUserObject(&Ident3d, CursorParm, 0, 0, 0);

 m3dEndPaint(Context3D);
[/CODE]Для отрисовки отдельного объекта необходимо единожды подготовить параметры его рисования.
Например: [CODE] // Создаем объект для отображения курсора
 if (HCursorObj == 0)
 {
   // Cоздать пустой объект с трехмерной метрикой на первом листе карты
   HCursorObj = mapCreateObject(HMap, 1, IDDOUBLE3, 0);
   if (HCursorObj == 0)
     return;
   // Создаем первую точку в объекте для ее последующей замены на текущее положение курсора
   mapAppendPointPlane3D(HCursorObj, 0.0, 0.0, 0.0, 0);
 }

 // Открываем сервисный классификатор служебных объектов и его 3D-библиотеку
 mapGetPathShellUn(path, sizeof(path));
 ::SplitThePath(path, dir, drive, NULL, NULL);
 ::MakeThePath(pathUN, dir, drive, WTEXT("service"), WTEXT("rsc"));
 HServiceRsc = mapOpenRscUn(pathUN);

 if (HServiceRsc == 0)
   return;
 if (mapIsActive3DLibrary(HServiceRsc) == 0)
   return;

 if (mapInitRsc3D(HServiceRsc) == 0)
   return;

 // Получаем идентификатор описания для загрузки текстур в контекст OpenGL
 // из service.rsc и одиночных служебных текстур
 if (BindUserTex == 0)
   BindUserTex = t3dIniBindTex(Context3D);
 if (BindUserTex == 0)
   return;

 // Находим внутренний код объекта
 int incode = mapGetRscObjectCodeByKey(HServiceRsc, "TYPECURSOR1");
 if (incode == 0)
   return;
 // Ищем параметры изображения обычного курсора
 F3DTREE* ftree = (F3DTREE*)mapGetRsc3DParam(HServiceRsc, incode, 0);
 if (ftree == 0)
   return;

 // Сохраняем параметры для их последующего изменения под измененную текстуру
 CursorParm = ::AllocateTheMemory(ftree->Length + sizeof(IMG3DTRANSFORM));
 if (CursorParm == 0)
   return;
 memcpy((void*)CursorParm, (void*)ftree, ftree->Length);

 // Заполняем структуру описания характеристик объекта 3D-сцены V3D_IDENT
 Ident3d.Map = HMap;
 Ident3d.Map3d = Map3D;
 Ident3d.Obj = HCursorObj;
 Ident3d.Rsc = HServiceRsc;
 Ident3d.BindTex = BindUserTex;
 // Получение кода библиотеки 3D-параметров
 Ident3d.CodeLib = mapGetRsc3dObjectLibraryCode(ident.Rsc, incode, 0);
[/CODE]Обращаю внимание, что если какой-то параметр не инициализирован, то 3D-объект не будет рисоваться и всё нужно аккуратно закрывать и освобождать.
Для объекта, меняющего свое местоположение (курсор или подвижный объект), перед рисованием нужно изменить метрику объекта с помощью функции mapUpdatePointPlane3D. Обязательно учитывайте, что в данную
функцию координаты нужно подавать в метрах на местности (в системе координат карты).
Могут понадобиться функции пересчета из оконных координат (пикселов) в метры на местности m3dWindowToPlane и обратно m3dPlaneToWindow.
Функции отображения трёхмерных карт
 
Добрый день!

Да, в локальной версии фоновой подгрузки пока нет.
При работе с WMS-сервером это сделано. Готовая реализация - GIS WebServer SE:
[URL=https://gisinfo.ru/products/giswebserverse.htm]https://gisinfo.ru/products/giswebserverse.htm[/URL]

инструментарий для разработки веб-приложений - GIS WebToolKit SE
[URL=https://gisinfo.ru/products/giswebtoolkitse.htm]https://gisinfo.ru/products/giswebtoolkitse.htm[/URL]
Функции отображения трёхмерных карт
 
Добрый день!

Лог-файл посмотрели. Спасибо за переданную информацию!
Указанная ошибка компиляции шейдера из-за неподходящей версии OpenGL не влияет на отрисовку подложки карты, она влияет на отрисовку 3D-подписей. Но, как Вы правильно уточнили, проблема отображения текстур в данном случае связана с работой 3D на встроенной видеокарте. Мы не рекомендуем пользоваться встроенными видеокартами, что отражено в нашей документации. При работе со встроенной видеокартой отображение 3D зависит даже от версии операционной системы, так как по разному могут распределяться ресурсы процессора и памяти для графики.
Вывести предлагаемое Вами диагностическое предупреждение "Не удалось инициализировать OpenGL" мы тоже не можем, так как формально 3D всё-таки инициализируется и работает, но сбоят отдельные функции OpenGL. Мы запланируем доработку диагностических возможностей определения полноты построения 3D.
Функции отображения трёхмерных карт
 
[QUOTE]Олег Темеров написал:
Как правильно установить начальную точку обзора и угол направления "камеры"? К примеру, в центре карты на высоте 1000 метров?[/QUOTE]
В пример текстов функций инициализации и рисования 3D-модели карты добавлена функция инициализации параметров отображения:
[URL=https://disk.yandex.ru/d/_YZ-6MwLUZQE2Q]https://disk.yandex.ru/d/_YZ-6MwLUZQE2Q[/URL]
Функции отображения трёхмерных карт
 
Добрый день!

Подготовлен пример текстов функций инициализации и отрисовки 3D-модели карты с указанием порядка вызова  api-функций заголовочного файла m3dapi.h и пояснениями:
[URL=https://disk.yandex.ru/d/_YZ-6MwLUZQE2Q]https://disk.yandex.ru/d/_YZ-6MwLUZQE2Q[/URL]
Изменено: Елена Кружкова - 24.08.2022 17:00:51
Отображение обстановки в контексте собственного 3D-движка
 
Добрый день!

В составе GIS ToolKit у нас предусмотрен компонент для отображения в 3D документа-карты в целом. API функционал для 3D-отображения отдельных объектов не вынесен на внешний уровень.
Настроить 3D вид траектории движения объекта
 
Добрый день, Александр!

Сейчас в программе такой возможности нет, вид траектории задан программно. Предлагаю добавить возможность выбора вида траектории в следующую версию ПО (14.3.1).
Уточните, пожалуйста, Вам удобен будет выбор вида траектории как 3D-вида объекта, заданного в классификаторе сценария?
Не отображаются текстуры в 3D Навигатор, текстуры
 
Добрый день, Александр!

Переданную Вами проблему отображения текстур 3D-моделей при проигровании сценария решили. Исправления войдут в следующие обновления версии ГИС (14.2.1.16 и выше). Спасибо большое за помощь!
Не отображаются текстуры в 3D Навигатор, текстуры
 
Уточнила. Проблема отображения текстур любых моделей классификатора возникает при отображении сценария с этими моделями. Просто на трехмерной карте эти модели отображаются правильно, с текстурами.
Будем разбираться и сообщим Вам о результатах в ближайшее время.
Не отображаются текстуры в 3D Навигатор, текстуры
 
Понятно. Я искала ранее указанные модели. Модель "Судно ПСКР Соболь" есть. С этим классификатором возникают такие же проблемы, как Вы писали ранее?
Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 71 След.



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности