这里写自定义目录标题
今天,在回调函数中,设置纹理时,发现1秒种变换一次都卡顿,10秒钟才不卡。
于是想先预处理这些图片,缩小些。那放缩多少呢?
控制台显示,图片从(3600,1800)放缩到了(4096,2048)。
突然想到,可以先放缩到(2048,1024),果然,在回调函数中,不再卡顿。
那么,真的是因为缩小的原因不卡顿么?于是又换成了输出分辨率为4096x2048的图片,震惊的是,同样不卡。所以,还是在原图片缩放到临近的2的N次方时,消耗资源很多。
代码如下所示:
for (int i = 0; i < strFileNameVector.size(); i++)
{
std::string strImage = strFileNameVector[i];
std::string strOutputImageName = strOutputDir + std::to_string(i) + “.png”;
osg::ref_ptrosg::Image image = osgDB::readImageFile(strImage);
//image->scaleImage(2048, 1024, 1);
image->scaleImage(4096, 2048, 1);
osgDB::writeImageFile(*image, strOutputImageName);
}