查看: 1173|回复: 4

同一模型在不同电脑上纹理表现不同,求助!

[复制链接]

该用户从未签到

发表于 2011-7-14 12:39:38 | 显示全部楼层 |阅读模式
一块地形,分别有3块组成,每块对应不同分辨率纹理,在开发程序的机子上运行正常,发布到一个win7系统笔记本上纹理有多处是空的,缺少部分三角形片面,还有多个模型间片面出现拉扯交叉现象。在另一台台式机中,只有两处高分辨率纹理有显示,其他部分是白色的,无纹理。
是不是纹理也都需要2的n 次幂?还是跟操作系统有关系? 在线求解答!谢谢!

该用户从未签到

 楼主| 发表于 2011-7-14 13:21:15 | 显示全部楼层
换了另一台机子 还是白色的 没有纹理,崩溃!

该用户从未签到

发表于 2011-7-14 14:13:53 | 显示全部楼层
osg纹理,readImageFile好像不强制纹理尺寸是2得n次方,应该内部会用转换处理.

win7系统和xp系统下,主要win7对一些系统路径得设置和xp默认是不一样得,如果你纹理资源放在一些特定得目录可能需要注意一下.

关于不同得机器丢失纹理, 我好像也曾经遇到过, 我感觉最大得问题可能是发布程序时候你得库没有带全,这里得库不仅仅包括开发工具的库,应该还有osg以及第三方所有可能用到得库,具体来说,你可以查一下类似osgdb_tga.dll,osgdb_png.dll等库有没有缺失,在你得开发机器上没有问题,说明你开发机器上得环境可能比较完备. 另外补充一点得时候,注意debug/release版本得区别, 不放心都copy过去试试. 很可能就加载那个dll失败导致了纹理失效.

该用户从未签到

 楼主| 发表于 2011-7-15 08:33:09 | 显示全部楼层
谢谢!我看了台式机上控制台显示:大意是,使用了压缩纹理 无法纹理贴图,因此我转化成ive 格式时候没有使用compressed 参数,纹理可以正常显示。
但现在问题出来了。模型由10兆增加到60多兆,台式机速度特别卡,漫游地形顿错。
在win 7系统中还是出现丢三角形的情况。
是不是显卡不行,不支持纹理压缩?纹理压缩需要什么样的显卡?
求解!

该用户从未签到

发表于 2011-7-15 10:38:13 | 显示全部楼层
如果导出时候不使用压缩, 导出ive尺寸肯定会大, 那几个纹理导出选项:应该image_data那个最大, s3tc1那个好像最小, 其他得比较折衷, 你可以挑1个.

不用压缩纹理,模型尺寸增大,只会使加载速度变慢,一般运行速度不会受太大影响, 除非你就1个巨大得ive, 你是不是把地形建模放在3dmax里做得, 然后直接导出来作为模型使用得? 如果是, 你要小心是美工创建这个max模型得"物体数"(我不清楚,这个怎么表达,好像3dmax有个术语), 这个数目如果大得话,导出得模型运行会比较卡, 具体原因我也不太清楚, 是我实际碰到过得, 估计是不是引起osg里场景树过深,或者节点过多什么的, 你可以让美工帮助你修改测试.

我觉得显卡什么得应该不是问题, 主流得都可以, 笔记本t61上几十w或者上百w都还可以, 当然没有什么高级特效啥得, 你可以查一下你得场景三角片数目(如果你都是max建模出来得,max里就可以直接查),看是否过高; 你还可以关注下场景得状态集数目(好像叫osg::handler什么得,挂上就可以), 我感觉状态集得多少对场景影响甚大,看是否过高, 在看看cull, draw, GPU时间你大概就能初步判断卡的瓶颈在那了?(cull过高,可能是场景结构组织有问题, draw过高一般是面多,传输数据量大, gpu高,大概就是显卡内部绘制耗时太多);其他的我就部知道鸟.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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