撰写了文章 发布于 2018-12-20 13:50:59
图形学是怎么一回事——A Noob's Perspective
当我开始上手尝试用 Unity 完成一些复杂的图形显示效果的时候,问题来了。
他们提到了一个叫做 “Shader” 的东西,还说这个东西看起来就像 C 语言。这是什么?
实际上我找了很多所谓的“图形学”教程、教材、博文,他们都没能深入浅出地说明白这些东西到底是怎么回事。
Mesh, Texture, Shader, 还有光
你所看见的都是假象
画面上有几个光滑程度不一的玻璃球,左右两面墙分别是红绿色的,天花板上面打下来几束灯光……没错,光照领域最著名的那个 Demo。
但你看见的事情都是虚假的——没有什么玻璃球真的在折射光线,焦散也并非真的是光线透过玻璃球发生了散射;两边墙上的红绿颜色被混杂在了球下方的光圈里——那也是“假的”。
实际上,在计算机图形学的世界里(简单来说),只有这么几个东西在互相作用——Mesh、Texture、Shader、光源。
Mesh,就是组成模型的顶点和连接他们的边、线框图里你看到的那个东西。
Texture,贴图,附加在模型上的图像(还有能改变 Mesh 顶点位置情况的贴图)。
Shader,一段程序,处理模型、贴图、光线的作用过程,在这里我们可以用来随意吃进来输入,并通过一系列算法来得到我们想要的输出。
Shader 经典例子:冰(为什么:涉及透明效果、位移扭曲失真、“边缘高亮”、风格化渲染等许多基本操作,你看完这个 Demo 能很快明白 Shader 能干什么,干了什么)
光,没有光你谈什么图像、图形学。
世间全部武功的目录:Real-Time Rendering ,相关内容简介。
本书大概把现在实时渲染主要的知识点说了个遍。
目录
DarcJC 1年前
简单来说,Shader是跑在GPU的程序,它构成了渲染管线(Render Pipeline)。它只接收上一个着色器的输出以及传递输出给下一个着色器,这就是为啥要叫管线。(当然也有办法从CPU传递参数)
发布