Qt OpenGL 基础程序框架

Qt OpenGL 基础程序框架


mywidget.cpp

/*initializeGL 初始化OpenGL环境
*	1.设置清屏颜色
*	2.启用深度缓存
*	3.启用纹理
*/
void MyWidget::initializeGL()  
{  
	/*载入纹理*/
	  loadGLTextures();
	  glEnable( GL_TEXTURE_2D );

	glShadeModel( GL_SMOOTH );
	glClearColor( 0.0, 0.0, 0.0, 0.0 );
	

	/*下面这三行必须做的是关于depth buffer(深度缓存)的。*/
	glClearDepth( 1.0 );//深度缓存
	glEnable( GL_DEPTH_TEST );//启用深度测试
	glDepthFunc( GL_LEQUAL );//深度测试类型

	glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST );//真正精细的透视修正。
}  

/*完成OpenGL每帧的绘制
*	1.清除颜色和深度缓存
*	2.重置模型视图矩阵
*	3.绘制图形
*/
void MyWidget::paintGL()
{
	glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
	glLoadIdentity();
	glBegin( GL_QUADS );
	glVertex3f( -1.0, -1.0,  1.0 );
	glVertex3f(  1.0, -1.0,  1.0 );
	glVertex3f(  1.0,  1.0,  1.0 );
	glVertex3f( -1.0,  1.0,  1.0 );
	glEnd();
}
 
 
 
 

 
 
/*窗口更新时候调用
*	1.设置视口
*	2.设置投影矩阵
*	3.设置观察矩阵
*/
void MyWidget::resizeGL(int width, int height)  
{  
	if ( 0 == height )
	{
		height = 1;//防止height为0。
	}
	glViewport( 0, 0, (GLint)width, (GLint)height );//重置当前的视口
	glMatrixMode( GL_PROJECTION );//设置投影矩阵
	glLoadIdentity();//重置投影矩阵
	gluPerspective( 45.0, (GLfloat)width/(GLfloat)height, 0.1, 100.0 );//建立透视矩阵
	glMatrixMode( GL_MODELVIEW );//选择模型观察矩阵
	glLoadIdentity();//重置模型观察矩阵
}  




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值