UnityShader入门精要
文章平均质量分 91
UnityShader入门精要学习记录
YouYider
想当图形学和游戏引擎糕手!
展开
-
【UnityShader入门精要】凹凸贴图、渐变纹理、遮罩纹理
值得注意的是切线的第四个分量是切线空间的方向性。切线的w分量可以确保TBN矩阵的正确性。后者存储的可以是在模型空间下的法线,也可以是每个顶点在切线空间下的法线扰动。即使是在切线空间中存储了法线,但是在计算光照的时候还是有两种方法,分别是在切线空间下计算或在世界空间下计算,前者效率更高而后者通用性更强。由于模型空间的法线是绝对的,而切线空间的法线是相对的,所以很多时候用后者可以做到很多前者做不到的东西。可以看到代码v2f的结构体中的TtoW用了float4,多出来的三个w分量可以用来存储世界空间的顶点位置。原创 2024-04-08 21:34:18 · 1044 阅读 · 0 评论 -
【UnityShader入门精要】从简单的shader编写到基础光照
由于这里是要把法线从局部坐标变为世界坐标,所以unity_WorldToObject是局部变世界坐标的逆矩阵,然后可以看到代码中mul函数是向量在左,矩阵在右,放在左边是为了实现同矩阵转置后右乘向量的一样效果。这里在vs输出颜色时,通过法线进行了颜色的设置,因此不同的法线方向的shading point的颜色也不一样。前面的镜面反射已经是加上了漫反射,但是在高光反射的时候计算了反射方向,通过Blinn光照模型使用视角方向和光照方向相加并且归一化得到,这样的计算量没有之前的计算量那么费。原创 2024-04-07 08:59:53 · 778 阅读 · 0 评论