QGIS 3D: current state and future plans
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 295 | |
Author | ||
Contributors | ||
License | CC Attribution 3.0 Germany: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/43491 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
| |
Keywords |
00:00
AreaSkewnessSoftware developerView (database)Polygon meshGrass (card game)GUI widgetProcess (computing)Level (video gaming)MappingMereologyRaster graphicsEndliche ModelltheorieWaveWindowDigitizingMultiplication signVisualization (computer graphics)Bookmark (World Wide Web)FreewareInformation technology consultingINTEGRALDemosceneConfiguration spacePlug-in (computing)Projective planeContent (media)BitSoftwareCodeTexture mappingDefault (computer science)Three-dimensional spacePerspective (visual)Cartesian coordinate systemVolumenvisualisierungSummierbarkeitGauge theoryMenu (computing)Revision controlLecture/Conference
04:41
Maß <Mathematik>Discrete element methodRaster graphicsData typeImage resolutionView (database)Scale (map)Vector spaceAsynchronous Transfer ModeLogarithmLeast squaresDatabasePolygon meshHTTP cookieBit rateLoop (music)Scaling (geometry)Point (geometry)MereologyCategory of beingGraph coloringAdditionSymbol tableComputer configurationMathematicsVolumenvisualisierungLevel (video gaming)CuboidGUI widgetWeb browserCoefficient of determinationVector spaceComputer animation
05:37
Endliche ModelltheorieSphereCylinder (geometry)Library (computing)Differential algebraic equationPoint (geometry)SphereGraph coloringComputer configurationRange (statistics)Limit (category theory)Transformation (genetics)Endliche ModelltheorieFile formatCodeComputer fileDemosceneWaveLibrary (computing)Symbol tableObject (grammar)Cylinder (geometry)Projective planeCubeConnectivity (graph theory)WavefrontCollisionMathematicsMoment (mathematics)Computer animation
07:58
Clique-widthPixelLine (geometry)Line (geometry)Revision controlPoint (geometry)Right angleBuffer solutionArtistic renderingPixelComputer configurationMathematicsZoom lensClique-widthExecution unitLevel (video gaming)MetreDistanceComputer animation
09:10
GeometryPolygon meshPatch (Unix)MultiplicationTrianglePlanar graphPolygonSurfaceAttribute grammarPoint (geometry)PlanningVisualization (computer graphics)Polygon meshLogical constantObject (grammar)Planar graphSurfaceMetreBuildingComputer configurationSource codeGeometryCuboidDefault (computer science)Multiplication signCASE <Informatik>PolygonShape (magazine)TriangleLevel (video gaming)Different (Kate Ryan album)NumberSelf-organizationSpecial unitary groupHill differential equationExpressionComputer animation
11:16
Clique-widthInversion (music)DiffusionPolygonPolygonRevision controlEndliche ModelltheorieArtistic renderingBuildingSymbol table
11:47
Rule of inferenceBuildingKeyboard shortcutVertex (graph theory)GeometryVertex (graph theory)MappingSymbol tableSampling (statistics)Rule of inferenceConfiguration spaceDifferent (Kate Ryan album)Graph coloringComputer configurationType theoryDecision theoryInsertion lossWebsiteBuildingLevel (video gaming)Revision controlKeyboard shortcutCodeTouchscreenArtistic renderingEvent horizonComputer animation
13:19
Keyboard shortcutTouchscreenDrag (physics)Arrow of timeShift operatorControl flowWeb pageMetreMeasurementLetterpress printingMenu (computing)DemosceneKeyboard shortcutCodeGUI widgetResultantFunctional (mathematics)View (database)Revision controlSystem identificationLevel (video gaming)Arithmetic meanDistanceConfiguration spaceLetterpress printingCoefficient of determinationWindowMappingGame controllerSingle-precision floating-point formatProjective planePoint (geometry)Line (geometry)CodeRoundness (object)MeasurementGoodness of fitFlow separationComputer animation
15:02
Function (mathematics)Directory serviceClique-widthFrame problemEndliche ModelltheoriePosition operatorMultiplication signDefault (computer science)Different (Kate Ryan album)Graph coloringSingle-precision floating-point formatDemosceneTexture mappingInterpreter (computing)InterpolationCASE <Informatik>BitComputer animation
16:59
Computer configurationGeometrySemantics (computer science)BootingBuildingWikiFile formatGraph coloringSingle-precision floating-point formatComputer configurationDefault (computer science)DemoscenePosition operatorSource codeOpen setComputer fileLevel (video gaming)BuildingGoodness of fitInformationWindows RegistryFeedbackPlug-in (computing)FreewareFile formatBootingComputer animation
18:33
DemosceneAcoustic shadowObject (grammar)Vector spaceLine (geometry)Type theoryFile formatTwitterDemosceneElectronic mailing listAcoustic shadowCommunications protocolCountingMaterialization (paranormal)Object (grammar)Point cloudPresentation of a groupMultiplication signFreezingUser interfaceTexture mappingComputer hardwareTesselationAreaFunctional (mathematics)Point (geometry)Uniqueness quantificationArtistic renderingComputer animation
20:37
Point (geometry)Electronic mailing listLaptopINTEGRALMultiplication signPoint cloudOpen sourceEndliche ModelltheorieProjective planeCASE <Informatik>Library (computing)Internet service providerOrder (biology)Extension (kinesiology)ImplementationArmGeometryWhiteboardScaling (geometry)WordArtistic renderingGraphics processing unitComputer hardwareValidity (statistics)File formatGrass (card game)CuboidGoodness of fitMeeting/Interview
Transcript: English(auto-generated)
00:07
Hi everyone. Very quick poll. Who has used QGIS 3D before? Okay, cool. Quite some people. Alright. Just very briefly about me.
00:21
I'm a software developer. I work for Lutra Consulting and we do QGIS software development among other things. But the most important thing, QGIS 3D. Why do we need 3D views? There are plenty of reasons. I chose one of my favorites because 3D terrain visualization is very cool.
00:50
It has a lot of views for urban planning and plenty of other applications. QGIS has been going on for quite a lot of time now, but the 3D third dimension was always lacking.
01:07
Before we had the native QGIS 3D support, there were some other free software tools that people could use. There was this Envis tool from Grass GIS, GV-Sig had some support for 3D views.
01:23
There still is a globe plug-in in QGIS itself. But the integration was never great with the rest of QGIS and we wanted to have really this nice integrated experience like you have with all the other tools.
01:42
Very quickly about history, in 2017 we had the QGIS grant proposal accepted to start the initial work on QGIS 3D and then one year later the first release of QGIS 3D
02:04
was there in QGIS 3.0. Most recent news is that this year during the summer we had the Summer of Code project with Ismael Suni here, you can wave to others, who has done a really great job
02:21
and implemented a bunch of new nice things. So, quickly about how to use QGIS 3D. If you use some of the more recent versions, you just click the view menu, new 3D map view
02:40
and there you get like a new widget where you can see the 3D content. So it can look something like this, so on the top parts that's the usual 2D map canvas, on the bottom part you can see the 3D view already with some 3D styling.
03:03
So, this is just like a bit of a zoomed in portion of that scene. So let's go slowly about like what are the pieces of the 3D scenes that we work with.
03:22
So let's start with terrain. The terrain we generated based on heat maps and so you have a raster layer with your digital terrain elevation model and so based on that we generate this 3D mesh like you
03:42
can see here on the illustration and then on top of this mesh we need to apply some texture. This texture we just take the 2D rendered map and we put it there. So basically when you first time open the 3D window you see the 2D map as usual but
04:09
with the thing that you can start turning the map even into the perspective and so on. So, the terrain you can configure it in the configuration dialogue, so on the left side
04:29
you can see the default view when the terrain is just flat with texture on top of it, on the right side when we already apply some digital elevation model there.
04:43
You can also set the vertical scale to kind of make your 3D terrain look more pronounced. Now how about the vector data. So the key part when dealing with vectors is to use this layer styling dog widget.
05:06
You can also double click on the layer to open the full dialogue with properties but this one is more handy because immediately it applies your changes and so there is this new tab with this kind of colorful box where you can set the 3D render.
05:26
So every layer in addition to the 2D map render it can also have a 3D map render assigned. So, now for points, for points we have three basic ways how to render them.
05:44
So the first one is to just use basic symbols like spheres or cubes or cylinders and a few more options and you just apply a color maybe some transformation to scale
06:01
them up or down, rotate and so on and that's it. The second option is to use 3D models so we use the asset import library to load the 3D models so there is a wide range of models like the colada format or the
06:23
wavefront object files and maybe 20 more. These you can load and you can as well change their color. Right now there are some limitations so you can only change the color of the whole model.
06:44
You can't change the colors of individual components. Then, yeah, thanks to Raymond can you also wave your hand?
07:01
Ah, that's true. So we also have some 3D models from the community that you can use that are included with QGIS. If you have any suggestions what would you like to have as 3D models maybe you can talk to Raymond. And most recently we have also support for so-called billboards and that's basically
07:26
if you want to use some 2D markers to be shown in the 3D scene this is what you get. So these are some kind of special objects or entities that whenever you move the map around
07:43
and rotate it they are always facing the camera so they don't seem to be like from the 3D world. That's one of the new features done during the Summer of Code project. The billboard support is not even released yet but it will become released in 3.10 version.
08:08
So now for line rendering there are two options right now how to do that. One is the simple lines where you define the line within pixels and the width doesn't change
08:25
when you zoom in or zoom out. The other option is with the buffered approach so that what we do is just to take the line and buffer it with some distance let's say five meters and so this is
08:44
this is the width defined in map units so that as soon as you start zooming closer also the line appears zoom out. The kind of unfortunate thing is that with buffered rendering we ignore the z coordinates but hopefully that will get fixed as well
09:10
at some point. Now for polygon rendering that's even more interesting so there are basically four basic options what to do. The most basic one is if you use just the
09:28
planar entity so if you have let's say footprints of something by default it would be shown just as a like a planar feature. You can use extrusion to get this kind of box shape and the extrusion
09:49
it can be based on some it can be either a constant height let's say 20 meters or you can have it based on an expression or so it can be a data defined value maybe you have an attribute with
10:06
a number of levels of a building so you say that the extrusion is number of levels times let's say three meters. For more advanced use there is support for 3D geometries
10:21
so one option is to use so-called polyhedral surfaces or some call it polygon z so you have objects like this where you have like really individual pieces of the object so these are like planes that you render and the last one is the triangular meshes
10:48
it looks nearly the same the only difference is that in this case it's a really object consisting of the individual triangles. It depends on the source of the data you get
11:02
sometimes it's like the triangular mesh sometimes it's the polyhedral surfaces and you can get a nice visualization like this including roofs and everything in one of the recent versions we have added the highlighting of polygon edges so this has been
11:24
very important improvement for the rendering of buildings this is for example a model of city of Prague with the buildings there so it's one of the free models that you can download
11:46
and use. Another thing for the styling is that we also support rule-based rendering so it's not that you use just the single symbol for all the features within a layer but
12:02
you can define a bunch of rules every rule can have let's say different colors or even different types of symbols. Just a short note about the handling of z values so if you have true 3d coordinates there are several ways how the z value can be applied so this is decided by
12:28
the altitude clamping which you can set in the layer configuration so it can be either relative where you also use the z value of the terrain plus z value of the geometry itself or just
12:43
use the absolute or clamp it to terrain. Another thing is the altitude binding where you kind of decide whether the terrain elevation is taken just from the centroid which is let's say more useful for rendering of buildings and or the other option is to use per vertex so for example
13:07
if you have a road you don't want to just take a centroid of the whole road but you want to sample the z value from every vertex. Now for the 3d maps tools so the basic tool of course
13:23
is navigation you can use mouse or keyboard to navigate now with a not yet released version that's another improvement from summer of code you can also use on-screen controls it's good for beginners when they are not yet completely sure about the other means of
13:47
moving the map. There is identification tool which works exactly the same way as with 2d map tool for identification just click on a point it can be either on the terrain or it can be the 3d entity
14:08
and you will get the results on a dog widget. Another improvement from the summer of code project is the measurement tool so now you can go around if you can see this orange line
14:24
line here click several points and get the true 3d distance. So and for some more functionality we have print layout support so if you need to print maps
14:41
now you can as well you can even put multiple views on the same 3d scene into a single print layout you just set the view in your main window and then get it get all the configuration copied to the print layout. Okay we have support for animations so if this works
15:10
you can define several keyframes within your animation so let's say in for the first keyframe at the time zero you set the camera position to be here for next keyframe you set
15:26
the camera position somewhere else and QG3d will do the interpolation of the frames and yeah do the hard work for you.
15:44
Then we can also do export of animations so the animation you have prepared you don't need to export it frame by frame manually that would be a bit tedious you can with this tool create like a whole bunch of pictures in one folder and then use some third-party tool
16:06
to kind of join all the pictures together to some avi animation or so. For some of the advanced features or advanced it's possible to also enable terrain shading
16:22
so by default we just render the texture as it is without applying any light on it but in various cases if you want to better see let's say like small details in the
16:43
terrain model you can enable the shading and you can see that the small differences are much easier to see or you can even apply like some shininess to the model.
17:00
As well you can configure lights like by default there is a single light on top of the scene in the center but if you are up for something something more fancy you can change the colors of the lights or their positions and so on. So quickly about the data for 3d
17:22
one very nice source for the data is the city gml format or its kind of younger cousin city json there is nowadays very nice plugin city json loader which with like few clicks you can load the data in qgis and you can as well get the data automatically styled so for example here
17:46
this is one of the example files from delft i think and yeah it's very handy open street map is a good source of buildings data but not that many buildings have like elevation
18:02
information so that's also something for the open street map community maybe to keep working on and for myself i started for me doing like a registry of 3d data available there is not that
18:20
much there yet so if you have some good tips with free open data i would be happy to see some feedback from you on that and finally for the future the near future is that there is another small qgis grant to kind of improve support for large scenes to make them
18:48
load faster to make them load in the background so it doesn't freeze your user interface and like for the far future we have a long wish list like i'm very happy that's every time
19:04
i do a presentation about qgis 3d i need to change the wish list because there are new and new features implemented from it so but still there are plenty of rendering techniques we would like to implement like shadows or transparency new materials like to be able to show textured
19:24
objects and plenty of other things of course support for globes right now we just support like let's say local scenes which are in one like flat area yeah some protocols like 3d tiles
19:41
support for point clouds that would be amazing and things like animation of data within the scene so right now you can only move the camera around but it would be nice to be also able to let's say move individual objects there and that's it so thank you very much it's perfect
20:13
20 minutes exactly as you did so i don't know what my function is here but there probably
20:21
some questions i expect uh are there there's five minutes left okay i count about five i think uh starts in the back can you tell anything about the hardware you need
20:41
the hardware you need to do all this just any ordinary laptop is fine um the reason i asked this is uh can you also run it within the vm without any hardware for the gpu yes yes uh vincent says you can i haven't tried it
21:01
myself but it should be possible if you have the like um some extended gpu supports there or maybe it just works out of the box another item for your wish list perhaps but uh have you
21:20
considered procedural modeling aka city engine in other worlds uh ability to drive 3d models yes that would be detail perhaps that would be awesome i will probably put it to the wish list for the next time uh what about the post gis 3d support
21:46
it has been improved but uh how far but this should just work out of the box so if you have 3d geometries in post gis you can just load them and they
22:02
tin should work as well i think haven't tried though thanks for nice overview and i'm interested in this billboard implementation do you also implement that for the labels not yet so labels i think that will be like the next thing that
22:27
would be worth implementing with uh billboards so this was kind of like first step in order to be able to also show labels later more questions i think we still have time
22:41
but i left my phone on my seat thank you very much have you considered about something about the point clouds as just displaying the point clouds over the city scale or what are small projects yeah i would love to have point cloud support in
23:06
qges the thing is that there is kind of longer path towards that so first of all we kind of need to have some um like support to just like for data providers to open these formats and so on
23:20
some to integrate some libraries that already work with point clouds and then maybe the next step would be to allow like 2d and 3d rendering of them so definitely something we would like to have but we are not there yet maybe if possible we would try to run like a crowdfunding
23:43
campaign to get like interested parties to help out with that okay because there are some other successful open source projects which could be easily integrated to qgis as we have in qgis we have done it with grass and other projects so i think it would have been it would make sense to
24:05
build on the top of that just for the project and start from there because then you don't need to build the basic engines for that yeah definitely like the for point clouds especially there is this great pdol library or poodle or i don't know what's the proto valid pronunciation
24:22
and that one would be like the first thing to look at for the integration okay good thank you very much any more questions i think we still have time one more minute no then thank you martin