着色器(Shader)是用来实现图像渲染的,用来替代固定渲染管线的可编辑程序。
着色器应用于计算机图形学领域,指一组供计算机图形资源在执行渲染任务时使用的指令,用于计算图像的颜色或明暗。但近来,它也能用于处理一些特殊效果,或者视频后处理。通俗地说,着色器告诉电脑如何用特有的一种方法去绘制物体。
程序员将着色器应用于图形处理器(GPU)的可编程流水线,来实现三维应用程序。现在可编程流水线还能处理所有像素、顶点、纹理的位置、色调、饱和度、明度、对比度并实时地绘制图像。着色器还能产生如模糊、高光、有体积光源、失焦、卡通渲染、色调分离、畸变、凹凸贴图、边缘检测、运动检测等效果。
引擎对着色器的管理与使用:
1、着色器数据更新与加载
着色器涉及美术表现,会需要反复测试各种方法或参数,来实验出满意的效果,因此系统要支持对着色器反复修改。这时需支持动态的数据更新机制,能够动态判断着色器数据变化,需要去追踪着色器是否做了修改,并有一套流程去重新编译着色器并能把编译结果直观反馈出来。
2、着色器编辑辅助功能
着色器影响到最终美术表现,提供着色器更直观的编辑功能,可帮助开发者更容易实现许多效果,并且降低开发着色器的门槛。其中一个例子就是Unity Shader Graph,这个功能提供节点化的着色器编辑器,把代码指令替换成许多节点,数据的依赖与使用替换成节点间的链接,让使用者可以不写着色器代码下完成着色器开发。
以上内容参考:百度百科-着色器