计算机图形渲染管线

简介:

最近在看3D引擎设计,看到了一些关于各种图形硬件接口还有软渲染的体系,忽然发觉自己当初在学OpenGL之前为什么没有学习图形的渲染管线,导致对opengl、d3d这些东西掌握起来要一段时间。因为渲染管线是因,opengl…是果,而我们的教学中通常不谈管线而直接把什么坐标转换、纹理采样、深度测试这样的概念突然拿出来讲,初学者很难理解为什么要有这些莫名其妙的东西?这些操作怎么来的?混合和深度测试那个操作在前?所以我认为对于图形学的教学或初学者来说,第一课要将的不是点线画法,也不是opengl介绍,而是图形的渲染管线,要先了解在计算机上面绘制图形的基本思路,和硬件绘制他的基本步骤,然后按照这个管线一步步解释其中的关键技术,这样你才能知道为什么要坐标变换,才能知道电线画法在那个步骤被真正应用。心中牢记管线,我们才能把所有的硬件接口(opengl、d3d。。。)有一个全局的认识,否认学习他们就是盲人摸象,其实了解了管线,就会发现opengl和d3d就是为了帮助硬件实现这个管线而给程序员的一个操纵控制和数据的方式而已,学起来会轻松多了。

所以我今天画了一个计算机图形学的渲染管线图,主要以opengl的方式进行解释,有错误之处敬请指出。

1

2

目录
相关文章
【着色器实现Glow可控局部发光效果_Shader效果第十三篇】
【着色器实现Glow可控局部发光效果_Shader效果第十三篇】
【着色器实现FishEye鱼眼画面膨胀效果_Shader效果第十六篇】
【着色器实现FishEye鱼眼画面膨胀效果_Shader效果第十六篇】
|
缓存 JavaScript 前端开发
【图形基础篇】04 # GPU与渲染管线:如何用WebGL绘制最简单的几何图形?
【图形基础篇】04 # GPU与渲染管线:如何用WebGL绘制最简单的几何图形?
268 0
【图形基础篇】04 # GPU与渲染管线:如何用WebGL绘制最简单的几何图形?
|
缓存 BI API
从0开发游戏引擎之纹理管理器实现 纹理数据绑定OpenGL滤波方式选择线性滤波
从0开发游戏引擎之纹理管理器实现 纹理数据绑定OpenGL滤波方式选择线性滤波
从0开发游戏引擎之在3D空间中渲染出三维几何体
这个类里面会使用第9章里的三维体数据来调用OpenGL的接口绘制出来对应的形状。几何体绘制类主要是调试使用的,比如想要更直观的看到一个对象身上的碰撞框。绘制的形状非常多,大家直接看代码吧。
从0开发游戏引擎之使用OpenGL绘制三维球体
绘制球体的难点主要在于 要在遍历循环中 根据经纬度反复的使用Cos、Sin函数算出球面上的XYZ三个顶点坐标,一直反复计算,最终三角面多的形成了一个球的形状。
【ThreeJs】(1)四大组件:场景、相机、物体、渲染器 | 创建一个矩形 | THREE脑图
【ThreeJs】(1)四大组件:场景、相机、物体、渲染器 | 创建一个矩形 | THREE脑图
327 0
【ThreeJs】(1)四大组件:场景、相机、物体、渲染器 | 创建一个矩形 | THREE脑图
|
API iOS开发 异构计算
三、OpenGL 渲染架构分析
OpenGL 渲染架构分析
317 0
三、OpenGL 渲染架构分析
|
存储 缓存 算法
OpenGL图像渲染以及渲染问题解决方案
在绘制3D场景的时候,我们需要决定哪些部分是对观察者可见的,或者哪些部分是对观察者不可见的,对于不可见的部分,应该及早丢弃。例如在一个不透明的墙壁后,就不应该有渲染,这种情况叫做隐藏面消除(Hidden surface elimination).
544 0
OpenGL图像渲染以及渲染问题解决方案
|
Windows
【OpenGL】二十三、OpenGL 光照中的法线原理
【OpenGL】二十三、OpenGL 光照中的法线原理
179 0
【OpenGL】二十三、OpenGL 光照中的法线原理