OpenGL笔记(1)配置环境

准备事项

编译器:装有c++组件包的visual studio 2019
GLFW:在GLFW下载地址中下载32位的Windows预编译二进制文件
在这里插入图片描述
GLEW:在GLEW下载地址中直接点击下载glew文件即可
在这里插入图片描述
做完上述步骤后,我们会得到两个压缩包,把压缩包的文件放在同一个文件夹中,进行下一步。
在这里插入图片描述

项目配置

打开vs2019,创建一个c++空项目,命名为OpenGL_Template,创建一个main.cpp文件,以后的项目可以以此项目为模板,就不用重新配置环境。

include文件配置

打开项目->OpenGL_Template属性->C/C+±>常规->附加包含目录->编辑
在这里插入图片描述
选中glew文件夹的include和glfw文件夹的include
在这里插入图片描述

lib文件配置

项目->OpenGL_Template属性->链接器->常规->附加库目录
在这里插入图片描述
跟上面同样的操作,把glew和glfw的lib配置好
注意glew的lib要选择glew-2.1.0\lib\Release\Win32,64位的文件会有bug
glfw的lib根据编译器版本决定,这里使用vs2019,所以选择lib-vc2019

配置链接器

项目->OpenGL_Template属性->链接器->常规->输入
在这里插入图片描述
手动输入:
opengl32.lib
glfw3.lib
glew32s.lib
在这里插入图片描述

配置glad

这里下载glad的文件,注意参数配置如图,版本选择3.3或以上
在这里插入图片描述
下载后解压到上面的说的文件夹中,我们就有了两个.h文件和一个.c文件
打开项目属性->VC++目录->包含目录
把glad的include文件夹写进去后,把src.c文件拖入项目的文件夹中,到此完成了glad的配置

配置glm

c+±>常规->附加包含目录
在这里插入图片描述

配置stb_image.h

这里下载好文件后,把stb_image.h文件拉入项目即可

知乎作者沧海一束的回答:通过定义STB_IMAGE_IMPLEMENTATION,预处理器会修改头文件,让其只包含相关的函数定义源码,等于是将这个头文件变为一个.cpp文件了。现在只需要在你的程序中包含stb_image.h并编译就可以了。(工程中不要放stb_image.c文件,否则会报其他错误)

运行

保存之后就完成了项目配置,在main.cpp文件中输入以下代码,若控制台能正常输出hello opengl则证明没问题(代码取自LearningOpenGL

#define STB_IMAGE_IMPLEMENTATION
#include "stb_image.h"
#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp>
#include <iostream>

void framebuffer_size_callback(GLFWwindow* window, int width, int height);
void processInput(GLFWwindow *window);

// settings
const unsigned int SCR_WIDTH = 800;
const unsigned int SCR_HEIGHT = 600;

int main()
{
    glfwInit();
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
    GLFWwindow* window = glfwCreateWindow(SCR_WIDTH, SCR_HEIGHT, "Project Name", NULL, NULL);
    if (window == NULL)
    {
        std::cout << "Failed to create GLFW window" << std::endl;
        glfwTerminate();
        return -1;
    }
    glfwMakeContextCurrent(window);
    glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);
    if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
    {
        std::cout << "Failed to initialize GLAD" << std::endl;
        return -1;
    }    
    while (!glfwWindowShouldClose(window))
    {
        // input
        processInput(window);

        // render
        glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
        glClear(GL_COLOR_BUFFER_BIT);

        // glfw: swap buffers and poll IO events (keys pressed/released, mouse moved etc.)
        glfwSwapBuffers(window);
        glfwPollEvents();
    }

    // glfw: terminate, clearing all previously allocated GLFW resources.
    glfwTerminate();
    return 0;
}

void processInput(GLFWwindow *window)
{
    if(glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS)
        glfwSetWindowShouldClose(window, true);
}

void framebuffer_size_callback(GLFWwindow* window, int width, int height)
{
    glViewport(0, 0, width, height);
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值