一个简单的OpenGL实例

本文详细介绍了一个简单的OpenGL实例的实现过程,包括环境配置、代码编写、编译运行等步骤,适合初学者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        

       初学OpenGL的时候,往往拿着一大堆图形学算法书狂啃,但是不知道怎么去运行书上的伪代码,见识不到OpenGL的神奇,让人很沮丧的。这篇文章从无到有一步一步实现一个简单的OpenGL实例。

       OpenGL环境配置我就不说了。

       1、打开VC++,新建一个window32 application空白项目

       2、在项目中添加下面的代码

#include <windows.h>
#include <gl/glut.h>

void display(void){
	glClear(GL_COLOR_BUFFER_BIT);// 将buffers设置为预先设定的值。
	//参数GL_COLOR_BUFFER_BIT表明现在可以向buffer中写入颜色值
	glColor3f(1.0,1.0,1.0);//指定了当前绘图的颜色
	glBegin(GL_POLYGON);//glBegin和glEnd是一一对应的。
	//这两个函数限制了一组或多组图元的顶点定义。
	//在这两个函数中间就是你所绘制的由多个顶点组成的图元。
	//函数的参数表明了所绘制的图元的类型
		glVertex3f(0.25,0.25,0.0);
		glVertex3f(0.75,0.25,0.0);
		glVertex3f(0.75,0.75,0.0);
		glVertex3f(0.25,0.75,0.0);
	glEnd();
	glFlush();//glFlush清空所有buffer,使所有发出的命令能在规定的时间内运行
}

void init(void){
	glClearColor(0.0,0.0,0.0,0.0);//设置窗口将被清除成的颜色
	//glClear完成实际的窗口清除工作,每次都会将窗口清除成glClearColor指定的颜色
	glMatrixMode(GL_PROJECTION);//用来确定所创建窗口的显示模式。
	// 本例中的参数GLUT_SINGLE 指定单缓存窗口,这也是缺省模式,
	// 对应的模式为GLUT_DOUBLE 双缓存窗口。
	// 参数GLUT_RGB指定颜色RGBA模式,这也是缺省模式,
	// 对应的模式为GLUT_INDEX 颜色索引模式窗口。
	glLoadIdentity();//将当前的用户坐标系的原点移到了屏幕中心:类似于一个复位操作
	glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);//指定了OpenGL在绘制最终图像时所使用的坐标系统
}

int main(int argc,char **argv){
	glutInit(&argc,argv);//对GLUT进行初始化,并处理所有的命令行参数
	glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);//指定了是使用RGBA模式还是颜色索引模式
	glutInitWindowSize(250,250);//指定窗口大小
	glutInitWindowPosition(100,100);//指定窗口位置
	glutCreateWindow("Hello");//创建窗口,其中的字符串是窗口的名称
	init();
	glutDisplayFunc(display);//显示回调函数,每当GLUT确定一个窗口需要重新显示时调用
	glutMainLoop();//程序启动,创建的窗口在此可见,回调函数被触发,一直循环下去
	return 0;
}

      3、链接库



   4、可能会报一个错误:unresolved external symbol _WinMain@16   ,解决办法参考:报错解决办法
   5、编译运行。效果如下


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值