使用多个VAO,VBO和着色器程序来绘制两个不同颜色三角形

该博客演示了如何使用OpenGL和GLFW库创建窗口,监听用户输入,实现多边形模式的切换(线框模式与填充模式),以及编译和链接着色器程序来绘制不同颜色的三角形。代码中包含顶点着色器和片段着色器的定义,并通过顶点数组对象和顶点缓冲对象来组织几何数据。

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

#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <stdio.h>
#include <stdbool.h>

void monitor(GLFWwindow* win, int W, int H) {
   
	glViewport(0, 0, W, H);
	return;
}
// 输入监听
void Input(GLFWwindow* window) {
   

	// 如果按下ESC按键,如果按下返回GLFW_PRESS  如果没有按下返回GLFW_RELEASE
	if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS) {
   
		// 关闭窗口
		glfwSetWindowShouldClose(window, true);
	}
	else if (glfwGetKey(window, GLFW_KEY_SPACE) == GLFW_PRESS) {
   
		// 使用线框模式绘制
		// 参数1 对所有图形使用
		// 参数2 使用线条绘制
		glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
	}
	else {
   
		// 使用线框模式绘制
		// 参数1 对所有图形使用
		// 参数2 使用填充绘制
		glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
	}
}
int main() {
   

	glfwInit();
	glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
	glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
	glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);

	GLFWwindow* win = glfwCreateWindow(800, 600, "多个三角形", NULL, NULL);
	if (win == NULL) {
   
		printf("创建窗口失败\n");
		exit(-1);
	}
	// 创建上下文
	glfwMakeContextCurrent(win);

	// 加载opengl函数指针
	if (gladLoadGLLoader
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值