[预言家]:这将是一个插满Flag、充满着迷之气息、啪啪打脸不断的自学笔记系列…
终于下定决心来开坑ShaderLab啦!
虽然目前版本的Shader Graph一片大好,但是还是觉得作为一个立志成为TA的人再怎么着也要学学Shader!
把ShaderLab和ShaderGraph放在一起学习也是因为我认为它们俩相辅相成(萌新那放不下连连看的执念)
搞明白了graph的节点,写到lab里无非是些语法的问题;搞明白了lab里的语法,写一个shader无非是如何设计出酷炫的效果的问题(一个不知天高地厚的萌新如是说)
本篇文章将对ShaderLab编程无关,但是对于理解Shader很重要的一些基本常识做一个总结。因为只是总结,所以不会对涉及到的计算机图形学相关公式给出计算或推导过程,如有需要可自行移步相关教程或帖子。
(墙裂推荐GAMES101-现代计算机图形学入门-闫令琪,推导过程十分清晰)
(#Flag1-对于一些有图更好理解的地方,抽空补图)
计算机图形学的基本计算
向量乘法
1. 点乘 Dot (Scalar) Product —— 得到数值
1.1 计算方法
a ⃗ \vec a a = ( a 1 a_{1} a1, a 2 a_{2} a2,…, a n a_{n} an), b ⃗ \vec b b = ( b 1 b_{1} b1, b 2 b_{2} b2,…, b n b_{n} bn)
a ⃗ \vec a a · b ⃗ \vec b b = a 1 a_{1} a1 b 1 b_{1} b1 + a 2 a_{2} a2 b 2 b_{2} b2 + … + a n a_{n} an b n b_{n} bn
a ⃗ \vec a a · b ⃗ \vec b b = | a ⃗ \vec a a| · | b ⃗ \vec b b | c o s θ cosθ cosθ
当 a ⃗ \vec a a 、 b ⃗ \vec b b 为单位向量时, c o s θ cosθ cosθ =