查看: 2270|回复: 10

烘焙后的场景中,透明纹理发生了变化

[复制链接]

该用户从未签到

发表于 2013-1-6 16:43:20 | 显示全部楼层 |阅读模式

透明纹理泛蓝色

透明纹理泛蓝色

使用PagedLOD读入模型,进行透明设置,也不能改变上面的情况                               
osg::StateSet* stateset1 = new osg::StateSet;
stateset1->setMode(GL_BLEND,osg::StateAttribute::ON);
stateset1->setMode( GL_LIGHTING, osg::StateAttribute::OFF | osg::StateAttribute:ROTECTED );
stateset1->setRenderingHint(osg::StateSet::TRANSPARENT_BIN);

该用户从未签到

发表于 2013-1-7 09:25:48 | 显示全部楼层
TRANSPARENT_BIN是没有问题的,您的stateset1是否真的设置给每个树木对象了?

该用户从未签到

 楼主| 发表于 2013-1-7 16:51:24 | 显示全部楼层
array 发表于 2013-1-7 09:25
TRANSPARENT_BIN是没有问题的,您的stateset1是否真的设置给每个树木对象了?

嗯,我将树木的模型放到pagedLOD节点下面,然后设置pagedLOD节点的状态

该用户从未签到

 楼主| 发表于 2013-1-7 16:53:30 | 显示全部楼层
目前暂时的解决方法是将透明纹理的模型和非透明图像纹理的模型放在不同的pagedLOD节点下面,然后设置TRANSPARENT_BIN

该用户从未签到

发表于 2013-1-9 09:44:36 | 显示全部楼层
设置Plod节点的状态显然没有用,您必须给每个树木节点设置TRANSPARENT_BIN

该用户从未签到

 楼主| 发表于 2013-1-9 10:06:45 | 显示全部楼层
array 发表于 2013-1-9 09:44
设置Plod节点的状态显然没有用,您必须给每个树木节点设置TRANSPARENT_BIN

但是想分布加载,并且树木的模型是setFilename的形式加入pagedLOD里面的,不知道这样怎么给树木设置TRANSPARENT_BIN.

该用户从未签到

发表于 2013-1-9 11:51:05 | 显示全部楼层
可以直接将这个属性保存在.osgb或者.ive文件中的

该用户从未签到

 楼主| 发表于 2013-1-11 16:34:22 | 显示全部楼层
array 发表于 2013-1-9 11:51
可以直接将这个属性保存在.osgb或者.ive文件中的

建模导出的时候保存,还是在程序中实现,程序中怎么实现?

该用户从未签到

 楼主| 发表于 2013-1-11 16:36:58 | 显示全部楼层
是不是说先读取,然后设置TRANSPARENT_BIN,然后写出模型文件?

该用户从未签到

 楼主| 发表于 2013-1-11 16:39:16 | 显示全部楼层
caoze1986 发表于 2013-1-11 16:34
建模导出的时候保存,还是在程序中实现,程序中怎么实现?

能直接修改模型文件吗??如图所示:

模型文件参数

模型文件参数

该用户从未签到

发表于 2013-1-11 18:47:02 | 显示全部楼层
caoze1986 发表于 2013-1-11 16:36
是不是说先读取,然后设置TRANSPARENT_BIN,然后写出模型文件?

两种方式应该都可以的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表