查看: 1246|回复: 3

设置纹理映射方式导致灯光开启无效!

[复制链接]

该用户从未签到

发表于 2012-12-18 10:06:54 | 显示全部楼层 |阅读模式
  1. //设置纹理方式
  2.                         osg::TexEnv* texEnv = new osg::TexEnv;
  3.                         texEnv->setMode(osg::TexEnv::DECAL);

  4.                         stateset->setTextureAttributeAndModes(0,texEnv,osg::StateAttribute::ON);
复制代码
加了这句后!下面那句开启灯光就完全没有效果!注释后有效!请问是什么原因咯!
  1. stateset->setMode(GL_LIGHTING, osg::StateAttribute::ON|osg::StateAttribute::PROTECTED);
复制代码
另外问下! enum Mode {
            DECAL     = GL_DECAL,
            MODULATE  = GL_MODULATE,
            BLEND     = GL_BLEND,
            REPLACE   = GL_REPLACE,
            ADD       = GL_ADD
        };

        TexEnv(Mode mode=MODULATE);

这几种映射方式分别代表什么意思啊!

纹理映射的默认方法是MODULATE吧!代表什么意思咯!

该用户从未签到

发表于 2012-12-18 16:50:42 | 显示全部楼层
完全是opengl的东西 去看官方的文档吧

该用户从未签到

 楼主| 发表于 2012-12-19 11:34:40 | 显示全部楼层
liuzhiyu123 发表于 2012-12-18 16:50
完全是opengl的东西 去看官方的文档吧

嗯 !那另外开启纹理映射导致开启灯光无效是咋回事呢!!

该用户从未签到

发表于 2012-12-19 12:04:46 | 显示全部楼层
stateset 能不能确定是最底层节点,是不是真的开启了灯光计算,还有材质设置有没有问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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