Unity Shder系统知识
unity系统学习应该分为四块。
程序结构
就是一个基本的shader结构。
语言内置
类似于hlsl内置的一堆函数,其实就是熟悉一个shader语言。
引擎内置
引擎自己扩展了一大部分。include里面会找到。可以说是api吧
例子-知识点
基础
渲染管线 – 进入3d图形学的敲门砖,应该经常翻出来看看。会加深理解,比如三大测试之类的。
矩阵推导 – 理解数据怎么显示到屏幕上,尤其理解3d怎么会显示到2d平面上。
鼠标采集 – 向虚拟世界交互的入口,不然虚拟世界就是一个放电影,没有办法控制。描边,也是鼠标触发,不然描哪个物体,没意思。
非生物
阳光(光影效果) – 局部光照和全局光照,手机游戏里面用到局部光照其实就够了,整一些全局光照高大上但是特别吃性能,没意思。影子是一个很有意思的知识点,主要是阴影图和阴影体,不说立马能写出来吧,至少应该研究过一次。不然用到的时候理论也会抓瞎。
大气(天空盒) – 这个很多人都知道,天空盒就很好了,天空穹可以研究一下,吹牛倒是可以,但是感觉实用性不大。
水(水波水底) – 怎么说呢,水面一直是一个亮点,不过需要看游戏平台, 要求不高的话一个uv动画就可以了(诛仙就是这样的),要求高的(类似天刀)找一个牛逼哄哄的函数来模拟。我捣鼓过的泊松函数。水底就是蚀刻效果,忽闪忽闪的,主要是纹理波动好些。
土壤(地形) – 很好玩儿,地形缝合和四叉树层级加载永远是一个好玩儿的地方,现在无锋地图是个高大上的亮点,不过市面上的游戏很少搞这个的,都是快速出产品,倒是一个大地图分割挺流行的。
动物
蒙皮骨骼动画 – 很有意思,包括前向、反向动力学动画,不过一般来说搞定一套就可以了。
植物
大规模植被实现,看游戏需求吧,植物这个东西在客户端数据量非常大,不同类植物需要不同的技术,加载需要不同的加载半径,层级细节。典型的,草用公告板,树要控制树枝和树叶的数量。树枝尽量不多于10层。
人文
15种魔法效果 – 需要结合粒子系统和uv动画实现
金 木 水 火 土
风 雨 雷 电
毒 冰 雾
光明 黑暗
亡灵
魔法效果主要是为了技能系统来搞的。
最后
慢点学吧,纸上谈兵没什么意思,勤能补拙,知道方向每天练习一下子。。。