虽然我不鼓励我阅读OpenGL红皮书,但我仍然这样做,因为它是为初学者设计的唯一一本书,教程和/或文档虽然非常重要但并不能完全替代一本书.为了证明自己的合理性:)
现在,有一个使用多重采样的抗锯齿的例子,其中涉及到
glEnable(GL_MULTISAMPLE);
我使用Qt,我得到一个编译错误,因为GL_MULTISAMPLE是一个未声明的标识符.我目前看到以下原因:
>对于某些实现,包括Qt附带的实现,未定义GL_MULTISAMPLE.
>它不在GL / gl.h或GL / glu.h中,而是在< QGLWidget>中未包含的一些其他标题中.或者不跟Qt一起来
>它已过时/弃用
上述原因之一是否正确?如果没有,这就是我没有它的原因,我怎样才能获得?提前致谢
解决方法
GL_MULTISAMPLE曾经是OpenGL的扩展,直到1.3,无论它是否实现取决于您的硬件/驱动程序/供应商实现.您可能实际上想要使用GL_MULTISAMPLE_ARB.如果您使用的是
Windows,则提供的OpenGL标头不会包含此宏.
也可以看看:
> http://www.opengl.org/resources/faq/technical/extensions.htm
> http://www.gamedev.net/community/forums/topic.asp?topic_id=536666
RA的响应将简化扩展处理 – 我更喜欢自己使用GLee
,但它们几乎可以互换(而且GLee做了懒惰的init,这有助于我解决Solaris上的一个关键问题),但是GLEW保持更新(GLee已经过时了)现在科斯引起了我的注意.)