如何系统的学习 Unity 3D 中的 shader 编写

高分请分析下,如何系统的学习 Unity 3D 中的 shader 编写
最新回答
暮雨醉花

2020-11-08 00:53:26

最近也在学习shader,推荐几篇博客供题主入门。

1、首先来两篇最最基础文章对shader有大体的认识。这两篇文章会分析shader中的一行行代码,讲解语法和作用并加以扩展。读完后就基本了解了shader中的属性、Tags、LOD、光照模型等是怎么回事。
猫都能学会的Unity3D Shader入门指南(一)
猫都能学会的Unity3D Shader入门指南(二)

2、然后可以看《Unity Shader and Effect Cookbook》,或者它的中文版《Unity着色器和屏幕特效开发秘笈》。这本书会展示shader中的各个方面,如漫反射着色、纹理贴图、镜面反射等等。
可能由于这本书方方面面都有涉及,有时会忽略一些比较关键的细节,而这恰恰使初学者困惑。有一位博主记录下了根据这本书学习的笔记,题主可以直接看博客来学习:
【Unity Shaders】概述及Diffuse Shading介绍

3、在第2步的过程中,你可能需要查阅shader中各个概念函数的更详细的情况,这时你会需要Unity官方手册以及Cg教程:
Unity - Manual: Shaders
Unity - Manual: Shader Reference
The Cg Tutorial

4、学习shader的时候,你不仅想知道怎么用,可能还想了解它背后的机制,那这篇文章你肯定不能错过:
【Unity Shaders】初探Surface Shader背后的机制

5、这些都熟练了,对shader也都比较熟悉了。你可以尝试去创造属于自己的shader,也可以去Shadertoy BETA寻求灵感,感受shader的鬼斧神工。