diff --git a/src/osgTerrain/DataSet.cpp b/src/osgTerrain/DataSet.cpp index bc65c1e99..5da19be3d 100644 --- a/src/osgTerrain/DataSet.cpp +++ b/src/osgTerrain/DataSet.cpp @@ -1190,12 +1190,14 @@ bool DataSet::DestinationTile::computeImageResolution(unsigned int& numColumns, unsigned int numColumnsAtFullRes = 1+(unsigned int)ceilf((_extents.xMax()-_extents.xMin())/_imagery_maxSourceResolutionX); unsigned int numRowsAtFullRes = 1+(unsigned int)ceilf((_extents.yMax()-_extents.yMin())/_imagery_maxSourceResolutionY); - numColumns = osg::minimum(_imagery_maxNumColumns,numColumnsAtFullRes); - numRows = osg::minimum(_imagery_maxNumRows,numRowsAtFullRes); + unsigned int numColumnsRequired = osg::minimum(_imagery_maxNumColumns,numColumnsAtFullRes); + unsigned int numRowsRequired = osg::minimum(_imagery_maxNumRows,numRowsAtFullRes); - // round to nearest power of two - numColumns = osg::Image::computeNearestPowerOfTwo(numColumns); - numRows = osg::Image::computeNearestPowerOfTwo(numRows); + numColumns = 1; + numRows = 1; + // round to nearest power of two above or equal to the required resolution + while (numColumns