第二课上节课作业——做一个简单的卡渲效果思路:答案分析:注意点:补充:作业案例点评:作业1:简单珠宝效果知识点:具体节点过程:1.Half Lambert的应用:确定固有色珠宝效果:一般珠宝会将暗面的一部分作为亮部,向两边过渡2.高光制作:2.1将光照的方向加上一个三维坐标偏移(偏移量设为变量),然后进行归一化处理,因为只需要它的方向,再进行Half Lambert2.2给一个一维变量,用if语句将偏移后的HLB(Half Lambert)的值与该变量进行比较,大于变量值,就为1,小于就为0作用:1.能够随意控制高光的范围大小; 2.得到了一个只有0和1的遮罩2.3.将2个高光combine合并起来,用max节点,有亮的就取亮的,(虽然用add也可以,但是2个高光重叠区域会输出2,所以需要clamp0~1)3.添加颜色:用lerp节点进行2颜色的渐变,使得高光处颜色为HighLightCol,非高光处颜色为RampTextureLerp (线性插值)4.菲涅尔(fresnel): 可以用ShaderForge自带的节点5混合固有色、高光和菲涅尔: 这里用Blend节点,模式选用Screen(具体模式可以凭自己感觉抉择)Task1最终效果:作业2:屏幕空间条纹效果知识点:Screen Position (屏幕位置) 它就相当于将整个屏幕作为限制在一个(-1~1)之间,一般模式会将(0,0)放在中心位置,(1,1)在右上角常用作UV坐标来采样贴图,因为UV坐标是(0,1)第一象限的一个面积为1的方,这个范围内会显示全图,而不在这个范围内的,会被映射到这个位置所以因为这里范围是 -1~1,因此一个贴图就出现了4份这里补充一下UV采样贴图的知识:如果贴图不是正方的,如长方的,那么在采样贴图的时候,会将贴图压成正方的(UV坐标正常情况下)Depth (深度) 摄像头平面到对象每个顶点的距离,对象离摄像头越远,值越大将Depth和Screen Position相乘,再作为UV坐标采样贴图得到的结果分析:平面离相机远的时候,Depth值很大,所以相乘之后得到的值很大,之前屏幕是-1~1,假设现在是-10~10,那么屏幕上就会出现10×10×4张图,相反,方平面离相机近的时候,Depth值很小,假设现在相乘之后为-0.5~0.5,那么整个屏幕就会显示4张1/4的图片具体节点过程:1.用Screen作为UV采样贴图 用Depth和Screen Position相乘,作为UV的方式采样贴图贴图是一张黑白线图,因为右Depth深度相乘,所以黑白线贴图会有所缩放变化★补充:UV坐标的Triling和Offset Triling后面的XY分别代表UV坐标值的倍数,如原先是0~2,那么乘15后,这个2就变成了30;原本范围内只采样2×2张图,现在就采样15×15张图,因此每张图就缩小了简单理解:X增大,在U方向采样的图片越多,越小Offset后面XY分别代表UV坐标轴的偏移值,如X为0.3,那么原先0的位置变成了0.3;0.8的位置就变成了1.1也就是0.1,可想而知,在X慢慢增大的时候,我们可以看到图片在慢慢往左边移动(可以理解为原先采样0.3的位置,现在被0位置采样了)简单理解:X增大,图片向左移动2.放大UV坐标 因为原图的条纹数不够多,因此我们在采样的时候,将U和V的坐标乘上15,来加细,加多条纹3.得到Lambert与采样的黑白线稿进行Step计算 Step:B>A,出1;B<=A,出0 相当于特定的if语句采样贴图后可以输出单通道,因为此黑白线稿只有明度信息0和1(RGB为000000,FFFFFF)分析:因为采样贴图出来的结果肯定在0~1之间,而此Lambert没进行钳制范围,其范围为-1~1,再进行Step就会出现,一些地方完全死黑的情况(因为这些地方B为负数)4.加颜色,加渐变 加颜色:这里用了Lerp节点,提供了种颜色分别作为亮部和暗部加渐变:用lambert乘上颜色再add之前的条纹得到Task2最终效果:作业3:程序化点阵纹理HalfTone知识点:关于HalfTone半色调 利用黑白点的大小和疏密来表达亮暗面具体节点过程:1.屏幕位置(2维)乘一个值之后Frac取小数 得到的结果就会是屏幕上好多个0~1的小方格2.进行Remap重映射 将0~1重映射为-0.5~0.5分析Remap前:Remap后:3.取长度Length,生成黑点程序纹理 Length是取向量的模长,为根据上面Remap后的图和模长公式不难判断出得到的是一个个黑点4.制作光照模型 光线衰减Light Attenuation可以产生阴影(自身对自身,其他物体对自身都有效)Remap(1,0)→(-0.5,2)结果就是亮暗对调,且范围超出了0~15.将程序化点纹理和光照模型进行Power Power(乘方)分析:正零点几的数Exp一个负数,变成大于1的数(白);Exp一个大于1的正数,就会减小——(其实这里慢慢数学分析即可)6.Round四舍五入,非0即1,增加对比Task3最终效果情报·卡渲 卡渲不只是只有一种风格,风格有很多种:赛璐璐,大色块等等卡渲的技术也有很多,下图左边是各种用RampTexture做出来的效果;右边是各种效果(HalfTone、手绘线等等)常用成熟的卡渲技术Cell/ToonShadingGDC Vault - GuiltyGearXrd's Art Style : The X Factor Between 2D and 3D《火影忍者:究级风暴》渲染技术的究极解析业界资讯电玩巴士psv (tgbus.com)HatchingShading,用电,线等表达,古朴游戏较多内容规范 TA需要整理团队项目资源,因此规范自身很重要一个项目里面可能有好几个小项目,每个小项目要命名规范,内部文件有夹:Shader、Material、Texture、Model场景文件夹可以建在总项目问价夹下之后打包的时候右键点击Export Package,打包完后就可以发给其他人了第二课总结 这一节课我们主要了解了卡渲效果,巩固和拓展了Lambert光照模型,知道了描边效果,学习了三个案例案例一——简单珠宝效果案例二——屏幕空间条纹效果案例三——程序化点阵纹理HalfTone知道了一些有关卡渲的情报,和TA如何对项目内容进行规范整理感想:其实在写Shader的时候我发现,只要你能够理解数学内容,通过数学分析出缘由,结果,你就会发现其实这些都不算太难,要时刻学会Debug,一步步推敲,你也可以向我一样拿一些模型、贴图等进行测试,这样有助于自己理解。