查看: 1272|回复: 4

求教三维网格纹理贴图问题

[复制链接]

该用户从未签到

发表于 2013-3-19 15:47:20 | 显示全部楼层 |阅读模式
小菜鸟求教一个纹理贴图问题,我用3dmax生成的三维点云和图像数据,配准绝对木有问题,图像是个月球表面 Moon_surface02v6.bmp ,模型是个正方形区域,中间有几个坑,我对每个点计算纹理坐标,保留纹理坐标值在【0,1】之间的点,三角剖分后贴图,结果 贴图结果.bmp ,怎么拼的跟地毯似的呀 不是把三维点和纹理坐标对应起来,就像铺桌布一样贴上去了吗,还是我理解的有问题,不清楚怎么回事,我之前把lz.osg里的三维点和纹理坐标点摘出来做实验就木有问题,请指点~~

该用户从未签到

发表于 2013-3-20 09:53:04 | 显示全部楼层
我无法猜测您的问题,估计还是纹理坐标的设置不对,您不妨打印数据调试一下

该用户从未签到

 楼主| 发表于 2013-3-21 16:05:26 | 显示全部楼层
array 发表于 2013-3-20 09:53
我无法猜测您的问题,估计还是纹理坐标的设置不对,您不妨打印数据调试一下

谢谢您的回复,我在检测中遇到了这样的问题,我自己生成均匀网格并制定均匀的纹理坐标,代码如下 ,使用的是osg里lz.rgb图像               
int i,j;
        for (i=0; i<iNum; i++)       
        {
                for (j=0; j<iNum; j++)
                {
                        t[0]=(double)i/(double)iNum;
                        t[1]=(double)j/(double)iNum;
                       
                        v->push_back(osg::Vec3((float)i, (float)j, 0.0f));
                        vt->push_back(osg::Vec2((float)t[0], (float)t[1]));
                }

        }
这样的网格是可以贴图的,但是如果把顶点坐标改为v->push_back(osg::Vec3((float)i+j, (float)j, 0.0f));贴图的结果就很扭曲了,在iNum=2的时候正常,iNum=3的时候结果如图,两个角没有正常的进行纹理贴图,想请教这是什么原因,在iNum=4的时候已经没法看了。 9点.bmp

该用户从未签到

 楼主| 发表于 2013-3-21 16:11:07 | 显示全部楼层
array 发表于 2013-3-20 09:53
我无法猜测您的问题,估计还是纹理坐标的设置不对,您不妨打印数据调试一下

我想我的月亮贴图应该也是这个问题,顶点对应的纹理坐标以及绑定都是没问题的,单独测试两个角的贴图也没问题,为什么整体贴的时候两个角不能正常了呢,iNum大的时候就是一团浆糊

该用户从未签到

发表于 2013-3-22 09:38:56 | 显示全部楼层
您的顶点坐标设置给的有点问题吧,按W看看网格排布,是不是布线已经乱掉了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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