Мои (слабые) попытки задействовать Qt3D ничего не принесли. С одной стороны, объем переделок под него у меня получается огромный, а с другой неочевидно что можно с него поиметь по сравнению с "просто OpenGL".
Я пока вижу это так, что загрузка рельефа
Ну рельеф надо (откуда-то) иметь. И там тоже должен быть LOD (или его аналог)
Данные о рельефе и текстурах есть, с этим проблем нет. Проблема в том, как это отрисовать, и какие технологии при этом использовать.
Как я понял, все это можно сделать на OpenGL с использованием библиотек. Может подскажете какие именно?
С другой стороны Qt3D есть два преимущества, которые для меня важны. Во-первых на сколько я понял это просто обертка для OpenGL/OpenGL ES. А значит один код для всех поддерживаемых платформ. Во-вторых для простых задач кода придется написать поменьше чем при использовании OpenGL.
За последние пару дней исследования и редактирования примеров Qt3D кое-что начало проясняться. Некоторые вопросы отпали и остались такие:
1. Можно ли создать QEntity в С++, и потом использовать его в QML? Например как-то так:
//C++
class MapEntity : public Qt3DCore::QEntity {
MapEntity( Qt3DCore::QEntity* parent ) : Qt3DCore::QEntity(parent) {
...
}
}
// QML
Scene3D {
MapEntity {
id: map
...
}
}
2. Вопрос с событиями для Entity остался. Можно ли назначить обработчик на щелчек мышью по Entity? В примерах я не нашел.