Well, after my **EDIT 3** I found this post: https://gis.stackexchange.com/questions/40738/how-to-antialiase-tiles-when-seeding-a-layer-from-an-geotiff-in-geoserver > In GeoServer under the point WMS you can activate antialiasing. This was already checked but the raster rendering option was nearest neighbor. I switched it to bilinear or bicubic and now the resulting tiles are nice and smooth looking. (User: *strangeoptics*) I changed it to `bilinear` and now I can see this `nice` result. I've noticed some horizontal lines and found no way do get rid of them: [![enter image description here][1]][1] The final setting is: 1) Get the HGT files and create contour lines to import to OSM: phyghtmap --pbf --srtm=1 --a -43.7544:-23.2363:-42.0378:-22.3183 --earthdata-user=myuser --earthdata-password=mypassword 2) Create VRT from the HGT files: gdalbuildvrt ./teste.vrt hgt/SRTM1v3.0/S23W043.hgt hgt/SRTM1v3.0/S23W044.hgt hgt/SRTM1v3.0/S24W043.hgt hgt/SRTM1v3.0/S24W044.hgt 3) Do the abracadabra: gdal_translate -tr 0.000050 0.000050 -r cubicspline -of GTiff test.vrt test.tif 4) And now do some kunk-fu: gdaldem hillshade -co TILED=YES -co compress=lzw -s 111120 -z 5 -combined -compute_edges test.tif final.tif 5) Import contour lines to OSM. I prefer to create a separate database and give a small `.style` to import just the needed columns. osm2pgsql --verbose --create --style ./srtm.style --database contour --username postgres -W --host 127.0.0.1 lon-43.23_-43.05lat-23.00_-22.90_srtm1v3.0.osm.pbf osm2pgsql --verbose --append <all other pbf files> (be careful with --append parameter) This is the `style` file used: srtm.style # OsmType Tag DataType Flags node,way contour text linear node,way contour_ext text linear node,way ele text linear Applied this style to the raster layer (GeoTiff Coverage Store pointed to `final.tif`): <?xml version="1.0" encoding="UTF-8"?> <sld:StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:sld="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml" version="1.0.0"> <sld:UserLayer> <sld:LayerFeatureConstraints> <sld:FeatureTypeConstraint/> </sld:LayerFeatureConstraints> <sld:UserStyle> <sld:Title/> <sld:FeatureTypeStyle> <sld:Name>name</sld:Name> <sld:FeatureTypeName>Feature</sld:FeatureTypeName> <sld:Rule> <sld:MinScaleDenominator>5000</sld:MinScaleDenominator> <sld:RasterSymbolizer> <sld:Geometry> <ogc:PropertyName>grid</ogc:PropertyName> </sld:Geometry> <sld:ColorMap> <ColorMapEntry color="#000000" quantity="0.0" label="low" opacity="0.0"/> <ColorMapEntry color="#999999" quantity="1.0" label="high" opacity="0.75"/> <ColorMapEntry color="#FFFFFF" quantity="256" label="alpha" opacity="0.75"/> </sld:ColorMap> </sld:RasterSymbolizer> </sld:Rule> <sld:VendorOption name="composite">multiply</sld:VendorOption> </sld:FeatureTypeStyle> </sld:UserStyle> </sld:UserLayer> </sld:StyledLayerDescriptor> Do not ask me anything because actualy I have no idea what I've done. Just getting ideas from thousands sources and adjusting to fit my needs. BTW: The result file is very huge but seems Geoserver knows how to handle it. [1]: https://i.sstatic.net/nDKg1.png