首页 > 其他分享 >OpenGL学习笔记-1:菜鸟入门基础

OpenGL学习笔记-1:菜鸟入门基础

时间:2023-05-07 19:58:02浏览次数:34  
标签:窗口 入门 OpenGL 菜鸟 glut 模式 GLFW Cmake

一、什么是OpenGL?

  OpenGL是我们用来操作图形图片等所使用的API,但是其本身并不是API,而是Khronos Group开发维护的一个规范。Opengl定义了每个函数的入参和出参,具体实现的细节大多数是由显卡厂商完成。

二、OpenGL的两种模式

  OpenGL有两种模式:

  (1)immediate mode 立即渲染模式

      该模式是一种简单的绘图方式,学习简单,但是效率低,大多数功能都在库中,开发者计算的自由没有那么灵活。

  (2)core profile 核心模式

      该模式灵活高效,但是学习起来比较难,开发者要懂图形编程。

三、OpenGL本身是个大的状态机

  当我们使用OpenGL的时候,我们会设置一些选项,操作一些缓冲,然后使用当前的环境去渲染。

四、OpenGL窗口库

  因为每个操作系统的窗口不同,所以OpenGL把窗口管理给抽象出去了,我们可以通过一些库来帮助我们创建窗口。

  (在windows平台,我们也可以使用GLU(OpenGL Utility library),叫做OpenGL工具函数库,自己把windows窗口改成opengl的窗口。)

  一些常见的OpenGL窗口库。

  (1)GLFW  轻量级的OpenGL框架,C语言开发,支持OpenGL和OpenGL ES,支持linux和windows跨平台。

  (2)GLUT   全称 OpenGL Utility Toolkit,这部分函数以glut开头,版本较老。

  (3)FreeGlut 是glut的一个开源库,版本稳定,可以直接替代glut

    FreeGlut和GLFW的区别:FreeGlut只提供了一种用户输入,即回调函数,而GLFW提供了两种用户输入:回调函数和轮询。

五、OpenGL 和 OpenGL ES 

  OpenGL ES 是OpenGL的一个子集,全称是OpenGL Embedded system ,裁剪了OpenGL的多边形图元。

六、GLFW库编译

    源代码下载:https://www.glfw.org/

    该工程由Cmake构建,需要依赖Cmake来生成工程。

    安装好Cmake后,

    

         

     安装上述步骤后,我们在build文件夹下就可以看到VS的工程 GLFW.sln。可以编译对应的bebug库和release库。

    编译完成后这个路径 build\src\Debug 下会生成  glfw3.lib 库。

 七、GLAD和GLEW

     他们功能类似,都是opengl的扩展库,GLAD相对较新,都提供了跨平台,低版本驱动的动态链接。OpenGL程序的运行需要依赖显卡驱动的libGL库。

 八、GLEW 库下载地址:https://glew.sourceforge.net/

 九、OpenGL各库直接的关系:  

 图来自https://www.cnblogs.com/chencarl/p/10722839.html

 

    

 

     

    

标签:窗口,入门,OpenGL,菜鸟,glut,模式,GLFW,Cmake
From: https://www.cnblogs.com/132818Creator/p/17379849.html

相关文章

  • python入门
    引入我们学习python语言是为了控制计算机、让计算机能够像人一样去工作,所以在python这门语言中,所有语法存在的意义都是为了让计算机具备人的某一项技能,这句话是我们理解后续所有python语法的根本。变量什么是变量#变量就是可以变化的量,量指的是事物的状态,比如人的年龄、性别,......
  • Mybatis-Plus 简介及入门案例
    Mybatis简介MyBatis-Plus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。官网地址:https://www.baomidou.com/特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本CURD,性能基本......
  • 在线excel:LuckySheet 入门
    Luckysheet,一款纯前端类似excel的在线表格,功能强大、配置简单、完全开源。 文档地址:https://dream-num.github.io/LuckysheetDocs/zh/做一个页面编辑然后保存进数据库。另一个页面把前一个页面的内容展示出来。第一个页面,<!DOCTYPEhtml><html><headlang='zh'><met......
  • Vue2入门之超详细教程九-监视属性
    1、简介监视属性watch:1.当被监视的属性变化时,回调函数自动调用,进行相关操作2.监视的属性必须存在,才能进行监视!!3.监视的两种写法:(1) newVue时传入watch配置(2) 通过vm.$watch监视深度监测:(1) Vue中的......
  • IoC入门案例
    跟着黑马,简单写一个小的测试程序,学习一下IoC第一步,导入Spring的坐标Spring-context,对应的版本是2.1.10.RELEASE黑马刚开篇讲的是,springframework,需要用到这个maven依赖<dependency><groupId>org.springframework</groupId><artifactId>spring-conte......
  • 【笔记】跟吴恩达和IsaFulford学提示词工程(初级开发者入门课程)
    标签:#Prompt#LLM创建时间:2023-04-2817:05:45链接:课程(含JupyterNotebook),中文版讲师:AndrewNg,IsaFulford阅读提示这是一篇入门的教程,入门的意思是指大部分内容,可能你都已经知道了,但是知道不等于掌握,Prompt是一门实践经验主义科学,LLM是个黑盒,你只要不断去“实践”才能......
  • Nginx 入门实战(3)--Nginx 常用配置参数说明
    Nginx中包含众多的参数,这些参数影响Nginx的行为;本文主要介绍一些常用的参数。1、Nginx配置文件基本结构Nginx的配置文件为conf/nginx.conf,配置文件由配置指令/参数组成,有些指令/参数位于main的位置(如:events、http),有些指令/参数位于其他参数下(如:server位于http下);......
  • ICT实战系统集成-LAB2-openEuler 命令行基础操作入门
    ICT实战系统集成-实验02-openEuler命令行基础操作入门1思考题1.1创建一个/iamthebest目录;1.2在/iamthebest目录下创建/cat和/dog两个目录;1.3将/etc/passwd文件复制到/iamthebest目录;并查看被复制文件的操作权限;1.4尝试执行cp-i/etc/passwd.你会发现什么?为什么......
  • spring3.0 mvc和rest入门例子
    关键字:spring3.0mvc和rest入门例子现在写个简单的小例子出来给初学者学习下。srping3也支持rest,所以例子也包括这部分内容。先看web.xml配置<!--像js,css,gif等静态文件,需要配置为默认的servlet--><servlet-mapping><servlet-name>defaul......
  • Docker 入门使用 (二)
    配置国内的源>/etc/docker/daemon.json{"registry-mirrors":["https://mirror.ccs.tencentyun.com","http://registry.docker-cn.com","http://docker.mirrors.ustc.edu.cn","http://hub-mirror.c.163.com......