渲染定义

 

渲染定义

渲染管线也称渲染流水线,是显示芯片内部处理图形信号相互独立并行的处理单位。

一个流水线是一序列可以并行和按固定顺序进行的阶段。

也就是说每个阶段都是从它的前一阶段输入,然后输出发给随后的阶段。

渲染一般分为离线渲染与实时渲染,游戏中我们用的都是实时渲染。

  • 实时渲染又可以分为2D渲染与3D渲染。

早期的2D渲染,是通过把一块内存(图片像素数据)往另一块(显示缓冲区)上搬运的方式,实现图片绘制的。

不过现在很多2D渲染的渲染方式已经采用3D渲染了。原因是当前显卡从架构上就利于并行处理,绘制速度更快,可以很方便提供各种3D效果,还节省图片资源内存。

3D的渲染简单概括一下,就是把一个空间中的模型所有点的数据取出来,经过空间转换到2维屏幕上,然后根据各项参数与数据在绘制到屏幕上。

现在几乎所有的游戏都是使用3D的渲染流程。

拓展:传统的2D游戏,是通过把一块内存(图片)往另一块(显示缓冲区)上搬运的方式,实现图片绘制的,
渲染都是靠CPU的多媒体指令加速。举例来说,一个二维角色动画,可以通过制作其多个序列帧图片循环
播放来实现。所以我们需要保存多个图片资源,加载时间长还占用内存。
DX里面的Direct2D是在Direct3D基础上多出来的一层封装,借助Direct3D的功能实现了对底层硬件的直接访问
从使用的接口上是简化了直接使用Direct3D实现2D效果的一些复杂代码,因此可以认为效率和3d相同,而使用方法上更简单了

渲染流

渲染管线流程就是是输入3D模型,输出2D片显示出来的过程

渲染定义_第1张图片

渲染定义_第2张图片

 

1.CPU与GPU的分工

CPU在内存中建立以下资源

·顶点定义

·顶点缓存

·索引缓存

·贴图

·摄像机

·投影

CPU从内存中发送以下资源到显存中供GPU使用

·顶点定义

·顶点缓存

·索引缓存

·贴图

·坐标系变换矩阵

·渲染状态

·贴图采样方式

渲染定义_第3张图片

渲染定义_第4张图片

DX 微软的图形编程API,着色语言是High Level Shader Language(HLSL),只能在Windows使用
OpenGL(OpenGraphicsLibrary) 着色语言是OpenGL Shader Language(GLSL)跨编程语言,跨平台

DX8与OpenGL2.0以后就都支持可编程渲染管线
vertexShader与pixelShader。现在更新的版本还支持GeometryShader

CPU与GPU架构不同,互相不能访问显存与内容

CPU一开始会得到模型的顶点等数据,需要UpLoad到GPU,然后GPU去处理
这个UPload过程不能频繁进行,因为顶点数据是很多的,所以一般渲染时我们看到模型在变化,其实在CPU他的位置是没变的

2.顶点

你可能感兴趣的:(opengl,ui)