参考 nehe OPENGL Lesson 6
一.基本框架的搭建
首先在Visual C++ MFC环境下搭建好开发的基本框架,为了方便,在stdafx.h文件中加入以下
几行头文件包含(前提已经设置好了OPENGL的各个库文件及其他条件)
- #pragma comment (lib,"glaux.lib")
- #include <gl\glut.h>
- #include <GL\glaux.h>
#pragma comment (lib,"glaux.lib")
#include <gl\glut.h>
#include <GL\glaux.h>
然后在XXXView.h类中添加以下变量和函数作为成员
- GLuint text;
- void ReSize(GLint x, GLint y);
GLuint text;
void ReSize(GLint x, GLint y);
其中Resize通常函数可以写作
- void CXXXView::ReSize(GLint x, GLint y)
- {
- glShadeModel(GL_SMOOTH); // 启用阴影平滑
- glClearColor(0.0f, 0.0f, 0.0f, 0.5f); // 黑色背景
- glClearDepth(1.0f); // 设置深度缓存
- glEnable(GL_DEPTH_TEST); // 启用深度测试
- glDepthFunc(GL_LEQUAL); // 所作深度测试的类型
- glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // 告诉系统对透视进行修正
- glViewport(0,0,x,y); // 重置当前的视口
- glMatrixMode(GL_PROJECTION); // 选择投影矩阵
- glLoadIdentity(); // 重置投影矩阵
- // 设置视口的大小
- gluPerspective(45.0f,(double)x/(double)y,0.1,100.0f);
- //glMatrixMode(GL_MODELVIEW); // 选择模型观察矩阵
- //glLoadIdentity(); // 重置模型观察矩阵
- }
void CXXXView::ReSize(GLint x, GLint y)
{
glShadeModel(GL_SMOOTH); // 启用阴影平滑
glClearColor(0.0f, 0.0f, 0.0f, 0.5f); // 黑色背景
glClearDepth(1.0f); // 设置深度缓存
glEnable(GL_DEPTH_TEST); // 启用深度测试
glDepthFunc(GL_LEQUAL); // 所作深度测试的类型
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // 告诉系统对透视进行修正
glViewport(0,0,x,y); // 重置当前的视口
glMatrixMode(GL_PROJECTION); // 选择投影矩阵
glLoadIdentity(); // 重置投影矩阵
// 设置视口的大小
gluPerspective(45.0f,(double)x/(double)y,0.1,100.0f);
//glMatrixMode(GL_MODELVIEW); // 选择模型观察矩阵
//glLoadIdentity(); // 重置模型观察矩阵
}
以下重点需要修改OnCreate函数(初始化过程)以及OnDraw函数