Dear QGIS and OSGeo community,

The day has come, it's the last day of my GSoC project. Here, I present my
final report for the past three months of m work on this project.

I have made easy to remember the simple website for it also, you can check
it here: https://ismailsunni.github.io/GSoC-2019/

It's a really amazing experience, thanks for all your support.

Final Report
QGIS 3D Improvement: On-Screen Navigation, Bookmarks, Rendering Point
Feature as Billboard, and Measuring Tool

*Google Summer of Code 2019*
* Student - *Ismail Sunni* https://github.com/ismailsunni/
* Mentors:
  * Mentor 1 - *Martin Dobias* https://github.com/wonder-sk
  * Mentor 2 - *Peter Petrik* https://github.com/PeterPetrik
* Organization - *OSGeo* (http://www.osgeo.org/), *QGIS* (https://qgis.org/)
* Developer Community - *QGIS Developers *(
https://lists.osgeo.org/pipermail/qgis-developer/)

*Abstract*
QGIS 3D is a great feature that has been introduced in QGIS 3.0 in 2018. It
is still missing some features that are needed or can be helpful for the
user though. In this project, I will work on 4 improvements to fill that
missing features:
- On-Screen Navigation: help the user to navigate the 3D view
- Measuring Tool: measure distance in 3D view
- Rendering Point Feature as Billboard: show a point feature as a billboard
(use case: show icon location and point cloud rendering)
- Bookmarks: help the user to save a 3D view and/or go back to a saved 3D
view

*QGIS Before GSoC 2019*
* It's possible to navigate in 3D Map View by using mouse or keyboard. It's
quite easy to do it unless you are not familiar with it. Just like me. It's
easy to get lost and confused. You are not sure which key or movement to
zoom, tilt, pan, or rotate the map view.
* There is no way to do the measurement in 3D Map view.
* There is no billboard rendering support for a point in 3D.
* There is no bookmark feature to save a specific scene in the 3D map view.
There is only reset view which set the view from the top.

*Added Value of GSoC Project*
* On-Screen navigation for 3D Map View is added with these features: zoom
in and out, pan, rotate with a compas-like widget, tilt up and down. It is
merged to the code base and will be released in QGIS 3.10.
  screenshot:
https://github.com/ismailsunni/GSoC-2019/raw/master/img/3d_on-screen_navigation.jpg
* 3D Measurement Tool to measure distance in the 3D Map View is added. It
is merged to the code base and will be released in QGIS 3.10.
  screenshot:
https://github.com/ismailsunni/GSoC-2019/raw/master/img/3d_measurement_tool.jpg
* 3D Point Rendering as A Billboard is added that gives the option to
render a point a billboard. The billboard can be set with a symbol from
QGIS (including SVG).
  The PR has been reviewed by QGIS core committers, ready to be merged in
upcoming days.
  * The Pull Request https://github.com/qgis/QGIS/pull/31308
  * Last commit:
https://github.com/qgis/QGIS/pull/31308/commits/c0f6982fc00da7284f9960ef25c798e740c52e5e
  screenshot:
https://github.com/ismailsunni/GSoC-2019/raw/master/img/3d_billboard_rendering_for_points.jpg

*Work to be done / potential future work*
* 3D Map View bookmarks is not implemented in this project duration due to
time constraint since the billboard rendering implementation needs more
time than the initial expectation.
* Extra feature for 3D On-Screen Navigation: Make it as a floating widget,
but it will need to add another dependency if implemented with QtQuick or
extra work if implemented with manual rendering in the 3D map scene
* Extra feature for 3D Measurement Tool: Show the Z-value difference
between two consecutive points
* Extra feature for 3D Billboard Rendering for Point:
  * Add data-driven symbol support: It needs multi-texture rendering,
currently it only supports one texture.
  * Add a vertical line from the feature to the billboard

*How to use the features*
* All merged featured can be used in QGIS master by building it from source
(https://github.com/qgis/QGIS/blob/master/INSTALL) or in the incoming QGIS
3.10 release
* Video about how to use it:
  * [3D On-Screen Navigation](https://www.youtube.com/watch?v=jp197BEymks)
  * [3D Measurement Tool](https://www.youtube.com/watch?v=gW0xu595HKA)
  * [3D Rendering Point as A Billboard](
https://www.youtube.com/watch?v=_iCPqcXWxk0)

*Links*
* Project
  * This GSoC Project Wiki :
https://github.com/ismailsunni/QGIS/wiki/GSoC-2019---QGIS-3D-Improvement
  * Project Overview
https://summerofcode.withgoogle.com/projects/#5265985207009280
  * Proposal in Google Doc
https://docs.google.com/document/d/1RcXiEyziQyGurqDGRBN3g-het33liVD81WFjv8qQlt8/edit
* Final Report
  * This Final Report https://github.com/ismailsunni/QGIS/wiki/Final-Report
  * More Casual Final Report https://ismailsunni.github.io/GSoC-2019/
* Repositories
  * My Fork for QGIS for this GSoC https://github.com/ismailsunni/qgis
  * Learning Qt3D - Navigation
https://github.com/ismailsunni/qt3d-hello-world
  * Learning Qt3D with Custom Shader
https://github.com/ismailsunni/qt3d-custom-shader
* Pull Requests:
  * PR for On-Screen Navigation https://github.com/qgis/QGIS/pull/30105
  * PR for 3D Measurement Tool https://github.com/qgis/QGIS/pull/30299
  * PR for Rendering Point as A Billboard
https://github.com/qgis/QGIS/pull/31308
  * Bug fix: Always enable 3d model material for non 3D model shape.
https://github.com/qgis/QGIS/pull/30588
  * Bug fix: Set ambient to not transparent for measurement line.
https://github.com/qgis/QGIS/pull/31388

Best regards.

-- 
Ismail Sunni
ismailsunni.wordpress.com
_______________________________________________
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to