查看: 1969|回复: 6

ive模型写出纹理的错误

[复制链接]

该用户从未签到

发表于 2012-8-23 17:22:37 | 显示全部楼层 |阅读模式
本帖最后由 tzmyf234 于 2012-9-4 11:46 编辑

我有一个ive格式的小建筑,里面贴了五张不同纹理,纹理是包含在模型内部的。现在我想把它们写出来,调用了遍历器,找到图片就写出来

  1. void ExportTexture::apply(osg::StateSet* state)
  2. {
  3.         if(!state)
  4.                 return;

  5.         for (int i = 0; i <state->getTextureAttributeList ().size() ; i++)
  6.         {
  7.                 osg::Texture2D* pTex2D = NULL;
  8.                 if(pTex2D = dynamic_cast<osg::Texture2D*>(state->getTextureAttribute(i, osg::StateAttribute::TEXTURE)))
  9.                 {
  10.                         int num = pTex2D->getNumImages();
  11.                         if(num>0)
  12.                         {                       
  13.                                 for(unsigned int i = 0;i<num;i++)
  14.                                 {
  15.                                         osg::ref_ptr<osg::Image> pImage = pTex2D->getImage(i);

  16.                                         if(!pImage)
  17.                                                 return;
  18.                                         ossimFilename name = pImage->getFileName();

  19.                                         pImage->flipVertical();

  20.                                         osgDB::writeImageFile(*pImage.get(),name);
  21.                                 }


  22.                         }
  23.                 }
  24.         }               
  25. }
复制代码
可是有一张图片写出来总是错误的。重新说明一下~ ive模型本身查看的时候没有问题,将纹理导出来,模型也转换成osg格式,其他的则没有做任何修改。查看osg模型调用刚刚导出的图片,其中的一张纹理就错乱了,不太明白原因,只是读一下再写出来,其中会有什么错误发生吗,也不知道问题有没有说明白。请教高手帮忙,在下先谢谢了。

////我找了一个错误纹理的模型


G3002.ive (395.47 KB, 下载次数: 4)

该用户从未签到

 楼主| 发表于 2012-8-24 10:05:02 | 显示全部楼层
没思路,卡住了,哎

该用户从未签到

发表于 2012-8-24 10:27:09 | 显示全部楼层
纹理错乱,是内容不对还是什么都没有?

该用户从未签到

 楼主| 发表于 2012-8-24 11:42:35 | 显示全部楼层
本帖最后由 tzmyf234 于 2012-8-24 11:45 编辑
liuzhiyu123 发表于 2012-8-24 10:27
纹理错乱,是内容不对还是什么都没有?


是显示的内容不对。

正确的时候是这个样子的

正确

正确


导出来之后就成了这个样子

错误

错误


而且我跟踪了纹理坐标,在遍历到Geometry时,其纹理坐标也没有发生如此错误。其他的模型也没有见到过这种错误,挺奇怪

该用户从未签到

发表于 2012-8-28 10:56:10 | 显示全部楼层
我猜测不到,您不如直接上传这个产生问题的文件(最好只包含这个有问题的节点)来帮助排查问题

该用户从未签到

 楼主| 发表于 2012-9-4 11:47:23 | 显示全部楼层
array 发表于 2012-8-28 10:56
我猜测不到,您不如直接上传这个产生问题的文件(最好只包含这个有问题的节点)来帮助排查问题

我先将整个模型上传,里面一个带“_”的纹理是错误的,请您帮忙查看~

该用户从未签到

发表于 2012-9-6 17:22:08 | 显示全部楼层
我尝试将模型转换为osgb格式,并没有发现问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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