查看: 2089|回复: 9

关于纹理贴图的几个问题请教

[复制链接]

该用户从未签到

发表于 2011-4-13 15:56:12 | 显示全部楼层 |阅读模式
本帖最后由 tzmyf234 于 2011-4-13 16:30 编辑

我现在做一个纹理贴图的实验,有以下几个问题:
1是否有资料详细描述一下多张纹理烘焙或合并为一张之后osg 模型纹理坐标的变换?尤其是对于wrap_s 模式为重复的情况
2 对于原模型,对调取的纹理经过拉伸或者重复之后生成的osg::image对象 ,是否能够得到呢?怎样得到?我用直接用的texture2D->getImage(),好像不行
3 现在对于一些元模型,有的纹理坐标是>1的,即经过重复贴图的,我怎么能够解析一下呀?
对于3中,掉用256*512尺寸图片,一些纹理坐标如下:

  0.303904 0.496945
        0.265631 0.157896
        0.308919 0.473977
        85.0342 0.999463
        85.0342 0.130197
        99.9268 0.999456
        99.9268 0.00049901
        99.9268 0.999456
        85.0342 0.130197
        39.0625 0.130197
        41.4063 0.130197
        39.0625 0.999463
        41.4063 0.999463
        39.0625 0.999463
        41.4063 0.130197
        80.0537 0.999466
        80.0537 0.193142
        84.5459 0.999463
        84.5459 0.130197
        84.5459 0.999463
        80.0537 0.193142
        39.8438 0.193142
我怎么知道他重复了几次或者怎么解析?

我初学OSG,问的问题都是我遇到的不理解,查资料找不到的,希望能帮我解答,谢谢

该用户从未签到

 楼主| 发表于 2011-4-13 16:06:18 | 显示全部楼层
本帖最后由 tzmyf234 于 2011-4-13 16:29 编辑

我的基础不是很好 :p,谢谢大家

该用户从未签到

发表于 2011-4-14 08:27:39 | 显示全部楼层
是否有资料详细描述一下多张纹理烘焙或合并为一张之后osg 模型纹理坐标的变换
这两件事看起来没什么必然联系
对调取的纹理经过拉伸或者重复之后生成的osg::image对象
请注意,这两者依然没有联系,纹理边界拉伸和重复,与纹理数据本身没有关系,而是通过WrapMode来设定的
有的纹理坐标是>1的,即经过重复贴图的,我怎么能够解析一下呀
我不知道您要解析什么

该用户从未签到

 楼主| 发表于 2011-4-14 08:42:05 | 显示全部楼层
回复 3# array


    谢谢Array的帮助,经过您的提醒,我明白了一些。不过对于最后一点:1我现在经过计算将一个模型内所有引用的纹理加载在同一个图片上,但是对于纹理坐标,肯定是经过变换了不是吗?我不知道对于这个我应该如何变换。
2、我复制了一些纹理坐标,这些纹理坐标有>1的比如说39.0625  这样的,我能够计算在上述1中他经过合并后的坐标吗?毕竟和原来调用的纹理已经不一样了

可能还是没有描述清楚,见谅

该用户从未签到

发表于 2011-4-14 12:39:44 | 显示全部楼层
但是对于纹理坐标,肯定是经过变换了不是吗?我不知道对于这个我应该如何变换
您要说明什么?我还是不明白??

该用户从未签到

 楼主| 发表于 2011-4-14 15:12:45 | 显示全部楼层
回复 5# array


    不好意思,我再说一次,我现在正在做一个实验,希望把一个模型需要的所有的贴图,全部集中在一张图片上面。经过求解,已经实现了将所有的图片的集中,生成一张类似烘焙-将所有的图片集中在一起的效果。但是您知道,模型内部的纹理坐标texcoordarray在前后是不同的,这个纹理的变换我实现起来有一定的困难,请教您,麻烦了。

请注意一下1楼最下面的一组坐标。

该用户从未签到

发表于 2011-4-14 16:03:32 | 显示全部楼层
这个就看您自己的实现方法了,把纹理坐标变换到新的位置和范围内而已,似乎本身没有什么特别的地方

该用户从未签到

 楼主| 发表于 2011-4-15 10:34:51 | 显示全部楼层
回复 7# array


    麻烦您能告诉我,在一楼里面的坐标,他》1的那些,具体是什么意思好吗?
我通过对.osg查看,我知道在 wrap_s, wrap_t 的类型都是repeat,纹理的尺寸为256*256的,不好意思,小小问题我不太明白,见笑了

该用户从未签到

发表于 2011-4-15 13:06:39 | 显示全部楼层
依然根据映射关系把它投影到图片所在的平面上,当图片边界截取方式为可以重复时,那么从0到100的范围内就可以包含100个重复的图片

该用户从未签到

 楼主| 发表于 2011-4-16 17:12:18 | 显示全部楼层
回复 9# array


    嗯,知道了,谢谢您!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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