纹理与采样器
概念
API使用
- 创建纹理对象
unsigned int texture;
glGenTextures(1, &texture);
- 绑定纹理
glBindTexture(GL_TEXTURE_2D, texture);
重要概念
图元 Prmitive
- 点 Point
- 线段 Line Segment
- 面片 Patch
- 多边形 Polygon
光栅化 Rasterization
着色器 Shaders
- 顶点着色器vertex shader
- 片面着色器fragment shader
渲染管线Pipeline
上下文 Context
对象 Object
- 缓存对象 Buffer Objects
- 着色器对象 Shader Objects
- 程序对象 Program Objects
- 程序管线对象 Program Pipeline Objects
- 纹理对象 Texture Objects 采
- 样器对象 Sampler Objects
- 渲染缓存对象 Renderbuffer Objects
- 帧缓冲对象 Framebuffer Objects
- 点阵对象 Vertex
- Array Objects
- Transform Feedback Objects
- Query Objects Sync Objects
纹理 Texture
定点 Vertex
面片 Fragment
OpenGL着色语言 OpenGL Shading Language
GL命令是 C/S模型,程序是客户端, GL是服务端, 程序发出命令,GL解释和处理命令.
服务器不一定与客户端在同一台PC或同一个地址空间.
一个服务器要维护许多GL上下文.
客户端可以选择成为GL上下文的当前程序.
当程序不是GL上下文的当前程序时, 发出命令的结果未定义.
GL 上下文是GL状态和对象的封装.
帧缓存有2类:
窗口系统提供的帧缓存: 被称为默认帧缓存
应用程序创建的帧缓存 被称为帧缓存对象
默认帧缓存与帧缓存对象主要的区别是配置和管理状态的接口.
一个上下文可以关联2个帧缓存, 一个用来读,一个用来绘制.
默认帧缓存上的GL命令的效果最终由窗口系统控制, 窗口系统分配帧缓存资源, 决定在某一特定时间访问默认帧缓存的哪一部分, 并且告诉GL 这些部分如何构建.
因此,没有GL命令初始化GL上下文或配置默认帧缓存.
同理,特定物理设备上帧缓存内容的显示也不由GL处理.
分配和配置GL上下文,用的是API.
GL上下文可以关联不同的默认帧缓存, 并且一些上下文状态是在关联的时候确定的.
可以使用不带默认帧缓存的GL上下文, 这种情况下,必须使用帧缓存对象来完成所有渲染.
这点对需要做offscreen rendering的应用程序很重要.