Unity 3d中Shader是什么,可以吃吗?

  众所周知,Unity3d是一款跨平台非常广的游戏引擎,上手容易,界面友好,集成功能众多,是目前开发手游的主流引擎。本人有幸使用Unity 3d进行开发已一年多时间,已领略了这歀引擎的强大之处。

  编写shader也是我工作内容的一部分,先来说说shader是什么吧,我以自己的理解说明一下:

  首先 shader是一种语言,一种在GPU,也就是显卡上执行的高级语言。shader的本意是着色器,可以自定义GPU的渲染管线中的两个环节(即顶点和片段)。由此,我们可以控制对象在屏幕上的渲染效果,甚至实现一些非常弦丽强大的效果。

  Unity 3d提供了一套编写shader的框架--ShaderLab,可以编写三种类型的shader:

  1. Surface shader,即表面shader,为我们处理了光照计算,实际上也是Vertex-fragment shader。因为处理光照计算是非常繁琐的过程,由此surface shader应运而生。

  2. Vertex-fragment shader,最经典的shader模型,我们可以在顶点级,和像素级自定义我们的渲染方式。

  4. Custom shader,即固定硬件流水线shader,因为在计算机出来初期,显卡是不具有可编程性的,它走了自己固定的一套渲染流程,此类shader即专为此而服务的。

原文地址:https://www.cnblogs.com/jietian331/p/4100119.html