UnityShader中内置了大量的宏和基础内置Shader为我们简化工作,但从学习的角度,我们更加关注具体的实现方法,以下为下载unity builtin shader的方法 1.打开https://unity.cn/releases/lts 2.找到对应的版本和平台下载安装如下图 最后解压出来的DefaultResourcesExtra文件建议直接放到Unity安装路径Editor/Data下(和CGIncludes放一起)方便查找,可以使用Sublime之类的工具直接打开阅读
UnityShader中内置了大量的宏和基础内置Shader为我们简化工作,但从学习的角度,我们更加关注具体的实现方法,以下为下载unity builtin shader的方法 1.打开https://unity.cn/releases/lts 2.找到对应的版本和平台下载安装如下图 最后解压出来的DefaultResourcesExtra文件建议直接放到Unity安装路径Editor/Data下(和CGIncludes放一起)方便查找,可以使用Sublime之类的工具直接打开阅读
UnityShader中经常出现类似“float4 _MainTex_ST”、“float4 _BumpTex_ST;”的字段声明,但是却没有任何引用 ,找了下资源才知道是怎么回事,参考网址:传送门 下面是一个最简单的纹理采样Shader Shader "Custom/MainTex_ST" { Properties { _MainTex("MainTex",2D) = "white"{} } SubShader { LOD 100 Pass { CGPROGRAM #pragma vertex vert #pra…
现实中光照是一件非常复杂的事情,人眼能看到的某个物体是因为该物体反射了光进入了人的眼晴,而物体反射光的来源并不单单只来源于光源,也包含其他物体反射出来的光,也就是说光线是在物体之间反复弹射(举个例子:光滑的瓷砖表面会折射出其他物体),除此之外,光滑的物体还会使人眼接收到更亮高光效果,所以说想要达到更加逼真的光照效果单靠Lambert光照模型模拟的漫反射效果是远远不够的。 原理参考资料: 现代计算机图形学入门-闫令琪 第8讲 (说明图片来源该课件截图) Phong光照模型 \(L=L_{…
本文总结几个常用光照模型的原理,并用Unity基于原理写出对应的Shader进行验证 原理参考资料: 现代计算机图形学入门-闫令琪 第7讲 (说明图片来源该课件截图) 什么是光照模型? 图形学中为了模拟现实生活中物体表面反射光而形成明暗变化,引入了光照计算公式来进行处理,所谓模型可以理解为对不同光照公式的应用方案 Lambert (兰伯特)光照模型 Lambert 光照模型主要模拟的是物体对光线漫反射形成的效果 如图,在漫反射现象中,光线照射到物体表面的某一个点的时候,反射光会被发散到四面八方,…
研究施密特正交化起因是图形学中构建BTN切线空间(当模型顶点不包含切线信息的情况)变换切线空间法线贴图中的法线到世界空间的需求的最后一步需要将BTN进行正交化,得到真正意义的BTN空间 从数学角度看 设两个n维的向量 x=(x1,x2,...,xn) , y=(y1,y2,...,yn) 则有: \(\vec{x}\cdot \vec{y}=[x,y]=x_{1}y_{1}+x_{2}y_{2}+,...,+x_{n}y_{n}\) ([x,y]是内积的写法,其实和点乘是…
作用:可以使三维空间中的任意向量s绕任意方向a,旋转θ度,得到结果向量srot (图中a,b,c都是单位向量,且相互垂直) \(R\times S= S_{rot}\) (R就是公式所表达的旋转矩阵,S代表向量s的列矩阵写法) 公式推导过程: (也就是求旋转矩阵R过程) 1.通过向量s与a可得s的分量s1(投影)与s2(垂直于a) \(s1 = (s\cdot a)\cdot a\) \(s2= s - s1\) \(\hat{a} = \frac{s1}{\left \| s1 \right…
空间变换是图形学的基础,也是必须掌握的知识点,个人总结一下其实分为以下几点:(纯属个人理解) 1.什么是空间,为什么图形学要用到那么多空间,为什么不能在一个空间下完成? 其实所谓的空间其实就是由一个原点加三个相互垂直的向量组成的坐标系,在图形学里用到很多空间概念,比如模型空间,世界空间,视图空间,UV空间,切线空间等等,之所以用到如此多的空间概念归根结底只有一个原因就是在不同阶段的关注点不同,举个例子:比如在模型空间,美术同学在制作一个模型的时候不会关心这个模型在世界空间下与其他模型的位置关系,也不会关心这个模型被…
1.齐次线性方程组 (1)、一般形式: \[\left\{\begin{matrix}a_{11}x_{1}&+a_{12}x_{2}&...&+a_{1n}x_{n}=0\\ a_{21}x_{2}&+a_{22}x_{2}&...&+a_{2n}x_{n}=0\\ ...\\a_{m1}x_{m}&+a_{m2}x_{2}&...&+a_{mn}x_{n}=0\\\end{matrix}\right.\] (2)、矩阵形…
TortoriseSVN->Setting->Log Caching->Cached Repostiories,选中对应的记录 Delete->确定