OpenGL学习问题记录

来源:互联网 发布:移动公司大数据岗位 编辑:程序博客网 时间:2024/05/19 00:40

     最近要用MFC框架及OpenGL制作一个简单的三维应用程序,于是买了本红宝书并参考Nehe教程源码实现其中的功能。由于本人水平很菜,在实际应用中还是遇到了许多细节性的问题。现在将遇到的问题及其解决方法总结如下,方便今后查阅并且可能或许会帮助那些遇到此类问题的菜鸟。

     1. MFC窗口开启多重采样抗锯齿

         至于如何判断窗口是否支持多重采样以及如何开启多重采样这里就不多说了,Nehe教程有很清楚的代码。现在要说下MFC环境开启多重采样功能。说简单点,在系统支持多重采样前提下,开启多重采样其实就是设置屏幕像素格式支持该功能。window操作系统有个特点:窗口的像素格式一旦确立无法更改这也是为什么Nehe的Win32代码要创建两次窗口的原因(找了好久才找到这个原因,笨啊),所以MFC的窗口在检测是否支持多重采样后,必须将其销毁重新创建,剩下的就是如何实现MFC窗口的再创建了(比如View类)。

     2. OpenGL顶点数组和VBO

         为了提高显示速度OpenGL允许将顶点集存放在顶点缓存中,在采用glVertexPointer指定顶点数组时只要将指针参数设置为NULL就可将指针指向当前绑定数组。但是这时如果指针需要指向某个临时产生的地址(非VBO),采用glDrawElements等函数则画不出图像。原因在于............(道行不够,有知道的还请告诉我下),解决方法是取消当前绑定的VBO:glBindBufferARB(GL_ARRAY_BUFFER,0);

     (待更新...)