01-计算机图形学入门
01、计算机图形学:
-
计算机图形学(Computer Graphics,CG)是研究使用计算机创造图形的学科,当前在计算机中有几种技术方式实现,比如OpenGL,Windows系统下的DirectX,macOS系统的Metal,和Vulkan
-
图形编程是计算机科学中最具有挑战性的一门技术,图形编程是基于着色器的。
- 程序员开发的程序一般使用诸如C++或Java等标准编程语言编写,并运行CPU上
- 还有一些程序使用的是专门的着色器语言编写,直接运行在GPU上,比如OpenGL的着色器语言为GLSL,DirectX的着色器语言为HLSL
- 通过着色器语言可以实现各种图形,但是不管是复杂的三维图形,还是简单的画一个点,都需要一系列复杂的步骤,把图形数据从一个渲染管线中传递下去才行。
02、OpenGL
-
OpenGL全名Open Graphics Library,译名开放式图形库。可用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口。
- 可以对图形硬件设备特性进行访问的软件库
- OpenGL4.5版本已经有超过500个不同的命令,可用于设置所需的对象、图像和操作,以便于开发交互式的三维计算机图形应用程序
-
OpenGL历史
- OpenGL在1992年发布了1.0版本
- 在2004年更新了2.0版本,该版本中引入了OpenGL着色器语言GLSL,使得着色器程序可以被直接安装到图形管线的各个阶段并执行
- 2009年更新到3.1版本,该版本强制使用着色器编程
- 2010年4.0版本,在可编程管线中增加了一个曲面细分阶段
-
OpenGL变体
- OpenGL有不同的版本和变体,标准的OpenGL也称为桌面OpenGL,还有一个变体是OpenGL ES
- OpenGL ES,其中ES是(Embedded System的简称),是为嵌入式系统开发而定制的,多用于手机端,游戏主机,汽车等设备
- OpenGL的另一个变体是WebGL,WebGL急于OpenGL ES,用于在浏览器中实现可交互的三维图形,通过JS进行图形操作
03、图形渲染
- OpenGL程序不会把图像直接绘制到计算机屏幕上,而是将之渲染到一个帧缓冲区(FBO),然后由计算机来负责把帧缓冲区中的内容绘制到屏幕上的一个窗口中
- 各操作系统都有相应的窗口管理功能,当前最流行的库是GLFW
04、总结
- 图形编程现实技术
- OpenGL、DirecX、Metal、Vulkan
- 图形数据从一个渲染管线中传递下去
- OpenGL
- 使用着色器语言GLSL
- 变体有OpenGL ES、WebGL
- 图形渲染
- 将图形数据放到帧缓冲区中后,有计算机绘制到屏幕的窗口中