Unity Shader之路(二)什么是ShaderLab?

Unity Shader之路(二)什么是ShaderLab?_第1张图片

什么是ShaderLab

  • 前言
  • 一句话解释ShaderLab
  • 一张图解释ShaderLab
    • 没有UnityShader
    • 有UnityShader
  • 一段代码解释ShaderLab

前言

众所周知,要想当游戏开发工程师,Unity中的Shader编写不得不摸,这一系列文章我将描写我的Shader学习之路,致敬冯乐乐的书Unity Shader入门精要,此篇什么是ShaderLab?希望能给后人一点方向

一句话解释ShaderLab

ShaderLab就是编写UnityShader的语言

一张图解释ShaderLab

大卫惠勒说过“计算机科学中的任何问题都可以通过增加一层抽象来解决”
UnityShader就是Unity为开发者提供的一层抽象,打个比方,如果我们要修理一个大机器,这个机器就是我们要解决的问题,那么这个机器上面设置的旋转的螺丝钉和旋钮就是一层抽象,那么钳子和螺丝刀就是操作抽象的器材,对于Unity,unity就是大机器,机器上面设置的旋转的螺丝钉和旋钮就是UnityShader,钳子和螺丝刀就是ShaderLab

没有UnityShader

如果没有UnityShader,开发者要操作深层渲染,就要如下图直接和很多东西打交道
Unity Shader之路(二)什么是ShaderLab?_第2张图片

有UnityShader

Unity Shader之路(二)什么是ShaderLab?_第3张图片

一段代码解释ShaderLab

那么既然ShaderLab是一个语言,那么它的HelloWorld是什么呢,走起

Shader "HelloWorld"{
Properties{
//属性
}
SubShader{
//显卡使用的着色器
}
SubShader{
//另一个显卡使用的着色器
}
Fallback"VertexLit"
}

这些ShaderLab写的代码会被Unity编译成真正的shader语言,而作为Unity开发者不需要管这些,只要能用好ShaderLab写shader就行

你可能感兴趣的:(unity心血所著)