Shader入门-1

程序员的三大浪漫:编译原理,操作系统,图形学。接下来我们开启一段旅程,如何在计算机上渲染出绚烂的特效,做出好看的画面。

Shader(着色器)应用于计算机图形学领域,指一组供计算机图形资源在执行渲染任务时使用的指令,用于计算图像的颜色或明暗。但近来,它也能用于处理一些特殊效果,或者视频后处理。通俗地说,着色器告诉电脑如何用特有的一种方法去绘制物体。

程序员将着色器应用于图形处理器(GPU)的可编程流水线,来实现三维应用程序。这样的图形处理器有别于传统的固定流水线处理器,为GPU编程带来更高的灵活性和适应性。以前固有的流水线只能进行一些几何变换和像素灰度计算。现在可编程流水线还能处理所有像素、顶点、纹理的位置、色调、饱和度、明度、对比度并实时地绘制图像。着色器还能产生如模糊、高光、有体积光源、失焦、卡通渲染、色调分离、畸变、凹凸贴图、边缘检测、运动检测等效果。

1,渲染流程

应用阶段:

这里需要准备好场景数据,例如摄像机位置,视锥体,场景中包含的模型,使用了那些光源等,其次为了提高渲染性能,会通过粗粒度剔除culling,把摄影机视野外部的剔除,不需要移交到下一阶段处理,最后需要设置好每个模型的渲染状态包括但不限于使用的材质(漫反射颜色,高光反射颜色),纹理,使用的shader等,最终输出渲染锁需要的几何信息--渲染图元

主要分三个阶段

数据加载到显存:

所有渲染所需要的数据都需要从硬盘HDD中加载到系统内存RAM,然后网格纹理等数据又被加载到显卡上的存储空间显存VRAM

设置渲染状态:

渲染状态定义了场景中网格是怎样渲染的,如选择那个顶点着色器/片元着色器,光源材质等,这些完成后CPU调用渲染命令Draw Call告诉GPU可以开始渲染了

调用Draw Call:

DrawCall命令会指向一个需要被渲染的图元列表

几何阶段:

用于在GPU上处理所有和我们要绘制的几何相关的事情,和每个渲染图元打交道,进行逐顶点,逐多边形操作,决定需要绘制的图元是什么,怎样绘制,在哪绘制。最终把顶点坐标变换到屏幕空间交给光栅器处理

光栅化阶段:

将上一个阶段传递的数据产生屏幕上的像素,并渲染出最终的图像,对上一阶段的逐顶点数据插值处理

猜你喜欢

转载自blog.csdn.net/u014028063/article/details/81505448