让我们从几个关键角度来了解 OpenGL/WebGL:
OpenGL 作为接口规范,本质上是一套标准化的 API 定义,而不是具体的实现。
一般它被认为是一个 API,包含了一系列可以操作图形、图像的函数。然而,OpenGL 本身并不是一个API,它仅仅是一个由 Khronos组织制定并维护的规范(Specification)。
OpenGL 规范严格规定了每个函数该如何执行,以及它们的输出值。至于内部具体每个函数是如何实现(Implement)的,
将由 OpenGL 库的开发者自行决定(实际的 OpenGL 库的开发者通常是显卡的生产商)
OpenGL 自身是一个巨大的状态机(State Machine):一系列的变量描述 OpenGL 此刻应当如何运行。
OpenGL 的状态通常被称为 OpenGL 上下文(Context)。
我们通常使用如下途径去更改 OpenGL 状态:
WebGL 是基于 OpenGL ES 的一个规范,由浏览器实现,专门用于在浏览器中进行 3D 渲染。它继承了 OpenGL 的核心特性,但针对 Web 环境进行了优化和调整。
OpenGL:底层图形API,主要用于桌面应用程序WebGL:基于 Web 的图形API,运行在浏览器中OpenGL ES:OpenGL 的嵌入式系统版本,是 WebGL 的基础OpenGL的大部分工作是把3D坐标转换成2D像素。
指的是一堆原始图形数据途经一个输送管道,期间经过各种变化处理最终出现在屏幕的过程:
2D坐标2D坐标转变为实际的有颜色的屏幕像素图形渲染管线可以划分为多个阶段,每一个阶段会把前一个阶段的输出作为输入。每个阶段会有一个特定功能的程序来处理,这个程序称为着色器
图形渲染管线中特定功能的程序,其中最重要的是可编程着色器,按照功能可以划分为:
顶点着色器 (Vertex Shader)片段着色器 (Fragment Shader)具体可以查看 着色器是什么
顶点是构成几何图形的基本单位,通常表示为三维空间中的点。
TODO: 待迁移剩余文章内容