I am trying to make 3D visualization of terrain data and orthophoto using GRASS NVIZ via QGIS. I have been able to import both the DTM and the orthophoto in NVIZ window and successfully draped the image over DTM. But the resolution looks very poor. Is there any way to increase the resolution ? It seems like NVIZ GUI is not so user-friendly. For example, in Arcscene, there is a option to optimize the rendering that can increase the resolution of the 3D draped image. Here is the screeshot from GRASS NVIZ:enter image description here

2 Answers 2


I guess your GRASS region/resolution is based on your DTM (which is low).

You should set it based on your orthophoto :

g.region rast=orthophotoLayername

Refresh your 3D viz.

By the way, could you edit your question adding what's is displayed by both g.region -p rast=mnt_layer and g.region -p rast=orthophotoLayername? It will be useful to know the resolution of your layers.

  • Hello Simo, thanks for your reply. My DTM has a resolution of 1.6 m whereas orthophoto has 0.1 m. I set region's resolution to taht of orthophoto with the command, "g.region nsres=0.1 ewres=0.1". Now if i run NVIZ, I got the following error, Current region rows: 40288, cols: 49184 ERROR: G_malloc: unable to allocate 3631132672 bytes of memory at gsds.c:575. Do I have to maek a subset of my data ? But I need to visualize an area with 10 km x 10 km. Thanks
    – Zaman
    Mar 14, 2014 at 13:23
  • GRASS is looking for 3.4 Gb of memory. It seems your machine has not enough RAM. You can define a smaller region, or crop it : grasswiki.osgeo.org/wiki/Cropping_maps
    – simo
    Mar 14, 2014 at 14:42

There are many parameters for the resolution of rasters in Nviz:

  • the resolution(s) of the raster(s) (parameter Res)

    Type of Map: raster
    Number of Categories: 0
    N: 175738.80821982 S: 9070.736 Res: 19.91493275
    E: 298336.77386818 W: 62265.161 Res: 19.91493275

  • the resolution of the region (as Simo says)

  • the parameters of resolution in Nviz coarse, when you move the image, and fine, static representation.

enter image description here

- Fine= 1 means that the Nviz resolution is that previously fixed by g.region (current region resolution) and not the resolution of a specific raster

  • MNT seen with Fine= 1 or g.region derived from the MNT

enter image description here

The problem: what happens if you want to drape a raster with a different resolution on the MNT ?

If the current resolution is higher than the resolution of the raster used for topography, the raster is automatically resampled ( nearest neighbor algorithm) leading to a discontinuous surface with "steps".

  • Result with the draped raster an g.region = MNT

enter image description here

  • Result with the draped raster and g.region = raster

enter image description here

  • MNT with g.region = raster

enter image description here

To solve the problem:

1) you can adjust the fine resolution of Nviz (ratio between the two resolutions):

enter image description hereenter image description hereenter image description here

2) but if the only interest is to improve the 3D representation, the solution is to resample one of the rasters (but you can no longer use it in other treatments, so use g.copy) with:

enter image description here

enter image description here

Draping other raster on the MNT (other resolution):

enter image description here


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.