查看: 812|回复: 4

有没有人知道osg里怎么显示多套uv和多套纹理

[复制链接]

该用户从未签到

发表于 2013-10-10 19:08:26 | 显示全部楼层 |阅读模式
目前我们项目有用到这样的功能,一个node需要用到多套uv,每套uv对应一个纹理图片。但是发现osg不知道同时渲染这些图片
图片设置用这种方式
stateset->setTextureAttributeAndModes(index,new osg::Texture2D(image),osg::StateAttribute::ON);
纹理设置用
mGeometry->setTexCoordArray(index ,texcoords);
当index > 0的时候图片就是透明了,当index==0的时候是正常的

有别的更好的方法来实现这个吗?再次谢谢大家。

该用户从未签到

发表于 2013-10-11 10:03:51 | 显示全部楼层
固定流水线中您需要给每个index也设置一个TexEnv,表明纹理的融混方式,如果您写过OpenGL程序的话显然知道这一点;shader的话就简单得很了

该用户从未签到

 楼主| 发表于 2013-10-11 13:00:11 | 显示全部楼层
管理好
可不可以不shader来搞呢,因为shader支持的纹理也有限,而且osg对shader设置参数我也不是很了解
osg里有没直接的挨批直接来设置这个呢,再次感谢。

该用户从未签到

 楼主| 发表于 2013-10-14 17:22:19 | 显示全部楼层
写了个shader来搞这个,但是发现只支持8套uv,哎,将就用着吧。

该用户从未签到

发表于 2013-10-20 18:42:20 | 显示全部楼层
8套uv是一切OpenGL程序的固有原则,不知道您要更多的uv是用来做什么的
还有固定流水线可以用TexEnv,这一点已经说明过了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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