OpenGL入门(1)——建立一个OpenGL项目

OpenGL入门(1)——建立一个OpenGL项目

  • 前言
  • 一、OpenGL是什么?
  • 二、建立OpenGL项目
    • 1.准备工作
    • 2.建立项目
      • 2.1 建立项目文件
      • 2.2 链接OpenGL库
      • 2.3 测试
  • 总结


前言

本系列为OpenGL入门系列,用于记录自己的学习过程并分享学习经验。本人是跟随视频博主The Cherno发布的视频教程进行学习,B站也有搬运过来的视频最好的OpenGL教程之一,有兴趣的朋友可以一同学习。


一、OpenGL是什么?

OpenGL(英语:Open Graphics Library,译名:开放图形库或者“开放式图形库”)是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。

根据视频里的内容了解到OpenGL实际上是一种用于控制GPU的规范,这一规范获得了各平台和软硬件厂商的认可,同样也被遵守。但这并不是说他们公用同一套OpenGL,实际上他们各自有自己的OpenGL,针对自身系统或软硬件有不同程度的优化,且大多为非开源,不过在我们这些调用者的眼中,他们表面上所用的调用语句基本一样,实现的效果基本一样,很容易就认为这是一样的东西。

二、建立OpenGL项目

1.准备工作

上文说大多数的OpenGL都不是开源的,那有没有开源的OpenGL呢?答案是肯定的!
这里我们使用GLFW开源的OpenGL库进行学习。

进入主页我们会看到这样的页面:
OpenGL入门(1)——建立一个OpenGL项目_第1张图片
可以看到直接就有下载的提示,不过这个是大而全的,而我们想用的是小而美的,适合个人开发使用的。找到右上方“下载”按钮,点击进入如下页面:
OpenGL入门(1)——建立一个OpenGL项目_第2张图片
这里就要根据自己的平台进行选择了,本人所用平台为Windows,可以选择32位的和64位的。有一点需要知道的是,这里32位的能在32位和64位的操作系统中运行,64位的只能在64位的操作系统中运行,而且运行的速度据说也差不多,所以为了能适用于更多的操作系统选择32位的进行下载。
下载并解压后得到
OpenGL入门(1)——建立一个OpenGL项目_第3张图片
至此准备工作完成。

2.建立项目

2.1 建立项目文件

OpenGL入门(1)——建立一个OpenGL项目_第4张图片
在项目下添加Dependencies文件夹,并在文件夹内添加GLFW文件夹,将之前下载的文件里的includ文件和lib-vc2019(本人用的VS为2019版本,这个别的应该也差不多都适用)复制到GLFW文件夹内。
得到如下的项目文件:
OpenGL入门(1)——建立一个OpenGL项目_第5张图片
OpenGL入门(1)——建立一个OpenGL项目_第6张图片
OpenGL入门(1)——建立一个OpenGL项目_第7张图片
至此完成项目文件的建立。

2.2 链接OpenGL库

在VS中资源管理器下右键项目
OpenGL入门(1)——建立一个OpenGL项目_第8张图片
点击最下方的“属性”,出现项目属性页
找到C/C++下的“常规”里的“附加包含目录”,写入$(SolutionDir)Dependencies\GLFW\include(此处用到了宏,编译器会自动对$SolutionDir进行解析得到对应的路径)

OpenGL入门(1)——建立一个OpenGL项目_第9张图片
找到“链接器”下的“常规”里的“附加库目录”,写入$(SolutionDir)Dependencies\GLFW\lib-vc2019
OpenGL入门(1)——建立一个OpenGL项目_第10张图片
至此完成OpenGL库的链接。

2.3 测试

在VS中建立好的OpenGL项目下新建筛选器“src”,用于存放源代码,在其下添加Applications.cpp
OpenGL入门(1)——建立一个OpenGL项目_第11张图片
将如下代码复制到Applications.cpp中

#include 

int main(void)
{
     
    GLFWwindow* window;

    /* Initialize the library */
    if (!glfwInit())
        return -1;

    /* Create a windowed mode window and its OpenGL context */
    window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);
    if (!window)
    {
     
        glfwTerminate();
        return -1;
    }

    /* Make the window's context current */
    glfwMakeContextCurrent(window);

    /* Loop until the user closes the window */
    while (!glfwWindowShouldClose(window))
    {
     
        /* Render here */
        glClear(GL_COLOR_BUFFER_BIT);

        glBegin(GL_TRIANGLES);
        glVertex2f(-0.5f, -0.5f);
        glVertex2f(0.0f, 0.5f);
        glVertex2f(0.5f, -0.5f);
        glEnd();


        /* Swap front and back buffers */
        glfwSwapBuffers(window);

        /* Poll for and process events */
        glfwPollEvents();
    }

    glfwTerminate();
    return 0;
}

运行得到如下结果即代表OpenGL项目完成创建。
OpenGL入门(1)——建立一个OpenGL项目_第12张图片


总结

以上就是建立一个OpenGL项目的内容,本文仅仅简单介绍了OpenGL项目的创建,而OpenGL提供了大量能使我们快速便捷地处理图象的函数和方法,在接下来的文章中会逐步介绍,敬请期待。

你可能感兴趣的:(OpenGL,opengl,c++)