OSG Texture3D踩坑记录

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、必须设置Filter模式,否则会出来全是clear color

setFilter(osg::Texture3D::MIN_FILTER,osg::Texture3D::LINEAR);
setFilter(osg::Texture3D::MAG_FILTER,osg::Texture3D::LINEAR);
setWrap(osg::Texture3D::WRAP_R,osg::Texture3D::REPEAT);

二、Texture3D设置image信息的时候不能释放

不能像opengl里面一样把内存中的内容释放掉,否则会变成一个111的image,使用方式如下

auto image_3d = new osg::Image;
image_3d->setImage(dim.x,dim.y,dim.z,GL_RED,GL_RED,GL_UNSIGNED_BYTE,image_data, osg::Image::USE_NEW_DELETE);
texture3D->setImage(image_3d);

释放掉的情况下会在state set中再次设置texture3D中内容的时候导致崩溃

state_set->setTextureAttributeAndModes(1, texture3D);

三、尺寸必须是2的幂次方,否则texelFetch的时候位置信息会错乱

这个不知道是能找到的资料太少还是怎样,感觉十分古老

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值