[QGIS-Developer] GSoC project scope discussion

Martin Dobias wonder.sk at gmail.com
Tue Mar 10 01:51:47 PDT 2020


Hi Nedjima

Welcome to the qgis-dev mailing list! Please see my comments below.

On Sun, Mar 8, 2020 at 10:04 AM BELGACEM NEDJIMA <gb_nedjima at esi.dz> wrote:
>
> Hello QGIS developers,
> I am Nedjima Belgacem, a fourth year computer science student at ESI-Algiers (Ecole supérieure d'informatique), Algeria. I am willing to contribute to QGIS project by working on QGIS 3D features as a part of GSoC program and beyond. I am proficient in C++ and python, I have experience working with Qt and OpenGL.

That sounds great!

I have seen on your github profile that you have developed a graphics engine:
https://github.com/NEDJIMAbelgacem/Graphics_Engine
Could you tell us a bit more about it? Maybe add some screenshots with
3D eye candy? :-)

> I would like to ask some questions and document myself about the capabilities of QGIS 3D.
> 1) Is there a written list of features that QGIS 3D has ? I don't see the 3D map view fully integrated within QGIS especially for scripting.

There is some user documentation here:
https://docs.qgis.org/testing/en/docs/user_manual/introduction/qgis_gui.html#d-map-view
But it is not really a complete list of features...

Regarding python scripting, there is limited integration: you can
configure 3D symbols for vector layers and mesh layers, but currently
you cannot interact with a live 3D scene in Python. This is mainly
because that would require addition of PyQt3D as a dependency of QGIS
(the "ordinary" PyQt5 does not contain python wrappers for Qt 3D
framework).
https://www.riverbankcomputing.com/software/pyqt3d/intro
So far I did not need that so I skipped the integration for now, but
it would be definitely useful to have.

> 2) From the proposed project ideas list I saw in the QGIS wiki I feel like we need to implement a graphics engine for the 3D map view that takes MDAL data. I would like to know more about the already existing structure of rendering and whether OpenGL is used currently or not. I read through the docs but it looks a little confusing to me (lots of classes).

The proposed project ideas are mostly independent from MDAL data. For
example with vector layer data we tessellate them (if needed) to
create meshes and display them in 3D views. By the way, MDAL data
already can be displayed in the 3D views (in QGIS 3.12) and there are
more improvements coming, e.g. https://github.com/qgis/QGIS/pull/34945

All 3D rendering is done with Qt 3D and yes, it is based on OpenGL. We
use some basic shaders from Qt 3D Extras library (e.g. material for
Phong lighting), but there are several custom shaders we use (e.g.
rendering of lines, instanced rendering of points, rendering of points
as billboards, mesh layer rendering).

I would be happy to discuss with you the list of ideas and what I
think would be the necessary tasks to complete them. I am also open to
any own ideas about things that could be improved in QGIS 3D.

> 3) I find the navigation of the 3D map view quite hard to use properly (I understand that's a problematic thing because I already had troubles with that while making my own OpenGL graphics renderer). Do other people also find that a problem ? I may try getting into that if you want.

I have seen people "fight" with the navigation too... There are surely
some ways how to improve this - but first of all we should make a list
of problems with the navigation and see how we could fix them.

If you would have some free time, it would be good to set up a
teleconference to discuss things in a bit more detail.

Regards
Martin


More information about the QGIS-Developer mailing list