C++/OpenGL应用程序
2024-01-07 23:38:08
图像应用程序大部分是 C++ 编写,OpenGL 调用实现与 3D 渲染相关任务将会使用一些扩展库: GLEW、GLM、GLFW、SOLL2 等。
GLFW 库包含 GLFWwindow 类,我们可以在其上进行 3D 场景绘制。OpenGL 也向我们提供了用于 GLSL 程序载入可编程着色阶段并对其进行编译的命令。最后 OpenGL 使用缓冲将 3D 模型和其他相关图像数据发送到管线中。
GLFWwindow 实例并为其设置背景颜色
初始化 GLFW
实例化 GLFWwindow
初始化 FLEW
调用 init()
重复调用 display() 函数
glClearColor() //命令指定了清楚背景时用的颜色,(1.0, 0.0, 0.0, 1.0) R G B 不透明
glClear(GL_COLOR_BUFFER_BIT); // 红色填充颜色缓冲区
// 创建 GLFW 窗口, 参数为 宽,高,名称,全屏显示,资源共享
GLFWwindow* window = glfwCreateWindow(600, 600, "Chapter2 - 2.1", nullptr, nullptr);
#include <GL/glew.h>
#include <GLFW/glfw3.h>
#include <iostream>
using namespace std;
void init(GLFWwindow* window)
{
}
void display(GLFWwindow * window, double currentTime)
{
glClearColor(1.0, 0.0, 0.0, 1.0); // RGB 透明
glClear(GL_COLOR_BUFFER_BIT); // 红色填充颜色缓冲区
}
int main()
{
if (!glfwInit()) { exit(EXIT_FAILURE); } // 初始化
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4); // 主版本
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 6); // 小版本
// 创建 GLFW 窗口, W, H, TileName, 全屏显示, 资源共享
GLFWwindow* window = glfwCreateWindow(600, 600, "Chapter2 - 2.1", nullptr, nullptr);
glfwMakeContextCurrent(window); // OpenGL 上下文与 GLFW 窗口关联
if (glewInit() != GLEW_OK) { exit(EXIT_FAILURE); } // 初始化
glfwSwapInterval(1); // 开启垂直同步
init(window);
// 简单的渲染循环
while (!glfwWindowShouldClose(window)) {
display(window, glfwGetTime());
glfwSwapBuffers(window);
glfwPollEvents();
}
glfwDestroyWindow(window);// 销毁窗口
glfwTerminate(); // 关闭窗口
exit(EXIT_SUCCESS);
return 0;
}
文章来源:https://blog.csdn.net/weixin_43862398/article/details/135445805
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!