文章目录
为什么出此内容
因需要接触计算机图形学相关内容,但配置GLFW、GLEW、Imgui的过程新建项目过于复杂,在此做以下总结,希望能方便大家进行配置
整体流程
由于已经把需要用到的文件都已经预编译规整好放进相应的文件夹,所以在此不对配置的详细过程进行叙述
- 在VS2022中创建新项目,创建源文件main.cpp,打开项目根目录(main.cpp所在目录)
- 把Include、DLL、Lib文件夹放入项目根目录(里面已经存有GLFW、GLEW、glm和SOIL2相关库文件)
- 根据下面的图片流程依次进行项目初始化配置
至此已经完成了GLFW+GLEW相关的配置,可以使用下面的示例代码检验是否可以正常运行。
示例代码
三角形显示代码
#include <GL\glew.h>
#include <GLFW/glfw3.h>
#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;
const char* vertexShaderSource = "#version 330 core\n"
"layout (location = 0) in vec3 aPos;\n"
"layout (location = 1) in vec3 aColor;\n"
"out vec3 ourColor;\n"
"void main()\n"
"{\n"
" gl_Position = vec4(aPos, 1.0);\n"
" ourColor = aColor;\n"
"}\0";
const char* fragmentShaderSource = "#version 330 core\n"
"out vec4 FragColor;\n"
"in vec3 ourColor;\n"
"void main()\n"
"{\n"
" FragColor = vec4(ourColor, 1.0f);\n"
"}\n\0";
int main()
{
// glfw: initialize and configure
// ------------------------------
glfwInit();
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
#ifdef __APPLE__
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
#endif
// glfw window creation
// --------------------
GLFWwindow* window = glfwCreateWindow(SCR_WIDTH, SCR_HEIGHT