1.什么是opengl?
它是一个由Khronos Group组织制定并维护的跨平台图形编程接口规范,它定义了渲染2D和3D图形的标准函数集合,允许开发者通过编程直接控制图形硬件,实现高性能的图形渲染。
2.他开源么?
不开源,硬件厂家如英伟达和AMD 或者操作系统会根据规范来实现。会根据自己家的GPU进行优化。
基于公开文档,允许任何人基于规范开发实现。
3.优点?
多系统支持,可以在windows macOS Linux Android 上运行,覆盖桌面 移动和嵌入式设备,因为它的运用范围很广,所以十分值得学习。
我的世界,他通过opengl实现跨平台渲染。
硬件无关。开发者无需更具不同的GPU编写代码,可以保证同一套在不同显卡上表现一直。驱动层会自动处理硬件差异。
相比如微软的DirectX,他更具有跨平台性。在游戏领域和科学领域应用更广。
opengl作为低级API,允许开发者精细控制渲染管线,实现高性能渲染和自定义光照阴影。
4.开发支持?
GL:核心函数
GLU:实用工具
GLFW/GLUT:跨平台窗口管理
GLAD/GLEW:扩展函数
所以我们在学习时,用GLFW和GLAD比较多。
5.下载安装
https://www.glfw.org/download.html

官方地址下载安装。

核心引用文件
6.添加引用


复制核心文件库到项目文件目录下,

属性中设置两处
$(SolutionDir)Depandec\include

$(SolutionDir)Depandec\lib-vc2022
相对路径方便项目打包别人直接运行

附加依赖项添加
glfw3.lib;opengl32.lib;User32.lib;Gdi32.lib;Shell32.lib
7.案例代码
#include <iostream>
#include <GLFW/glfw3.h>
int main() {
    GLFWwindow* window;
    if (!glfwInit())
        return -1;
    window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);
    if (!window)
    {
        glfwTerminate();
        return -1;
    }
    glfwMakeContextCurrent(window);
    while (!glfwWindowShouldClose(window))
    {
        glClear(GL_COLOR_BUFFER_BIT);
        glBegin(GL_TRIANGLES);
        glVertex2f(-0.5f,-0.5f);
        glVertex2f(0.0f,0.5f);
        glVertex2f(0.5f,-0.5f);
        glEnd();
        glfwSwapBuffers(window);
        glfwPollEvents();
    }
    glfwTerminate();
    return 0;
}运行效果

8.问题解决
大部分情况下会出现引用报错、库连接失败 无法打开等问题。
仔细对照图片进行设置,检查路径和对应平台
 
                   
                   
                   
                   
                             
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                   4443
					4443
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            