如何学习OpenGL?就业能做什么?
OpenGL学习建议遵循以下步骤:?
1,线性代数的基础知识不需要很深入。大学的线性代数复习一下就够了,尤其是矩阵变换部分。?
2、C++开发语言,一定要很熟练。?
3.《计算机图形学》应该是大学课本,这也是所有图形学的基础知识。
4.《3D游戏编程大师技巧》等基础入门教材,基本将基础知识与如何使用openGL API结合起来,让读者开始开发。同样,还有类似. github.io/这样的网站,都是很好的入门资料。
5.《openGL编程指南》俗称“红皮书”,openGL Super 5俗称“蓝皮书”,但这两本书更适合作为查询手册,你需要知道用哪一本。
6.进一步的学习是了解详细的流水线处理流程和着色器语言开发。
OpenGL主要属于计算机图形学,属于比较专业的领域。
目前3D游戏开发是应用最广泛的一块,大公司主要使用openGL开发游戏引擎。即使是现在,很多基于U3D开发的手游,也需要熟悉基本的openGL流水线流程和一些着色器知识。
其次,在一些专业领域会有大量的模拟,做各种滤镜和特效也需要openGL知识,但这些方面也需要一些图像处理的知识。
彭格尔设计
OpenGL规范描述了用于绘制2D和3D图形的抽象API。虽然这些API可以完全在软件中实现,但它们是为大多数或所有硬件加速而设计的。
OpenGL的API定义了几个可以被客户端程序调用的函数和一些命名的整数常量(比如常量GL_TEXTURE_2D对应的十进制整数是3553)。
虽然这些函数的定义表面上类似于C编程语言,但它们是独立于语言的。所以OpenGL有很多语言绑定,包括:JavaScript (API)绑定的WebGL用于基于OpenGL ES 2.0的Web浏览器中的3D渲染);c类:WGL、GLX和CGL;;c . iOS提供的绑定;Android提供的Java和c绑定。
OpenGL不仅是语言独立的,而且是平台独立的。该规范没有说明如何获取和管理与OpenGL上下文相关的内容,而是将这些内容作为细节提供给底层窗口系统。出于同样的原因,OpenGL纯粹专注于渲染,不提供输入、音频和窗口相关的API。
OpenGL是一个不断发展的API。Khronos集团将定期发布新版本的OpenGL规范,新版本通过扩展API支持各种新功能。每个版本的细节都是由Khronos集团的成员决定的,包括显卡制造商、操作系统设计师以及像Mozilla和Google这样的通用技术公司。
除了核心API所需的功能,GPU厂商还可以以扩展的形式提供额外的功能。扩展可能引入新的函数和新的常数,并可能放松或取消现有OpenGL函数的限制。
然后扩展分两部分发布:包含扩展函数原型的头文件和作为制造商的设备驱动程序。厂商使用扩展来公开定制的API,而不需要其他厂商或Khronos集团的支持,这大大增加了OpenGL的灵活性。OpenGL注册表负责所有扩展的收集和定义。
每个扩展都与一个短标识符相关联,该标识符基于开发公司的名称。比如英伟达的标识符就是NV。如果多个供应商同意使用相同的API来实现相同的功能,那么使用EXT标识符。
这种情况更进一步。Khronos集团的架构审查委员会(ARB)正式批准了该扩展,因此它被称为“标准扩展”,标识符为ARB。
第一个ARB扩展是GL_ARB_multitexture。
OpenGL每个新版本中引入的函数,尤其是ARB和EXT类型的扩展,通常是由几个广泛实现的扩展函数组成的。