
官网下载就可以,刚开始下载的时候会有卡顿,是因为网络ip的问题,我尝试了一些改dns的方法,但是没有用,后来通过ip更换工具,把网换到了广东电信就可以了。这里下载的是一个下载器,只需要用ip更换工具的免费时长把那个下载器下好就可以了。
开发环境配置 OpenGL/GLSL一般显卡都自带,我的显示是4.6,可以选择下载GLView查看。其实可以直接跳过这一步。
GLFW需要用到CMAKE“构建”GLFW,目的是生成
- glfw3.lib文件
- GLFW文件夹
*** 作步骤
- 下载CMAKE和GLFW源码,因为github的网的问题,要想办法。
- 解压之后打开bin目录下的cmake-gui.exe
- 点击Browse Source 点击解压后glfw的目录,点击Browse Bulid…选要生成的文件位置,然后点击左下角的Configure,会变红,(网上有说还要把最上面的BUILD_SHARED_LIBS点选中),再次点击Configure,而后点击Configure右边的Generate。
- 会在刚刚生成的文件中有一个文件:GLFW.sln,没有这个文件说明刚刚的步骤有问题,需要再去 *** 作。
- 用vs打开GLFW.sln,在新的vs窗口右侧的GLFW3,然后右键点击 选择生成(Build)。GLFW.sln的目录下会新生成很多文件。搜索我们要找的那个文件glfw3.lib文件和GLFW文件夹,确定有的话,这一步就完成了。
没有复杂的 *** 作,解压之后找两个文件和一个文件夹
- glew32.lib
- glew32.dll
- GL文件夹
解压之后点击,找到glm文件夹。
SOIL2虽然步骤稍有繁琐,但其实很简单。
- 下载premake,里面只有一个premake5.exe
- 下载SOIL2,解压
- 把premake5.exe复制到soil2的文件夹中
- 在soil2文件夹下,打开cmd
premake5 vs2022
- 会新生成make文件夹,里面有一个SOIL2.sln
- 和刚刚处理那个sln文件的方式一样,打开,然后点击soil2-static-lib生成。
- 需要的文件有soil2-debug.lib和SOIL2文件夹,同样的,也可以直接在当前目录进行搜索就可以了。
矩形是自定义文件夹
圆形为之前预留的文件
椭圆是之前预留的文件夹
- vs新建空的C++项目
- 在调试和发布模式下分别进行以下 *** 作
- 项目属性,C/C++下点击常规,在“附加包含目录” ,把刚刚的inlude文件夹编辑进去
- “链接器”–>“常规” -->“附加库目录”,把lib目录编辑进去
- “链接器”–>“输入” -->“附加依赖项”, 添加4个文件名glew32.lib glfw3.lib soil2-debug.lib opengl32.lib。
- 新建一个 main.cpp,可以写一个hello world,然后运行,把glew32.dll放入相应的Release或者Debug中,在main.cpp的上一级目录中会有一个x64(如果你是64位运行的话),点进去就有Release或者Debug,把glew32.dll放入其中。
下面这个代码能跑通,就说明配置好了,可以选择导出模板,以避免重复配置。
#include
#include
#include
using namespace std;
void init(GLFWwindow* window) { }
void display(GLFWwindow* window, double currentTime) {
glClearColor(1.0, 0.0, 0.0, 1.0);
glClear(GL_COLOR_BUFFER_BIT);
}
int main(void) {
if (!glfwInit()) { exit(EXIT_FAILURE); }
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
GLFWwindow* window = glfwCreateWindow(600, 600, "Chapter 2 - program 1", NULL, NULL);
glfwMakeContextCurrent(window);
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);
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)