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

2021/5/30 18:20:19

本文主要是介绍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(); 

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



这篇关于OPENGL 学习笔记 仅作个人学习参考用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程