查看: 1054|回复: 3

关于颜色矩阵

[复制链接]

该用户从未签到

发表于 2010-10-11 11:59:25 | 显示全部楼层 |阅读模式
按照OpenGL编程指南上面8.6.3一节提到的颜色矩阵,在绘制场景之前使用如下代码,应该可以让场景变色:
glMatrixMode(GL_COLOR);
GLenum err = glGetError();
const double mtxColor[16] =
{
  0.0, 0.0, 0.0, 0.0,
  0.0, 0.0, 1.0, 0.0,
  1.0, 0.0, 0.0, 0.0,
  0.0, 0.0, 0.0, 1.0
};
glLoadMatrixd(mtxColor);
err = glGetError();
glMatrixMode(GL_MODELVIEW);

上面的代码运行起来,实际上是没有任何效果的,场景的颜色根本没有任何改变。这里,我跟踪代码,发现glGetError函数没有返回任何出错信息。

是否有达人有这方面的经验?

该用户从未签到

 楼主| 发表于 2010-10-11 12:02:06 | 显示全部楼层
我是直接拿NEHE的范例程序,在他的场景绘制代码中做这个事情(是在glClear之后,物体渲染之前)。

同样,我若使用OSG,使用osg::ColorMatrix对象来做这个事情,发现仍然无效,而且单步跟踪到osg::ColorMatrix::apply函数里面,也没有发现错误。

各位达人帮忙啊~~~

该用户从未签到

 楼主| 发表于 2010-10-11 17:54:50 | 显示全部楼层
好像是glMatrixMode(GL_COLOR)只能影响像素操作的结果???

该用户从未签到

发表于 2010-10-12 08:32:48 | 显示全部楼层
ColorMatrix并不是在所有显卡上都能够使用的,也许您的显卡根本不支持这一特性
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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