OPENGL 学习笔记 仅作个人学习参考用

 

学习网站链接:

LearnOpenGL英文站点: https://learnopengl.com 

LearnOpenGL中文站点:https://learnopengl-cn.github.io/ 

BiliBili视频教程:[傅老師/OpenGL教學 第一章] OpenGL自製3D遊戲引擎 (已更畢)_哔哩哔哩_bilibili

学习所用软件: Microsoft Visual Studio 2017 community 版本 (以下简称VS)

 

大一新生学习,水平很菜,仅作为个人学习笔记所用,有错误欢迎指导

 

预先配置 0.1

下载完成安装 VS,并且下载 glew,glfw 放在文件夹中,完成vscode配置其余选项

 

配置使用静态编译器

// 告诉编译器 GLEW使用static(静态)版本
#define	GLEW_STATIC

 

配置第一个窗口 1.1

首先初始化glfw函数

glfwInit();

提示OpenGL使用的版本,OpenGL使用的预设

//提示函数使用哪个版本的openGL MAJOR主版本号 3   MINROR 次版本号 也给3。
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);

//提示OPENGL使用什么预设
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);

使用造窗函数创立一个窗口对象

//glfwCreateWindow 是GLFW的造窗函数 有三个参数 分别为 width 宽度 height 高度 和 窗口名字
GLFWwindow* window = glfwCreateWindow(800, 600, "My First OpenGL Window",NULL,NULL);

检验是否成功建立窗口对象

if (window == NULL) //如果返回一个空指针 代表开设窗口失败,提示失败 返回返回-1
{
	printf("Open window failed");

	//终止GLFW
	glfwTerminate();

	return -1;
}
glfwMakeContextCurrent(window);

初始化glew

	//初始化 GLEW 
	glewExperimental = true;
	if (glewInit() != GLEW_OK )
	{
		printf("Init GLEW failed.");

		//终止GLFW
		glfwTerminate();

		return -1;
	}

调用glViewport函数来设置窗口的大小

	// 这个函数 前两个参数 右上角的坐标值 后面两个参数是窗口大小
	glViewport(0, 0, 800, 600);
// glfwWindowShouldClose 这个函数可以探测 参数中的窗体是否要被程序关闭

	while (!glfwWindowShouldClose(window)) {

		//渲染指令
		//为了测试一切都正常工作,我们使用一个自定义的颜色清空屏幕。在每个新的渲染迭代开始的时候我们总是希望清屏
		//我们可以通过调用glClear函数来清空屏幕的颜色缓冲
		//GL_COLOR_BUFFER_BIT 颜色缓存,GL_DEPTH_BUFFER_BIT 深度缓存 和GL_STENCIL_BUFFER_BIT 3D缓存
		glClearColor(0, 1.0, 0, 1.0f); //RGBA四个参数值 
		glClear(GL_COLOR_BUFFER_BIT);

		//swapbuffer 会交换两个色彩暂存区块 就是双缓冲
		//double buffer 双缓冲可以解决闪烁问题 所以在显示一张图片 要开始绘制下一张图片
		glfwSwapBuffers(window);

		//接受用户输入
		glfwPollEvents();
	}

释放GLFW分配的内存

	//清空我们配置上去资源
	glfwTerminate(); 

现在我们应该可以看到一个绿色的窗口。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值