将图片预处理成2的N次方,可以避免卡顿。

这里写自定义目录标题

今天,在回调函数中,设置纹理时,发现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);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值