- 博客(3)
- 收藏
- 关注
原创 Unity Shader学习3:透明效果
如图8.1中,若先渲染A,由于关闭了半透明物体的深度写入,此时深度缓冲中不会写入A的深度值,再渲染B的时候,由于B是不透明物体,且深度缓冲中没有值,那么B的片元则会通过深度测试,写入深度值,同时覆盖颜色缓冲中A之前渲染得到的颜色值,效果就变成了A被B遮挡。如图8.2中,若先渲染A, 那么A的颜色会先写入颜色缓冲,再渲染B,B片元的颜色值和颜色缓冲的值混合时,混合后的效果会反过来,看起来像B覆盖在A上。它会使用当前片元的透明度做为混合因子,与已经存储在颜色缓冲中的颜色值进行混合,得到新的颜色。
2024-01-13 17:56:08
2266
2
原创 Unity Shader学习2:基础纹理
为了增强记忆,每次写新的shader我都是新建后删除原有代码重头开始手打的,大多数时候写重复的部分更像是默写,这也导致了写到没完全理解的语句时会出现记忆不清的情况。这次就把Tags里面的“LightMode”记成了“LightModel”,导致改变光源方向的时候不会反映到物体的效果上。像平时看代码一样,多去看看不熟悉的内置函数,关注输入和输出的数据类型,这次因为不知道UnityObjectToWorldNormal的输入参数只能是float3而我传了个float4进去而耽误了好一会儿功夫。
2023-12-21 15:14:52
977
原创 Unity Shader学习1:基础光照模型
1. 高光反射r⃗\vec rr的推导总是觉得反射公式应该是r⃗l⃗2l⃗⋅cosθ2rll⋅cosθ,但l⃗\vec ll是向量,算出来的投影不与n⃗\vec nn一个方向,所以应该是n⃗⋅cosθn⋅cosθ。2. 逐像素计算高光时v2f传入worldPos的语义是裁剪空间的坐标,和世界坐标是两个东西,因此在v2f结构中需要用一个TEXCOORD1额外存储顶点的世界空间坐标,用于计算视线方向。
2023-11-29 14:58:42
1554
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人