查看: 1763|回复: 3

请教几个OSG的问题

[复制链接]

该用户从未签到

发表于 2011-8-18 23:33:52 | 显示全部楼层 |阅读模式
1、OSG使用多重纹理的时候,后面添加的纹理必须设置osg::TexGen的StateAttribute
但是上面的纹理生成方式都不正常,都是SPHERE_MAP之类。比如我画一个地球~贴了一个地表纹理,然后还有一个云层纹理,我想生成一个多重纹理,混合云层和地表纹理让地球看起来比较像带云彩的地球,怎么实现,能给下关键代码吗?就是生成多重纹理的那一部分
2、我用osg::Sphere类画一个球,给它指定了一个地表纹理,但是在球上面有一个黑色的经线,是纹理里面没有的,怎么想办法都弄不掉
3、关于 osg::StateAttribute 派生的类有很多,其中两个TexEnv 和TexGen  ,OpenGL上面他们能给纹理的生成和属性还有混合模式设置很多属性,但OSG上面感觉没有封转完,比如修改多重纹理的混合模式,还有纹理矩阵都不能运用,应该是我还不知道吧,求解。

该用户从未签到

发表于 2011-8-19 08:58:25 | 显示全部楼层
1、
后面添加的纹理必须设置osg::TexGen的StateAttribute
这里的理解已经错了,这时候应该添加TexEnv来设置融混方式,TexGen只是在您需要自动生成特殊纹理坐标时使用
2、直接给Sphere贴图不会有这个问题,只能猜测是您的纹理经过scale之后的结果,可以考虑设置setWrapMode来改变边界截取方式
3、那只能说明您根本没有细看这几个类的头文件而已

该用户从未签到

 楼主| 发表于 2011-8-19 09:06:48 | 显示全部楼层
回复 2# array

后面两个问题应该是我还没研究透
但是第一个问题~我如果不设置TexGen属性,第二重纹理完全没有生成,就是灰色的~
能讲详细一点嘛,我想要实现的目标

该用户从未签到

发表于 2011-8-22 08:28:25 | 显示全部楼层
您应当自己设置第二重纹理坐标,即setTexCoordArray(1, ta)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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