一个用来记录各种shader学习过程的repo,其中包括shadertoy、一些书籍、youtube视频里的各种各样的shader,在unity中进行复现。
在shader之前应该首先学习图形学,这一部分记录了自己整理的图形学中的概念与学习心得。
这一部分是shader中的一些基本方法,包括造型函数、颜色、一些基本光照的实现等。
这一部分是关于圆的造型函数,关于圆的生成、反锯齿、blend等内容。 博客链接造型函数丨圆
因此可以用以下的方程产生调色盘 博客链接调色盘
光照模型这里实现的是Blinn-Phong模型,使用了两种方法实现。一种是完全GLSL的方法,从0开始写各种向量获取方法,点这里;另外一种是使用unity中的封装好的方法进行编写,点这里.
Random在shader的设计中有着非常重要的作用,同时其呈现的效果也十分的有趣。随机的效果可以模拟一些大自然中的景象,如水面的起伏、风吹过的树叶,也可以进行一些想象中的仿真,比如说虚拟科幻中的量子波纹之类的。
这部分的shader来源于网站shadertoy和Youtube,其中一些代码的复现,具体的实现流程请看我的博客CrowFea丨Blog。关于Random函数的设计在我的另一篇博客中有提及ShaderToy丨Random函数。
原链接ShaderToy 博客链接ShaderToy丨着色与时间-Virus的实现
原链接ShaderToy 博客链接ShaderToy丨随机-Chromatic Metaballs实现
NPR即非真实性渲染,我们常见的卡通风格渲染就属于这种。卡通渲染可以应用在游戏、电影之中,可以做出十分有趣的效果。这一部分代码借鉴于冯乐乐的博客。
博客链接卡通风格渲染
- 如果您有任何的问题,或是想要看shader具体实现的过程,请移步我的博客CrowFea丨Blog